Совместимы ли бинарные репозитории Subversion (кроссплатформенность)?

Мой репозиторий Subversion в настоящее время установлен в системе с двойной загрузкой с установленными Windows и Ubuntu Linux. Можно ли использовать один и тот же репозиторий с обеими операционными системами, поэтому, если я работаю с Ubuntu, я могу запустить службу svn и получить доступ к тому же репозиторию, который я использовал с Windows?

Например

  • к файлам репозитория будет обращаться служба Linux svn, если мой ноутбук работает с Ubuntu
  • и позже доступ к службе Windows svn, когда я работаю с XP

(Я не буду обращаться к одним и тем же файлам с двух разных серверов Subversion одновременно)

Или - другими словами: если репозиторий Subversion был создан и использовался в разделе Windows, могу ли я также перезагрузиться с Linux и запустить сервер Subversion для использования того же репозитория?


person mjn    schedule 21.03.2010    source источник


Ответы (3)


Репозитории Subversion бинарно-совместимы, если они используют формат FSFS DB (cat repos/db/fs-type), а не Berkeley DB, и используются совместимые версии Subversion.

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

person Kevin Reid    schedule 21.03.2010

Не совсем понятно, что вы имеете в виду.

Вы установили в Windows службу svn, которую хотите запустить (и использовать) из своей системы Linux? Или вы просто хотите получить доступ к своему репозиторию?

IMHO вы можете создать репозиторий с помощью подходящего инструмента (svnadmin в Linux). Это каталог, содержащий ваши данные и множество метаданных. Этот каталог должен быть каким-то образом открыт (например, webdav, svn service).

Способ доступа к вашему репозиторию svn из вашей системы Linux - это прямой доступ к каталогу репозитория. например: svn co file://mnt/Windows_C/path/to/repository/project

Однако вам нужно смонтировать раздел Windows с помощью -o rw.

person lajuette    schedule 21.03.2010
comment
Я предпочитаю протокол SVN: //, потому что он упрощает использование одной и той же рабочей копии на обеих платформах. - person mjn; 21.03.2010
comment
file: // mnt / Windows_C / path / to / repository / project ‹› svn: // repository / project, поэтому мне нужны две отдельные рабочие копии (или перемещение при каждом изменении ОС) - person mjn; 21.03.2010
comment
так вы хотите использовать рабочую копию в обеих системах, а не только в репозитории? У вас есть репозиторий (не рабочая копия) в разделе Windows, к которому вы хотите получить доступ при работе с системой Linux. Это правильно? Или вы хотите поделиться рабочей копией между обеими системами? Если у вас просто репо, то единственный способ получить к нему доступ из Linux - использовать протокол file: //. Но у вас не будет никаких недостатков по сравнению с использованием svn: //. Другое дело - поделиться рабочей копией. Но это тоже должно сработать. Вы должны быть осторожны, когда дело касается кодировки файла и концов строки. - person lajuette; 21.03.2010

Да, это прекрасно работает, на работе мы комбинируем Windows, OS X, Linux и BSD, используя одно и то же репозиторий Subversion.

person niklassaers    schedule 21.03.2010
comment
непосредственно против репозитория или используя экземпляр apache / svnserve перед ним? Другими словами, вы используете file:///, http(s):// или svn:// в своих URL-адресах? - person Sander Rijken; 21.03.2010
comment
У всех этих клиентов есть свои собственные серверы подрывной деятельности? У меня вопрос о доступе к репозиторию с помощью службы Linux svn, если мой ноутбук работает с Ubuntu, а затем со службой Windows svn, например, когда я работаю с XP. - person mjn; 21.03.2010
comment
Как сказал Кевин: это должно быть возможно. Но ИМХО вам вообще не нужна служба svn, вы должны использовать протокол file: //. - person lajuette; 21.03.2010