Как отменить обновление svn?
Я изменил файлы в своем рабочем каталоге и сделал обновление svn. Обновление было выполнено без конфликтов.
Я хотел бы иметь возможность вернуть содержимое рабочего каталога в состояние, которое было непосредственно перед обновлением svn.
причина в том, что я поддерживаю локальный репозиторий git параллельно с общим репозиторием svn. Я забыл git зафиксировать мои локальные изменения перед обновлением svn. Теперь мой рабочий каталог содержит локальные изменения, перепутанные с изменениями, вызванными обновлением svn. Если я зафиксирую, все изменения будут отображаться как одно атомарное изменение. Мне хотелось, чтобы они были разделены. Если бы я мог вернуть обновление и сохранить содержимое рабочего каталога, который у меня был до обновления svn, я мог бы это сделать.
5 ответов
это невозможно. Состояние перед обновлением забыто.
вы можете разделить изменения, сделав subversion diff, используя git apply
чтобы применить его к индексу, зафиксируйте это (ваши изменения) и зафиксируйте все (изменения от pull).
это аварийное решение. Я предлагаю вам переключиться на git-svn
, это будет обрабатывать такие вещи для вас в будущем.
Я продолжаю нажимать на этот вопрос, и на самом деле он не включает простой ответ на "Как отменить обновление svn?" вопрос.
Итак, в интересах других, с разрешимым случаем, когда вы просто хотите откатить обновление:
сначала проверьте журнал с:
svn log | less
Это даст вам ряд изменений (например,957
), к которому вы хотите вернуться. Затем:
svn up -r 957
выполните "обновление до версии", чтобы изменить локальный файл на стабильную версию, а затем повторно зафиксировать. Таким образом, вы теряете все локальные изменения.
Это для пользователей linux.
предположим, что изменения следующие.
Глава - 20 Предыдущие изменения в голове - 18, 17, 15, 14, 10, 9,8.
перейдите в каталог src. Использовать svn merge-r 17: 18 $url
$url для вашей базы svn.
в случае, если во время обновления возникли какие-либо конфликты, в вашей корзине будет доступна копия вашего файла и файла ревизии