2013-10-08 2 views
10

Я изменил файлы в своем рабочем каталоге и сделал обновление svn. Обновление было выполнено без конфликтов.Как отменить обновление svn?

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

Причина в том, что я поддерживаю локальный репозиторий git параллельно с общим хранилищем svn. Я забыл выполнить мои локальные изменения перед выполнением обновления svn. Теперь мой рабочий каталог содержит локальные изменения, смешанные с изменениями, связанными с обновлением svn. Если я зафиксирую, все изменения будут отображаться как одно изменение атома. Я хотел бы, чтобы они были отдельными. Если бы я мог отменить обновление и сохранить содержимое рабочего каталога, которое у меня было до обновления svn, я мог бы это сделать.

+0

я решил по-другому. Локальные изменения были в файлах, на которые не повлияло обновление. Таким образом, благодаря механизму git stage, я только фиксирую файлы, измененные локально, а затем во втором коммите модифицировал все другие файлы, измененные обновлением svn. Мне повезло. – chmike

+0

Да, этап git - выход. Даже если файлы _were_ затронуты, вы все равно можете использовать 'svn diff' и' git apply', чтобы отменить изменения subversion и ваши изменения. –

+1

В любом случае я бы рекомендовал использовать 'git-svn' в будущем.Он может надежно обрабатывать и импортировать ревизии и дополнительно может быть использован в качестве локальной очереди исправлений (вы можете иметь несколько коммитов в локальной ветви и нажимать только некоторые из них на подрывную деятельность, используя интерактивную rebase). –

ответ

4

Невозможно. Состояние до обновления забыто.

Вы можете отделить изменения, сделав subversion diff, используя git apply, чтобы применить его к индексу, зафиксировать это (ваши изменения) и совершить все (изменения от тяги).

Это аварийное решение. Я предлагаю вам перейти на git-svn, который будет обрабатывать подобные вещи для вас в будущем.

2

выполнить «Обновить до версии», чтобы вы изменили свой локальный файл на стабильную версию и затем повторно зафиксировали. Таким образом, вы теряете все локальные изменения.

+4

Потеря всех моих местных изменений - это то, чего я хотел избежать. – chmike

+0

Очевидно, что в вашем случае, если локальный измененный файл не конфликтует, эта операция не используется. Итак, тебе повезло! ;) имеют хороший день –

0

Это для пользователей Linux.

Предположительные изменения следующим образом.

Голова - 20 Предыдущие ревизии головы - 18, 17, 15, 14, 10, 9,8.

перейдите в каталог src. Использование svn merge -r 17:18 $ url

$ url для вашей базы svn.

6

Я продолжаю сталкиваться с этим вопросом, и на самом деле он не включает простой ответ на вопрос «Как отменить обновление svn?». вопрос.

Так что для блага других, с решаемой случае, когда вы просто хотите откатить обновление:

Сначала проверьте журнал с:

svn log | less 

Это даст вам номер версии (например, 957), к которому вы хотите вернуться. Тогда:

svn up -r 957 
+4

Этот ответ игнорирует случай модифицированного рабочего каталога. –

+0

true @RobertPollak, но он отвечает на вопрос, заданный заголовком вопроса ... – ErichBSchulz

+0

Downvoting, потому что это не отвечает на исходный вопрос (самое первое предложение которого содержит примечание об измененных файлах). Это будет ответом на другой вопрос «Как обновить до конкретной версии». Этот ответ не будет работать, если есть модифицированные файлы, и об этом даже не упоминается. –

-1

В случае, если были какие-то конфликты происходили во время обновления, будет копия вашего файл и пересмотр файла, доступного в вашей корзине

Смежные вопросы