утилита командной строки svn не будет работать, если полное имя файла длиннее 256 символов
Я не могу создать рабочую копию из командной строки с помощью утилиты svn, если результирующие полные имена файлов для некоторых файлов слишком длинные.
Но я могу успешно создать рабочую копию из TortoiseSVN или из Субклипа.
Почему?
5 ответов
в качестве обходного пути, вы можете subst
ваша рабочая копия на букву диска, чтобы сохранить длину пути:
C:\Users\Me\SVN\My\Cool\Repository\With\A\Very\Long\Path> subst S: .
C:\Users\Me\SVN\My\Cool\Repository\With\A\Very\Long\Path> S:
S:> svn up
это на самом деле не ограничение клиента svn, а консоли windows: относительные пути не могут превышать MAX_PATH (254) символов при расширении.
и в отличие от некоторых утверждений комментатора здесь, это не надзор разработчиков svn, чтобы забыть о MAX_PATH. Потому что: если вы передадите полные пути вместо относительных, команды будут работать.
Итак, вместо
cd C:\some\...\very\long\path
svn up .
run
svn up c:\some\...\very\long\path
и он должен работать просто отлично.
вместо того, чтобы делать следующее В текущей директории:
svn co http://xxx/repo1
дайте ему полный целевой путь, как это:
svn co http://xxx/repo1 E:\abc\pqr\xyz\abc\pqr\xyz\repo1
Если ваша командная строка на самом деле Cygwin bash, то вы могли бы поразить эту ошибку:
http://www.itefix.no/i2/node/11064 или http://old.nabble.com/file-name-too-long-td22189828.html
фактически, Cygwin не может обрабатывать пути длиной более 255 символов. (В дополнение к ответу Стефана: здесь невозможны ни абсолютные, ни относительные пути.) Cygwin 1.7, который является бета-версией с полугода, похоже, исправляет это.
У меня была такая же проблема в системе Ubuntu при попытке проверить репозиторий с очень длинными именами файлов. Однако я узнал, что моя проблема связана с шифрованием моего домашнего диска, как описано здесь: http://ubuntuforums.org/showthread.php?t=2258374