git difftool для сравнения каталогов?
Можно ли заставить команду git difftool открыть каталог сравнения измененных файлов и промежуточных / проверенных файлов?
Таким образом, в идеале, если 2 файла изменились, они будут отображаться только 2, но в каталоге сравнения.
Я читал посты о том, как заставить git передавать все различия в файлах параллельно, поэтому такие инструменты, как BeyondCompare, содержат все различия во вкладках, но я не доволен этим!
Можно вытащить копию измененных файлов из промежуточных / проверенных файлов во временную папку, а затем открыть ее. Это единственный вариант?
2 ответа
Обновление за июнь 2012 года (через 2 с половиной года):
Это (сравнение каталогов вместо файла за файлом), кажется, скоро будет доступно:
Смотрите [ОБЪЯВЛЕНИЕ] Git 1.7.11.rc1:
"
git difftool
"узнал"--dir-diff
"возможность порождать внешние инструменты сравнения, которые могут сравнивать две иерархии каталогов за раз после заполнения двух временных каталогов, вместо того, чтобы запускать экземпляр внешнего инструмента один раз для пары файлов.
Смотрите " Патч difftool
: учат difftool
обрабатывать каталоги "
Оригинальный ответ (январь 2010 г.)
Можно вытащить копию измененных файлов из промежуточных / проверенных файлов во временную папку, а затем открыть ее. Это единственный вариант?
В основном да:
Вы difftool скрипт будет:
- создать 2 временных каталога
- определяет себя как инструмент сравнения
- вызов git diff
- который затем вызывает себя для файла для сравнения
- в этом режиме один и тот же скрипт для каждого файла копирует только две версии для сравнения в двух временных каталогах
- затем продолжайте и вызывайте инструменты сравнения (например, beyondCompare или WinMerge) в двух временных каталогах
У вас есть один первый пример в этом вопросе.
Я всегда использую --dirstat=files
:
rudie@devver:virenze$ git diff --dirstat=files
4.1% modules/custom/virenze_conversations/
7.0% modules/custom/virenze_crs/
8.3% modules/custom/
что означает, что я удалил dirs virenze_conversations
а также virenze_crs
в custom
, (Я не знаю, что означают проценты...)
Вы, вероятно, можете использовать все обычные diff
опции: --cached
, название филиала и т. д.