Подтвердить что ты не робот

Как найти svn diff между рабочей копией и произвольным rev?

Я пытаюсь написать многофакторный патч для проекта с открытым исходным кодом, но главная копия изменилась с тех пор, как я начал работать. Мне нужно получить разницу SVN (только файлы под контролем версий) между моей незафиксированной версией и версией, с которой она была проверена. Какую команду SVN я могу использовать, чтобы найти разницу?

Изменить: Извините, я, должно быть, неправильно использовал термин "рабочая копия". Мне нужно сравнить мои незафиксированные изменения с версией, с которой они основаны. Другими словами, я проверил ревизию 1000 и изменил файлы foo и bar. Число оборотов теперь до 1015, но мне нужно сравнить мою версию foo и bar с версией версии 1000. Есть ли простая команда для этого (сравните мою измененную копию программы с прошлым пересмотр)?

4b9b3361

Ответ 1

Вы можете использовать параметр -rN: M с командой diff, которая определяет ревизии, которые вы хотите сравнить. Просто предоставьте версию, из которой была выгружена ваша рабочая копия (вы можете опустить M, поскольку она по умолчанию работает с рабочей копией), и вы должны получить то, что вам нужно.

Если вы не помните, что исходный номер версии попытался запустить svn status -v, а первый столбец должен показать его.

Больше информации svn help diff...

Ответ 2

svn diff принимает аргумент -rN:M, который по умолчанию равен N == BASE и M == working copy. Будет ли svn diff -r REV, где REV является версией, которую вы не хотите работать?

Чтобы ответить на ваши изменения, предположим, что у вас есть следующее:

$ ls
foo bar baz
$ svn st -u
Status against revision:    1071
$ echo "more stuff" >> foo
$ svn diff -r 1000 foo
Index: foo
===================================================================
--- foo  (revision 1000)
+++ foo  (working copy)
...

Я верю, что это то, что вам нужно, да?

Ответ 3

Если ваша цель состояла в том, чтобы получить отчет только с именами файлов, в которых содержимое изменилось, это должно сделать трюк:

svn diff | grep 'Index: ' .