Как избежать "svn: Out of Date:" проблемы?

В последние несколько лет использования svn я часто сталкивался с проблемами, в которых коммиты с ошибкой выходили бы с ошибкой. Первоначально я думал, что это связано с использованием рабочих мест на основе samba, но я видел, как это происходит удаленно с помощью svn + ssh.

Вот пример этого в последнее время:

  • Переименовать каталог, используя svn move
  • Переключить на новый каталог
  • Попробуйте выполнить удаление старого каталога - сбой:

    Удаление (sub dir) svn: Commit failed (подробности следуют): svn: устаревший: '(некоторый путь)/(старый каталог)/(sub dir)' в транзакции x

Дополнение: Каков наилучший способ устранения этих проблем, когда они происходят?

Ответы

Ответ 2

Вы должны проверить эти вещи из FAQ по Subversion:

  • Обломки от неудачной фиксации засоряют вашу рабочую копию.
  • Смешанные версии
  • Возможно, вы действительно устарели.

Пример вашего переименования указывает на № 2 в качестве источника проблемы: если вы зафиксируете новый каталог, родительский каталог старого и нового будет смешанной версией, поэтому, если вы попытаетесь зафиксировать родительский каталог, не удастся. Это имеет большое значение для фиксации перемещения (которое является комбинированной копией и удалением) в одной транзакции путем отправки родительского каталога.

Ответ 3

Я думаю, что вы должны зафиксировать все изменения за один шаг, таким образом, bot родительский, а перемещенный каталог будет в той же версии.

В вашем случае вы должны выполнить обновление svn в родительском каталоге, который восстановит ваш стертый каталог, затем svn удалит его еще раз и попробую еще одну фиксацию

Ответ 4

После прочтения всех очевидных вещей и некоторых других предложений здесь, без всякой удачи, поиск Google привел к этой ссылке - Subversion говорит: Your файл или каталог, вероятно, устарели

Вкратце, трюк заключается в том, чтобы перейти в каталог .svn (в каталоге, который содержит файл-нарушитель), и удалить файл "all-wcprops" .

Работал для меня, когда ничего другого не делал.

Ответ 5

ну, я думаю.

1) Я скопирую код модификации в блокнот.

2), обновите файл.

3) скопируйте код блокнота в обновленный файл.

4) commit в svn.