SVN слияния с ревизией не делает то, что я ожидаю - PullRequest
4 голосов
/ 11 мая 2009

Я пытаюсь выполнить svn-слияние изменений из транка в ветку (2001). Изменение в багажнике на ревизии 614.

Я пробовал следующее, и никто из них не делает то, что я хочу:

svn merge
svn merge -r 614:HEAD https://secreturl/trunk

Но это, похоже, вызывает много изменений, которые я не хочу.

Когда я запустил: svn log -r 614 https://secreturl/trunk - я увидел комментарий о небольшом подмножестве изменений, которые я хотел объединить. Что мне здесь не хватает?

Ответы [ 5 ]

10 голосов
/ 11 мая 2009

svn merge -r 614:HEAD https://secreturl/trunk объединит все изменения между ревизией 614 и HEAD. Более того, в качестве базовой ревизии потребуется 614 (вероятно, не то, что вам нужно):

Чтобы объединить изменения из определенной ревизии, вы можете использовать один из двух методов:

$ svn merge -c 614 https://secreturl/trunk или $ svn merge -r 613:614 https://secreturl/trunk.

Первое означает применять изменения только в редакции 614 , в то время как вторая форма означает принять все изменения, необходимые для перехода от r613 к r614, и применить их здесь .

3 голосов
/ 11 мая 2009

Я думаю, что вы хотите -r 613: ГОЛОВА. Если вы просто хотите изменить 614, введите -r 613: 614.

2 голосов
/ 11 мая 2009

svn log -r 614 покажет вам конкретную версию 614. Если вы хотите просто объединить результаты r614, сделайте это:

svn merge -r 613: 614 https://secreturl/trunk

То есть объединить изменения с 613 до 614.

0 голосов
/ 31 августа 2011

Я взял приведенную выше информацию и создал Windows-файл .bat, чтобы показать, как это можно написать в сценарии. Мое дополнение более подробно показывает, как вы работаете с ЛОКАЛЬНОЙ РАБОЧЕЙ КОПИЕЙ, а затем фиксируете данные в хранилище.

В приведенном ниже .bat-файле я добавляю статус svn.exe, чтобы показать, что произойдет, если вы совершите коммит, а затем PAUSE, чтобы дать вам последний шанс отключиться от X и не выполнить коммит.

Вот файл .bat

К вашему сведению, я использую svn.exe 1.6.15.

 set __SVNClient="C:\Program Files (x86)\CollabNet\Subversion Client\svn.exe"

 set __PreviousRevisionNumber=2594

 set __CheckoutFolder=".\MyCheckoutFolderRevision%__PreviousRevisionNumber%"


 RD %__CheckoutFolder% /Q /S



 %__SVNClient% checkout "https://www.myrepository.com/MyProject/trunk" %__CheckoutFolder% --username %USERNAME%


 CD %__CheckoutFolder%


%__SVNClient% merge --revision HEAD:%__PreviousRevisionNumber% "."



%__SVNClient% status "."



PAUSE



%__SVNClient% commit -m "Manual Change. Revision %__PreviousRevisionNumber% was pulled out of repository and then it was made the HEAD Revision." "." --username %USERNAME%

CD ..



set __CheckoutFolder=
set __PreviousRevisionNumber=
set __SVNClient=

Этот сайт (и название раздела) дает немного больше объяснений:

http://durak.org/sean/pubs/software/version-control-with-subversion-1.6/svn.branchmerge.basicmerging.html
(Поиск «Отмена изменений» в качестве заголовка раздела)

0 голосов
/ 11 мая 2009

Хороший сайт, чтобы помочь вам по
Ссылка 1

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...