findSimilar
diff 파일 내에서 파일 리네임, 복사 등을 반영하도록 변환해요.
이 메서드는 diff 파일 내 기존 항목들을 파일 리네임이나 복사처럼 보이는 항목들로 교체해요. 요청에 따라, 변경량이 임계치보다 큰 수정 파일은 추가/삭제 쌍으로 분리할 수도 있어요.
시그니처
class Diff {
findSimilar(options?: DiffFindOptions | null | undefined): void;
}
파라미터
- optionsnull | DiffFindOptions
diff를 찾기 위한 옵션들을 지정해요.
- allboolean
모든 탐색 기능을 활성화해요.
- breakRewritesboolean
크게 수정된 항목들을 실제로 삭제/추가 쌍으로 분리해요.
- breakRewritesForRenamesOnlyboolean
리네임에 기여하는 경우에만 수정 분할을 수행해요. 보통
breakRewrites
와rewrites
기능은 수정된 파일의 자기 유사도를 측정하여 큰 변경이 있을 경우 삭제/추가 쌍으로 분리한 후, 해당 쌍의 항목들을 리네임 혹은 복사 후보로 검토해요. 만약 이 플래그를 함께 사용했을 때 분리된 쌍이 실제 리네임이나 복사로 사용되지 않으면, 수정 기록이 분리되지 않은 일반 수정 항목으로 복원돼요. - breakRewriteThresholdnumber
수정 분할 기준 유사도 (기본값: 60)
- copiesboolean
복사 여부를 탐색해요.
- copiesFromUnmodifiedboolean
변경되지 않은 항목을 복사 원본으로 사용할지 결정해요. 이 기능을 제대로 사용하려면 초기 diff 생성 시
includeUnmodified
옵션을 사용해야 해요. - copyThresholdnumber
파일 복사로 인식할 기준 유사도 (기본값: 50)
- dontIgnoreWhitespaceboolean
모든 데이터를 포함하여 유사도를 측정해요.
- exactMatchOnlyboolean
SHA 비교만으로 유사도를 측정해요. 빠르고 간단해요.
- forUntrackedboolean
작업 디렉토리의 추적되지 않은 항목들에 대해 리네임/복사를 탐색해요. 이를 올바르게 사용하려면 초기 diff 생성 시
includeUntracked
옵션을 함께 사용해야 해요. - ignoreLeadingWhitespaceboolean
앞쪽 공백을 무시하며 유사도를 측정해요(기본값).
- ignoreWhitespaceboolean
모든 공백을 무시하며 유사도를 측정해요.
- removeUnmodifiedboolean
findSimilar 실행 후 변경되지 않은 델타들을 제거해요.
copiesFromUnmodified
를 사용하여--find-copies-harder
와 유사한 동작을 하려면, 초기 diff 생성 시includeUnmodified
옵션을 사용해야 해요. 만약 최종 결과에서 변경되지 않은 항목들을 제외하고 싶다면 이 플래그를 활성화하세요. - renameFromRewriteThresholdnumber
정 항목이 리네임 원본이 되기 위한 유사도 기준 (기본값: 50)
- renameLimitnumber
파일 당 탐색할 최대 리네임 원본 후보 수 (git-diff의
-l
옵션이나diff.renameLimit
설정과 유사하며 기본값은 200입니다.) - renamesboolean
리네임을 탐색해요.
- renamesFromRewritesboolean
수정된 항목의 옛날 쪽을 리네임 후보로 고려해요.
- renameThresholdnumber
파일 리네임으로 고려할 유사도 기준 (기본값: 50)
- rewritesboolean
중요한 수정 사항을 표시하여 분리해요.
- allboolean