Ошибка при проверке хранилища Subversion (svn: Ваш каталог .svn / tmp может отсутствовать или поврежден;) - PullRequest
8 голосов
/ 17 января 2011

Я пытаюсь получить полный репозиторий Subversion, включая все ветви и теги:

svn co svn+ssh://path/to/project

Это выполняется некоторое время, но во время проверки ветви я получаю следующую ошибку:

svn: Your .svn/tmp directory may be missing or corrupt; run 'svn cleanup' and try again
svn: Can't open file 'project\branches\BRANCH\source\java\com\bS\.svn\tmp\text-base\Event.java.svn-base': The system cannot find the path specified.

Итак, я попытался оформить ветку вручную, выполнив:

svn co svn+ssh://path/to/project/branches/BRANCH

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

Кто-нибудь знает, почему я не могу оформить ветку как часть общего проекта, но я могу проверить ее самостоятельно?

Ответы [ 4 ]

7 голосов
/ 05 августа 2011

Вы можете обойти эту проблему в Windows, указав полный путь в параметре команды svn. Например, вместо

c:\dev> svn co http://repoman.example/svn/myproj/trunk myproj

попробуйте это

c:\dev> svn co http://repoman.example/svn/myproj/trunk c:\dev\myproj

По некоторым причинам ограничения длины пути применяются только к относительным путям .

6 голосов
/ 17 января 2011

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

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

Сейчас я проверяю весь проект в D: \ ProjectDir, и кажется, что все идет намного более гладко. Я предполагаю, что в подрывной деятельности есть ограничение на длину пути, поэтому не удалось получить некоторые необходимые файлы.

* Обновление: ограничение составляет 255 символов. Оказалось, что в моем случае путь был 269 символов. Таким образом, достаточно просто подняться на 1 уровень каталога, чтобы обойти проблему.

2 голосов
/ 23 октября 2013

Проверьте это: find . -iname '.svn' -exec mkdir {}/tmp \;

0 голосов
/ 12 апреля 2013

Вы также получаете эту ошибку при проверке имен файлов с префиксом специальных имен устройств Windows, таких как CON и PRN (например, CON.java):

http://mail -archives.apache.org/mod_mbox/subversion-users/201209.mbox/%3C4C6D8718-51F0-4DC7-9E74-E8161EC686AC@ryandesign.com%3E

...