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

Как восстановить svn-элемент управления, если повреждена папка .svn?

У меня есть несколько больших проверок, где папка .svn повреждена, поэтому я получаю и ошибки, "Cleanup не удалось обработать следующий путь". И я больше не могу фиксировать или обновлять файлы в этом каталоге.

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

Есть ли инструмент, который будет восстанавливать папки .svn для определенных папок без необходимости загружать все?

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

Ох.. Я большой поклонник TortoiseSVN или командной строки для Linux.

Мысли?

4b9b3361

Ответ 1

Если у вас есть изменения в файлах и вы не можете их удалить, вы можете использовать функцию Subversion 1.5, которая позволяет вам "проверять с препятствиями".

Просто удалите каталог .svn в этом каталоге и:
(вам не нужно удалять внутренние каталоги при использовании файлов -depth, спасибо Эрику)

Если сломанная директория была верхним каталогом рабочей копии:

svn checkout --depth files --force REPOS WC

И если каталог выше сломанной версии все еще запущен версией:

svn update --depth files --force WC

в этом каталоге.
В обоих примерах REPOS является URL-адресом в репозитории, который соответствует сломанному каталогу, а WC - путь к каталогу.

Файлы, которые были первоначально изменены, после этого будут в измененном состоянии.

Ответ 2

Если вы знаете, какая папка имеет поврежденный каталог .svn, вы можете просто удалить этот один каталог и снова запустить обновление svn. Возможно, вам придется удалить весь каталог, включая его текущее содержимое. Конечно, если папка с поврежденным каталогом .svn является той, которая содержит гигабайт, то вы вернетесь туда, где вы начали.

Ответ 3

Сделайте резервную копию папки с отсутствующим .svn

Затем удалите папку

Если это корень проверки, вам придется переустановить

Если это не корень, просто запустите обновление из каталога выше.

Затем переместите папку резервного копирования поверх нее. (В идеале не перемещайте папки .svn)

Продолжайте работать и не забудьте обновить/зафиксировать!

Ответ 4

Я ударил это в прошлом и не нашел рабочего решения, кроме "ядерной опции" (т.е. удалил каталог и повторную проверку).

Не уверен, что это ваша проблема, но мое повреждение было вызвано сканером вирусов по доступу на том же компьютере, что и сервер SVN.

Ответ 5

Если в подкаталогах и ОК, а вложенные подкаталоги большие, вы можете попробовать нерекурсивную свежую проверку.

Ответ 6

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

Ответ 7

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

Я в основном удалил то, что у меня было, и повторил оформление. Это занимает много времени, но я действительно хочу убедиться, что svn понятен, прежде чем я смогу снова начать работать. Спасибо!