фильтр перемещает файлы и копирует из различий - PullRequest
1 голос
/ 22 августа 2011

Я много смотрю на слияния из mercurial, и меня раздражает, что перемещенные файлы отображаются как удаление файлов + добавление файлов, часто в двух разных местах в diff.Было бы замечательно, если бы был способ заменить этот вывод сообщением "файл перемещен из .. в ..".То же самое относится и к скопированным файлам.

Я слышал, что в git есть алгоритм обнаружения копирования, который также может обрабатывать некоторые изменения в файлах.

Есть ли расширение Mercurial или отдельный инструмент, который я могупередать мой diff, который также обнаруживает эти копии файлов?

1 Ответ

1 голос
/ 22 августа 2011

Механизм обнаружения копий в Mercurial имеет параметр «сходство» для операции addremove :

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

Расширенный формат git (!) поможет вам получить желаемый результат (как показано здесь ):

Используйте опцию -g / --git для генерации diff в формате git extended diff.

$ 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
...