1

То, что я ищу здесь, - это как манипулировать Svn для эффективного отката моего предыдущего коммита в хранилище, не затрагивая изменения, которые я сделал локально.

Допустим, я делаю это:

$ svn ci abc.java -m "Updated abc"
Sending        abc.java
Transmitting file data .
Commited revision 123

А потом поймите, что я пока не хочу делать это обновление в хранилище, но хочу сохранить изменения, которые я сделал локально. Я хочу, чтобы мои локальные файлы остались прежними, но файлы в хранилище вернутся к ревизии 122.

Мне удалось найти только один способ сделать это, используя обратное слияние:

$ svn merge -c -123 abc.java
--- Reverse-merging r123 into 'integer.c':
U    integer.c
$ svn commit -m "Undoing last change: rev 123."
Sending        abc.java
Transmitting file data .
Committed revision 124.

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

Мне было интересно, есть ли менее замысловатый способ сделать это, когда операции происходят только в хранилище?

Спасибо

1 ответ1

2

1. Оформить заказ на новую копию репо

2. Бежать:

svn merge -rHEAD:XXXX

(XXXX - это ревизия ДО той, которую вы только что совершили)

3. совершить

4. Удалить только что выписанное репо

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .