Как избежать проблем "svn: Out of Date:"? - PullRequest
14 голосов
/ 03 мая 2009

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

Вот пример того, что недавно появилось:

  1. Переименование каталога с помощью svn move
  2. Подтвердить изменение в новый каталог
  3. Попробуйте зафиксировать удаление старого каталога - не удастся:

    Удаление (sub dir) svn: Сбой при фиксации (подробности приведены ниже): svn: устарел: '(некоторый путь) / (старый каталог) / (вспомогательный каталог)' в транзакции x

Дополнение: Как лучше всего решить эти проблемы, когда они возникают?

Ответы [ 5 ]

17 голосов
/ 03 мая 2009

Ознакомьтесь с SVN FAQ по этому вопросу . Я считаю, что вы действительно устарели и просто должны запустить "svn update".

4 голосов
/ 03 мая 2009

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

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

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

1 голос
/ 24 апреля 2015

ну, я так думаю.

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

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

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

4) коммит в svn.

1 голос
/ 04 января 2011

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

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

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

1 голос
/ 03 мая 2009

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...