Режим совместимости TortoiseSVN - PullRequest
1 голос
/ 30 марта 2009

Наш код разрабатывается для Windows (корпоративное требование), но работает на серверах Linux. Поэтому мы используем общие ресурсы Samba с проверкой SVN на них. К сожалению, нам нужно использовать некоторые скрипты, использующие SVN, на стороне сервера, но наш SVN на сервере - 1.4, а TortoiseSVN на клиентах Windows - 1.5 или 1.6. По сути, любое действие с извлечением с использованием TortoiseSVN обновляет внутреннюю структуру извлечения и, таким образом, его нельзя использовать на стороне сервера, поскольку «версия клиента слишком старая».

Знаете ли вы, как обойти эту проблему? Единственный способ, которым я знаю, это вообще не использовать SVN на стороне клиента, но это отчасти непродуктивно. Обновление SVN на сервере также не подлежит обсуждению. Любые другие возможности?

Ответы [ 3 ]

5 голосов
/ 30 марта 2009

Не делитесь рабочими копиями!

Особенно не между разными ОС. У вас рано или поздно возникнут проблемы с этим. Одна (самая очевидная) проблема - конец строки текстовых файлов. Если для свойства svn: eol-style указано «native», то для клиента svn, работающего в Linux, это отличается от клиента svn, работающего в Windows. Есть еще много различий, которые могут привести к неприятностям при таком подходе, но для понимания этих проблем требуется знание svn.

Итак, еще раз: не делитесь рабочими копиями!

5 голосов
/ 30 марта 2009

Почему бы вам тогда не использовать старый 1.4 TortoiseSVN?

Другой вариант - иметь отдельную рабочую копию для общих ресурсов Samba и для запуска указанных вами SVN-скриптов. Таким образом, ваша общая рабочая копия может использовать v1.6.

0 голосов
/ 30 марта 2009

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

А также сохраняйте отдельную рабочую копию на каждой машине разработчика (которую, я полагаю, у вас уже есть)

Таким образом, не имеет значения, какую версию клиента мы используем, так как все клиентские репозитории являются независимыми. Чтобы немного упростить задачу, также включите plink и batchfile для запуска сценария обновления на сервере, затем создайте ограниченную учетную запись на поле, для которого пользователи знают идентификатор / пароль, а затем вы можете запустить его с клиентского компьютера easilly , у нас есть командная строка следующим образом

tools \ PLINK.EXE -pw пароль user @ server / fullPathToSNVUpdateScript

...