Как отменить слияние (без фиксации)?

Я просто сделал 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
[...]

Но было слишком много конфликтов, таким образом, я хотел бы отменить это.

Один способ сделать, который должен фиксировать и затем объединиться назад. Но я не могу фиксировать из-за конфликтов. Что лучший способ состоит в том, чтобы отменить в этом случае?

45
задан BartoszKP 5 December 2018 в 11:26
поделиться

3 ответа

Рекурсивно выполнить возврат из верхней части вашей рабочей копии:

svn revert -R.

Вам нужно будет вручную удалить файлы, которые были добавлены. Как и после возврата, добавленные файлы останутся на диске, но не будут отслеживаться ("? Foo")

112
ответ дан 26 November 2019 в 21:02
поделиться

Пока вы не зафиксировали фиксацию, вы всегда можете выполнить возврат, чтобы отменить все свои изменения.

7
ответ дан 26 November 2019 в 21:02
поделиться

Просто сделайте 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. в том, что все добавленные файлы удаляются должным образом.

-11
ответ дан 26 November 2019 в 21:02
поделиться
Другие вопросы по тегам:

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