git difftool для сравнения каталогов? [дубликат]

этот вопрос уже есть ответ здесь:

можно ли получить команду git difftool, чтобы открыть сравнение каталогов между измененными файлами и промежуточными/проверенными файлами?

поэтому в идеале, если 2 файла изменились, они будут единственными 2 показано, но в каталоге compare.

Я читал сообщения о получении git, чтобы дать все файловые различия параллельно, поэтому такие инструменты, как BeyondCompare, имеют все различия в вкладках, но я не доволен этим!

можно вытащить копию измененных файлов из промежуточных / проверенных файлов во временную папку, а затем открыть ее. Это единственный вариант?

2 ответов


обновление-июнь 2012 (2 с половиной года):

это (сравнение каталогов вместо файла по файлу), кажется, скоро будет доступно:
См.[объявить] Git 1.7.11.ник1:

"git difftool" узнал "--dir-diff " возможность порождать внешние инструменты diff, которые могут сравните две иерархии каталогов после заполнения двух временных директорий, вместо запуска экземпляра внешнего инструмента один раз за файловая пара.

в разделе "патч difftool: teach difftool для обработки каталогов diffs"


оригинальный ответ (январь 2010 года)

можно вытащить копию измененных файлов из промежуточных / проверенных файлов во временную папку, а затем открыть ее. Это единственный вариант?

в принципе да:

вы difftool скрипт будет:

  • создать 2 каталоги temp
  • определяет себя как инструмент diff
  • вызов git diff
    • который затем называет себя для файла diff
    • в этом режиме один и тот же скрипт для каждого файла копирует только две версии в diff в двух временных каталогах
  • затем перейдите и вызовите инструменты 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, имя ветви etc.