Получение разницы между двумя репозиториями

Ваш собственный регистратор просто должен перезаписать метод Logger#format_severity, что-то вроде этого:

class MyLogger < Logger

  SEVS = %w(DEBUG INFO WARN ERROR FATAL VERBOSE TRAFFIC)
  def format_severity(severity)
    SEVS[severity] || 'ANY'
  end

  def verbose(progname = nil, &block)
    add(5, nil, progname, &block)
  end
end
144
задан jww 21 November 2015 в 13:10
поделиться

4 ответа

В repo_a:

git remote add -f b path/to/repo_b.git
git remote update
git diff master remotes/b/master
git remote rm b
222
ответ дан 23 November 2019 в 21:37
поделиться

Можно использовать следующую команду:

diff -x .git -r repo-A repo-B

или для рядом можно использовать:

diff -x .git -W200 -y -r repo-A repo-B

В случае Колоризации каждый различный файл, можно использовать:

diff -x .git -W200 -y -r repo-A repo-B | sed -e "s/\(^diff .*\)/\x1b[31m\1\x1b[0m/"
0
ответ дан 23 November 2019 в 21:37
поделиться

После того, как вы разместили обе ветки в одном репозитории, вы можете сделать git-дифф . И получить их в одном репозитории так же просто, как

git fetch /the/other/repo/.git refs/heads/*:refs/remotes/other/*
7
ответ дан 23 November 2019 в 21:37
поделиться

См. http://git.or.cz/gitwiki/GitTips, раздел "Как сравнить два локальных репозитория" в разделе "Общие сведения".

Короче говоря, вы используете переменную окружения GIT_ALTERNATE_OBJECT_DIRECTORIES для доступа к объектной базе данных другого репозитория, а также используете git rev-parse с --git-dir / GIT_DIR для преобразования символического имени в другом репозитории в SHA-1-идентификатор.

Современная версия выглядела бы примерно так (предполагая, что вы находитесь в 'repo_a'):

GIT_ALTERNATE_OBJECT_DIRECTORIES=../repo_b/.git/objects \
   git diff $(git --git-dir=../repo_b/.git rev-parse --verify HEAD) HEAD

где .../repo_b/.git - путь к объектной базе данных в repo_b (это был бы repo_b.git, если бы он был "пустым" репозиторием). Конечно, вы можете сравнивать произвольные версии, а не только HEAD.


Обратите внимание, что если repo_a и repo_b - один и тот же репозиторий, то, возможно, имеет смысл поместить их оба в один репозиторий, либо используя "git remote add -f ..." для создания ника(ов) для репозитория для повторных обновлений, либо подчинившись "git fetch ..."; как описано в других ответах.

.
5
ответ дан 23 November 2019 в 21:37
поделиться
Другие вопросы по тегам:

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