Проверить diff на файл на сервере
У меня есть рабочая копия репозитория на моей машине, и я знаю, что он был обновлен на сервере. Я хотел бы знать, как получить разницу между новой версией и версией в моей рабочей копии, используя аргументы командной строки svn
.
Есть ли способ сделать это?
Ответы
Ответ 1
Рабочая копия - это версия BASE. Последняя копия из репозитория - версия HEAD. Это сравнит вашу рабочую копию с версией HEAD:
svn diff -r HEAD <file>
На самом деле это перевернет изменения в обратном порядке, т.е. сообщит вам, как перейти с HEAD на BASE. Технически вы хотите:
svn diff -r BASE:HEAD <file>
Можете ли вы избавиться от ударов клавиатуры? Только вы и ваше божество знаете этот ответ.
Ответ 2
Разница между рабочей копией и HEAD
; изменения, которые необходимо будет внести в то, что теперь находится в хранилище (HEAD
), для создания вашей рабочей копии:
svn diff -r HEAD --old=<file>
Возможный интерес, разница между BASE
и HEAD
; изменения, которые были проверены в репозитории с момента последней обновленной рабочей копии:
svn diff -r BASE:HEAD <file>
И, конечно, разница между BASE
и рабочей копией; изменения, внесенные с момента последней обновленной рабочей копии:
svn diff <file>
Обсуждаются три версии: BASE
, рабочая копия и HEAD
.
-
BASE
: <file>
с последним извлеченным/обновленным. Какая рабочая копия вернется после использования svn revert
- рабочая копия: локальные изменения в
<file>
, которые были проверены/обновлены совсем недавно как BASE
-
HEAD
: последние изменения в репозитории. Эквивалентен BASE
, если никаких изменений не было, поскольку <file>
был проверен/обновлен как рабочая копия.