Как восстановить поврежденный репозиторий (который имеет централизованный каталог .svn)?


19

Я недавно обновил мою установку TortoiseSVN до версии 1.7.1. Это заставило меня обновить и мою рабочую копию. Обновление удалило все (кроме одного) из каталогов .svn из всех подкаталогов, оставив только один в корне.

Теперь совершенно неожиданно (конечно, я подозреваю, что у меня антивирусное программное обеспечение) возникает ошибка, когда я, например, пытаюсь очистить рабочую копию. Я также не могу ничего совершать.

Сообщение об ошибке при очистке:

При очистке не удалось обработать следующие пути: C: \ svn

Не удается открыть файл 'C: \ svn.svn \ pristine \ 73 \ 73bcc5fa7819f84f56b81dfa0236f0aac7b7d404.svn-base': система не может найти указанный файл.

Я проследил, что ошибка связана с наличием одного каталога в рабочей копии. Если я переименую его, то все работает. Когда он присутствует, я получаю ошибку. Я также удалил это и проверил это снова. Без изменений, ошибка сохраняется.

В предыдущих версиях я мог легко исправить повреждения в .svn: просто удалите поврежденную папку и проверьте снова. Я больше не могу этого делать, потому что теперь .svn dir централизован.

Что я мог сделать, чтобы восстановить мою рабочую копию?

Ответы:


21

Не удается открыть файл 'C: \ svn.svn \ pristine \ 73 \ 73bcc5fa7819f84f56b81dfa0236f0aac7b7d404.svn-base

У меня просто была похожая ошибка, и мне пришлось создать этот файл с помощью блокнота, а затем очистка сработала.


1
Но это безопасно сделать? "Очистка SVN" сделает этот файл снова не пустым? (Потому что это, конечно, было раньше, нет?)
hans_meine

Я могу проверить, что этот метод работает, я не уверен, каков результат / потеря от создания такого пустого файла - но не создавая его, не позволил мне «продолжить выполнение»
nrathaus

4

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

Чтобы проиллюстрировать это, в моем случае файл, на который жаловался svn, был .svn/pristine/d1/d12a84ef7be5dad86b76e1a45fc3da4698d38796.svn-baseименно тем путем, который нужно найти в новой, частичной проверке.


3

У нас была такая же проблема после обновления со старой версии до Tortoise SVN 1.7.7.

Поскольку я не нашел другого решения, я удалил локальную рабочую копию и снова проверил ее. Сейчас работает нормально.


2

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

Я создал фиктивный файл с таким точным именем в указанной папке и сделал чистку SVN.

Тогда я смог продолжить.


0

У меня была похожая проблема, когда говорилось, что файл C:\working_copy\dir\file.xmlне найден. Я удалил dirкаталог. В моем случае простое добавление новой dirпапки и file.xmlфайла (с пустым текстом) позволило продолжить очистку, после чего я смог бы заново обновить рабочую копию.


0

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

Я удалил каталог .svn и хранилище извлечения в том же каталоге.

Проблема была решена: я смог выполнить все операции SVN, и проект все еще был настроен в IDE

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.