SVN отменить изменения в хранилище, но не локально

1497
bguiz

Здесь я ищу, как манипулировать 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
SleighBoy

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

2. Запустите:

svn merge -rHEAD:XXXX 

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

3. Фиксация

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

Ооо, хороший Не могу поверить, что я не думал об этом. Спасибо! bguiz 14 лет назад 0

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