Как я могу заставить Subversion зафиксировать устаревший файл? - PullRequest
10 голосов
/ 26 июля 2011

Я бы хотел "перезаписать" мой последний коммит предыдущей версией.Я попытался извлечь версию 631, внести некоторые изменения и зафиксировать ее как версию 633. Но svn не согласен, потому что существует версия 632.

Какой самый простой способ сделать это?Это многофайловый коммит.Я не хочу делать это вручную.

Ответы [ 5 ]

9 голосов
/ 26 июля 2011

Вместо проверки 631 выполните от REVERT до 631. Затем вы можете измениться и зарегистрироваться.

7 голосов
/ 19 октября 2012

Вопрос немного стар, но ответ может быть полезен для дальнейшего использования:

Ну, на самом деле, никто не должен фиксировать устаревшие файлы в SVN. Сам сервер отказывается от этих файлов по соображениям безопасности. Нужно сделать обновление с последней версии, но автоматически сохранить ваши «устаревшие» файлы во время процесса слияния:

svn up --accept mine-full

Другими словами, это выполнит обновление, но проигнорирует любое входящее слияние.

3 голосов
/ 26 июля 2011

Если вы не можете выполнить REVERT до версии 631, выполните следующие действия:

  • Сохраните изменения где-нибудь за пределами рабочей области.
  • Обновите рабочую область до версии 632(HEAD).
  • Повторно примените изменения в рабочей области.
  • Commit.
1 голос
/ 12 марта 2018

Я тоже хочу иметь эту функцию.Почему нет команды, похожей на svn commit --force-overwrite-new-version?

Скопируйте SVN-ревизию 631 в SVN-ревизию 633, и тогда вы сможете зафиксировать свои изменения в SVN-ревизии 634.

svn copy remote_url@631 remote_url
svn commit

PS * git также не имеет этой функции.Нет такой команды, как git merge foo --force-overwrite.

Иногда требование изменяется, поэтому некоторый код, который передается, становится бесполезным.Это происходит очень часто, поэтому перезапись кода жизненно необходима.Интересно, почему ни svn, ни git не имеют этой функции.Что за глупый дизайн !!!

0 голосов
/ 20 декабря 2018

Скопируйте файл со старыми изменениями в другое место, выполните svn-обновление файла, чтобы зарегистрироваться. После завершения перезапишите недавно обновленный недавний файл своим старым файлом, а затем выполните svn commit.

...