2011-08-22 4 views
1

나는 수은 (mercurial)에서 diff 병합을 많이 보았고 이동 된 파일은 파일 삭제 + 파일 추가 (diff의 다른 두 위치)로 표시됩니다. "file moved from .. to .."메시지로 그 출력을 대체하는 방법이 있다면 그것은 좋을 것입니다. 복사 된 파일도 마찬가지입니다.diff 파일에서 필터 파일 이동 및 복사

나는 자식이 파일의 일부 변경 사항을 처리 할 수있는 복사 감지 알고리즘을 가지고 있다고 들었습니다.

수은 확장 프로그램이나 독립 실행 형 도구가 있습니까?이 파일 사본을 감지하는 diff에 피드를 제공 할 수 있습니까?

답변

1

의욕에 복사 감지 메커니즘이있는 "similarity" parameter for addremove operation :

[alias] 
addremove = addremove --similarity 100 
adrs = addremove --similarity 0.01 

git(!) extended format은 (illustrated here으로) 원하는 출력을 얻을하는 데 도움이 될 수 있습니다

사용에게 -g/--git 옵션을 생성하기 위해 git에서 diffs 확장 diff format.

$ mv c b 

sjl at ecgtheow in ~/Desktop/test on default! 
$ hg addremove --similarity 100 
adding b 
removing c 
recording removal of c as rename to b (100% similar) 

sjl at ecgtheow in ~/Desktop/test on default! 
$ hg diff 
diff --git a/c b/b 
rename from c 
rename to b 
+0

는 별명이 '가 HG가 -A' 커밋 사용하여 효과를 가지고있다? qct를 그래픽 프론트 엔드로 사용하는 것이 좋기 때문에 그 점이 잘 작동하는지 확인해야합니다. –

+0

@daniel : 그래야합니다. 예를 들어 TortoiseHg (http://stackoverflow.com/questions/1295735/tortoisehg-copy-similarity-feature)에 영향을줍니다. – VonC