Як відновити пошкоджений сховище (у якому є централізований каталог .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.