Как узнать, что будет обновляться из репозитория перед выдачей команды "svn update"?

Я внес изменения в многочисленные файлы в репозиторий SVN из Eclipse.

Затем я перехожу в каталог веб-сайта в окне Linux, где я хочу обновить эти изменения из репозитория в каталог.

Я хочу сказать "svn update project100", который обновит каталоги под "project100" со всеми моими добавленными и измененными файлами и т.д.

ОДНАКО, я не хочу обязательно обновлять изменения, которые я не делал. Поэтому я думал, что могу сказать "svn status project100", но когда я это сделаю, я получаю совершенно другой список изменений, которые будут сделаны, ни один из моих в списке нечетный.

Следовательно, чтобы быть уверенным, что только мои изменения обновляются в веб-каталоге, я вынужден перейти к каждой директории, где я знаю, что есть изменение, которое я сделал, и явно обновлять только эти файлы, например. "svn update newfile1.php" и т.д., который является утомительным.

Может ли кто-нибудь пролить свет на стандартную рабочую процедуру здесь, а именно, как мне получить точный список всех изменений, которые должны быть сделаны до того, как я исполнил команду "svn update"? Я думал, что это команда "status".

Ответ 1

Try:

svn status --show-updates

или (тот же, но короткий):

svn status -u

Ответ 2

В зависимости от того, что вы хотите узнать, между вашей рабочей копией и последним svn серверный репозиторий, не обновляя локальную рабочую копию, вот что вы можете do:

если вы хотите узнать, что было изменено в svn-сервере, запустите команда:

$ svn st -u

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

$ svn st -u | grep -E '^M {7}\*'

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

$ svn diff -r revisionNumber:HEAD --summarize

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

$ svn diff -r revisionNumber:anotherRevisionNumber --summarize

если вы хотите увидеть, что будет обновлено (без фактического обновления), запустите команда:

$ svn merge --dry-run -r BASE:HEAD .

если вы хотите узнать, какой контент определенного файла был изменен в svn сервера по сравнению с вашей рабочей копией, выполните команду:

$ svn diff -r BASE:HEAD ./pathToYour/file

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

$ svn diff -r BASE:HEAD .

Ответ 3

Вы можете увидеть, что будет обновлено (без фактического обновления), выпуская:

svn merge --dry-run -r BASE:HEAD .

Подробнее здесь.

Ответ 4

Это то, что я искал. Сначала проверил Google, но svn help закончил для меня:)

svn diff -r BASE:HEAD .

Ответ 5

То же, но короче короче:):

svn st -u

Ответ 6

Вы можете использовать 'svn diff', чтобы увидеть разницу между вашей рабочей копией и репозиторием.

Ответ 7

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

Разработка функции IMHO должна быть выполнена следующим образом.

Затем вы можете обновить этот целевой компьютер из этой ветки, а не из магистрали.