Подтвердить что ты не робот

SVN Endless Loop - [файл] "не существует в репозитории"

Это беспокоило меня неделю.

SVN продолжает говорить мне, что определенный файл "does not exist in repository".

Fine. Позвольте просто удалить его. Забудь об этом. Игнорируй это. Без разницы. Мне не очень-то нравится этот файл (особенно если он продолжает терпеть неудачу в ночной регистрации).

Самая причудливая часть? "Восстановление" на самом деле ВОССТАНОВИТ файл из репозитория, поэтому его там (поврежденный, может быть?).

... и это должно быть глазурь на торте. Если я удалю файл через проводник Windows, SVN будет ВОССТАНОВИТЬ файл из репозитория и сразу после этого состояния, которого он не существует в репозитории. WTF?

Кто-нибудь знает, как избавиться от этого?

Я уже пробовал очистить, реверсии, удаления и все, что только можно вообразить, но это меня сильно озадачило.

Спасибо за любые советы, которые у вас могут быть...

4b9b3361

Ответ 1

Скорее всего, вы повредили свою локальную рабочую копию, например. путем перемещения папок или некоторых других манипуляций, которые вы делали с проводником Windows, но должны были сделать это через контекстное меню TortoiseSVN. Информация внутри папок .svn теперь больше не соответствует состоянию рабочей копии, что сбивает с толку Subversion.

Чтобы исправить это, удалите родительскую папку ( "Оригиналы" ) в своей рабочей копии с помощью проводника Windows (НЕ с TortoiseSVN). Затем выполните обновление TortoiseSVN в корне вашей рабочей копии. Это должно восстановить папку в рабочем состоянии.

Другой вариант - полностью отменить рабочую копию и сделать новую проверку.

Обратите внимание, что следующая версия Subversion (1.7) уменьшит возможности для искажения вашей рабочей копии путем централизации всех метаданных в одной папке .svn в корневом каталоге.

Ответ 2

У меня были проблемы с поврежденными рабочими копиями. Иногда рабочие копии имеют много ожидающих изменений, но не могут проверить. Чтобы решить эту проблему, я использую следующий подход (svn 1.7 +):

  • Оформить новую рабочую копию в новый каталог (путь2)
  • В новой рабочей копии, если там есть файл-нарушитель, удалите его, если необходимо.
  • Записать новую рабочую копию
  • В новой рабочей копии удалите все, кроме каталога .svn
  • Скопировать все из старой рабочей копии, кроме каталога .svn, в новую рабочую копию.
  • Завершить новую рабочую копию снова
  • Удалить (или создать резервную копию) старую рабочую копию
  • Переименуйте новую работу на старую рабочую копию (путь2 к пути)