Я просто сделал svn merge
объединить изменения от соединительной линии до ответвления:
$ svn merge -r328:HEAD file:///home/user/svn/repos/proj/trunk .
--- Merging r388 through r500 into '.':
A foo
A bar
C baz1
C baz2
U duh
[...]
Но было слишком много конфликтов, таким образом, я хотел бы отменить это.
Один способ сделать, который должен фиксировать и затем объединиться назад. Но я не могу фиксировать из-за конфликтов. Что лучший способ состоит в том, чтобы отменить в этом случае?
Рекурсивно выполнить возврат из верхней части вашей рабочей копии:
svn revert -R.
Вам нужно будет вручную удалить файлы, которые были добавлены. Как и после возврата, добавленные файлы останутся на диске, но не будут отслеживаться ("? Foo")
Пока вы не зафиксировали фиксацию, вы всегда можете выполнить возврат, чтобы отменить все свои изменения.
Просто сделайте svn resolve
во всех конфликтах и зафиксируйте:
$ svn resolved baz1
$ svn resolved baz2
$ svn ci -m "oops. bad merge. will revert."
Transmitting file data ......
Committed revision 501.
Затем официально отмените его, объединив обратно туда, где оно было:
$ svn merge -r501:500
--- Reverse-merging r319 into '.':
[...]
Вот и все, слияние было отменено в каталоге. Теперь зафиксируйте и это:
$ svn ci -m "bad merge has been undone"
Transmitting file data ......
Committed revision 502.
Преимущество метода svn revert -R.
в том, что все добавленные файлы удаляются должным образом.