Как я могу заставить subversion зафиксировать устаревший файл?

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

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

Ответ 1

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

Ответ 2

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

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

svn up --accept mine-full

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

Ответ 3

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

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

Ответ 4

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

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

svn copy [email protected] remote_url
svn commit

Ответ 5

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