Diffing между двумя всеми каталогами/проектами в hg или мерзавце?

Действительно ли возможно, что исключение выдается в другом потоке? Очевидно, Ваш код вызова является единственным, распараллелил, но возможно библиотека, которую Вы используете, делает некоторые многопоточные операции под покрытиями.

50
задан Community 20 January 2019 в 13:29
поделиться

4 ответа

git diff делает именно это. но это работает только для проектов git.

hg diff , svn diff почти каждая система управления версиями может различать деревья каталогов

3
ответ дан 7 November 2019 в 10:38
поделиться

Из git diff справочной страницы :

git diff [--options] [-] [ ...]

[...]
Если указаны ровно два пути и хотя бы один не отслеживается, сравните два файла / каталога. Это поведение может быть вызвано - no-index .


Если вы хотите сравнить две версии (например, два помеченных релиза или две ветки) в двух разных репозиториях, вы можете использовать прием, описанный в Страница GitTips в Git Wiki, в разделе «Как сравнить два локальных репозитория».

Предполагается, что вы находитесь внутри одного репозитория, а второй репозиторий находится в / path / to / repo , поэтому его GIT_DIR равен /path/to/repo/.git , если он является репозиторием, отличным от чистого, вы можете сделать что-то вроде следующего:

$ GIT_ALTERNATE_OBJECT_DIRECTORIES=/path/to/repo/.git/objects \
   git diff $(git --git-dir=/path/to/repo/.git rev-parse --verify A) B

где A и B - версии, которые вы хотите сравнить. Конечно, вы также можете указать ограничитель пути в приведенном выше выражении.

Explanation: Переменная GIT_ALTERNATE_OBJECT_REPOSITORIES может использоваться для объединения команд git в объектную базу данных двух репозиториев. git --git-dir = ... rev-parse ... используется для превращения имени (расширенного выражения SHA-1) в репозитории, указанного в качестве параметра для параметра git-dir , в уникальный идентификатор SHA-1. Конструкция $ (...) помещает результат вызова данной команды в командную строку. git diff используется для сравнения двух ревизий (где одна из альтернативного репозитория объектов).

Альтернативным решением было бы просто импортировать другой репозиторий в данный репозиторий, используя git remote add git fetch ). Тогда у вас будет все локально, и вы сможете проводить сравнение внутри одного репозитория.

используется для преобразования имени (расширенного выражения SHA-1) в репозитории, указанного в качестве параметра для параметра git-dir , в уникальный идентификатор SHA-1. Конструкция $ (...) помещает результат вызова данной команды в командную строку. git diff используется для сравнения двух ревизий (где одна из альтернативного репозитория объектов).

Альтернативным решением было бы просто импортировать другой репозиторий в данный репозиторий, используя git remote add git fetch ). Тогда у вас будет все локально, и вы сможете проводить сравнение внутри одного репозитория.

используется для преобразования имени (расширенного выражения SHA-1) в репозитории, указанного в качестве параметра для параметра git-dir , в уникальный идентификатор SHA-1. Конструкция $ (...) помещает результат вызова данной команды в командную строку. git diff используется для сравнения двух ревизий (где одна из альтернативного репозитория объектов).

Альтернативным решением было бы просто импортировать другой репозиторий в данный репозиторий, используя git remote add git fetch ). Тогда у вас будет все локально, и вы сможете проводить сравнение внутри одного репозитория.

) конструкция помещает результат вызова данной команды в командную строку. git diff используется для сравнения двух ревизий (где одна из альтернативного репозитория объектов).

Альтернативным решением было бы просто импортировать другой репозиторий в данный репозиторий, используя git remote add git fetch ). Тогда у вас будет все локально, и вы сможете проводить сравнение внутри одного репозитория.

) конструкция помещает результат вызова данной команды в командную строку. git diff используется для сравнения двух ревизий (где одна из альтернативного репозитория объектов).

Альтернативным решением было бы просто импортировать другой репозиторий в данный репозиторий, используя git remote add git fetch ). Тогда у вас будет все локально, и вы сможете проводить сравнение внутри одного репозитория.

22
ответ дан 7 November 2019 в 10:38
поделиться

Это не специфично для git, а как общая утилита сравнения для Windows, Мне очень нравится WinMerge .

8
ответ дан 7 November 2019 в 10:38
поделиться

Я не совсем понимаю, что вы хотите, но разве для вас недостаточно diff -ur ? Он будет работать даже с каталогами без какого-либо контроля версий.

8
ответ дан 7 November 2019 в 10:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: