Нужно ли PySVN устанавливать Subversion? - PullRequest
1 голос
/ 04 февраля 2010

У меня есть скрипт на python, который использует pysvn и извлекает или обновляет локальную копию, полученную также из локального репо.

client.checkout(url, 
path,
revision=pysvn.Revision(pysvn.opt_revision_kind.number, RevNumber),
ignore_externals=False)

Я запускаю это на машине с Windows, на которой я не установил Subversion. Svnsync, используемый для получения копии реального репо, был сделан на другом компьютере. При этом я предположил, что PySVN не требуется установленный SVN, чтобы иметь возможность извлекать или обновлять из папки, содержащей результат svnsync.

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

В Ubuntu я получаю эту ошибку при запуске моего скрипта с pysvn:

pysvn._pysvn_2_6.ClientError: Unable to open an ra_local session to URL
Unable to open repository xxxx
Expected FS format between '1' and '3'; found '4'

После некоторого поиска это сообщение об ошибке, относящееся к svn 1.6, но pysvn предположительно поддерживает это, и sudo apt-get install python-svn сообщает, что у меня последняя версия ...

Итак, это из-за SVN или pySVN? Если Windows pysvn не жалуется на это, почему Ubuntu один делает? Или это связано с наличием SVN на машине или нет?

Выяснение этого поможет мне ответить на предыдущий пост моего по существу на ту же тему

1 Ответ

1 голос
/ 04 февраля 2010

Это потому, что ваша Ubuntu обращается к репо со слишком старой версией SVN API.

Окна одна в порядке, потому что она, очевидно, использует более новую версию.

Согласно странице загрузки PySVN :

двоичные наборы Windows

Примечание. Эти комплекты Windows - все, что вам нужно необходимость. Не нужно устанавливать любые наборы Subversion.

и

Бинарные наборы для Mac OS X

Примечание. Эти комплекты для Mac OS X - это все, что вам нужно необходимость. Не нужно устанавливать любые наборы Subversion.

но, приезжайте

бинарные наборы Linux

в нем ничего не говорится о НЕ нуждающихся в Subversion. Я думаю, что PySVN Linux нуждается в Subversion и, следовательно, использует только 1.5.x

В дополнение к этому, он говорит только

построен против Subversion 1.5.6 и Subversion 1.6.5

для Windows и Mac OSX, а не для Linux

Вам нужно будет установить клиент SVN в Ubuntu, который поддерживает более новый формат репо. Очевидно, вы можете подождать, пока обновится версия PySVN для Nix, или найти другой инструмент SVN ...

...