Проверьте diff на файл на сервере - PullRequest
72 голосов
/ 23 сентября 2010

У меня есть рабочая копия репозитория на моей машине, и я знаю, что она была обновлена ​​на сервере.Я хотел бы знать, как получить разницу между новой версией и версией в моей рабочей копии, используя svn аргументы командной строки.

Есть ли способ сделать это для меня?

Ответы [ 2 ]

112 голосов
/ 23 сентября 2010

Рабочая копия - редакция BASE.Последней копией из репозитория является ревизия HEAD.Это сравнит вашу рабочую копию с ревизией HEAD:

svn diff -r HEAD <file>

Фактически это выплюнет изменения в обратном порядке, то есть скажет, как перейти от HEAD к BASE.Технически, вы хотите:

svn diff -r BASE:HEAD <file>

Можете ли вы сэкономить нажатия клавиш?Только вы и ваше божество знаете этот ответ.

17 голосов
/ 28 июня 2012

Разница между рабочей копией и 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> было извлечено / обновлено как рабочая копия .
...