Подверсия: Как сравнить различия между входящими изменениями?

Я хотел бы видеть изменения, которые внесли мои коллеги, прежде чем я приму входящие изменения.

Таким образом, я запускаю путем получения состояния

svn st -u

... который говорит мне, что у меня есть входящее изменение

    *     9803   incomingChanges.html
M         9803   localChanges.html
M   *     9803   localAndIncoming.html

Я вижу то, что я изменил

svn diff localChanges.html

... но как может я разность localAndIncoming.html показать, что было изменено, и как это отличается, чем моя рабочая копия?

19
задан 23.06.2012, 03:37

6 ответов

К вашему сведению svn diff дает разность на основе неизмененного файла, хранившего в .svn каталог, не на основе живой repo версии.

Можно работать svn update чтобы заставить подверсию делать попытку обновления (и возможно объединяться) и затем делают svn diff, но это не так чисто, как я предполагаю, что Вы хотите.

Наконец svn diff действительно поддерживает diffing только на repo. Пример:

svn diff svn://svnserver/repo/localChanges.html -r REV_NO

Какие значения по умолчанию к сравнению ГОЛОВЫ с переданным пересмотром.

2
ответ дан 07.12.2019, 10:20

Вы действительно не можете, пока Вы на самом деле не загружаете новую версию. Ограничения как это были одной из больших причин, почему новый тип управления исходным кодом стал популярным в последнее время. Это назвало децентрализованное управление исходным кодом.
С этой новой формой у Вас есть свой собственный локальный репозиторий, и можно затем внести изменения из основного репозитория и выполнить разность на нем, если Вам не нравятся изменения, внесенные, можно вернуться собственный репозиторий и пойти оттуда.

http://mercurial.selenic.com/

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

0
ответ дан 07.12.2019, 10:20

С tortoisesvn (если Вы используете окна),

  • Вызовите окно вывода лога

  • Выберите главный пересмотр

  • Щелкните правой кнопкой по localAndIncoming.html

  • Выберите Compare с рабочей копией

2
ответ дан 07.12.2019, 10:20

Сделайте другой контроль в новой папке.

cd ..
svn checkout  /path/to/repo clean_working_copy

Если Вы снова используете clean_working_copy, не забывают обновлять прежде

svn update clean_working_copy

Затем сравните свой файл с тем от clean_working_copy

diff your_working_copy/localAndIncoming.html clean_working_copy/localAndIncoming.html

Или с Вашей предпочтенной разностью с 3 путями (моя - kdiff3),

kdiff3 --L1 Base --L2 theirs --L3 mine your_working_copy/.svn/text-base/localAndIncoming.html clean_working_copy/localAndIncoming.html your_working_copy/localAndIncoming.html
0
ответ дан 07.12.2019, 10:20

Я думаю

svn diff -r HEAD

почти дает то, что Вы хотите. Единственная вещь состоит в том, что + и - инвертируются относительно того, что Вы ожидаете.

0
ответ дан 07.12.2019, 10:20

Я верю тому, в чем Вы нуждаетесь:

svn diff -rBASE:HEAD
21
ответ дан 07.12.2019, 10:20

Теги

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