версии клиента / сервера SVN - PullRequest
       11

версии клиента / сервера SVN

4 голосов
/ 02 октября 2009

Если я правильно понимаю, версия Subversion определяет:

  • Репозиторий структуры на сервере
  • Структура рабочей копии на стороне клиента
  • API между клиентом и сервером

Как только мы установим svn-сервер, мы не будем его трогать / обновлять.

На стороне клиента все сложнее.

На стороне клиента (Windows) мы в настоящее время используем tortoisesvn . Его версия (поправьте меня, если я ошибаюсь) соответствует версии Subversion.

Теперь мы собираемся перенести наше приложение на Linux, и поэтому мы рассматриваем возможность использования дополнительных клиентов svn (утилита командной строки svn, плагин Eclipse и некоторый интерфейс GUI).

Теперь вопросы:

  1. Возможно ли, что несколько разных клиентов будут работать с одним и тем же кодом проверки? Если да, то это означает, что мне нужно осторожно подобрать версию клиента, которая будет использоваться, поскольку каждый клиент ожидает, что определенный формат / данные будут найдены в каталоге .svn?

  2. Какая связь между версией сервера и клиентской стороны? Если, например, на стороне сервера 1.4, а на клиенте 1.6, то это означает, что некоторые 1.6 функции не будут работать?

  3. Верно ли, что версия клиента subversion не обязательно соответствует версии subverions, такой как rapidsvn в отличие от tortoisesvn ?

Ответы [ 4 ]

5 голосов
/ 02 октября 2009

Я бы настоятельно не рекомендовал бы вам использовать разные клиенты Subversion для одного и того же каталога проверки, особенно если они работают на разных платформах (то есть в сети). Subversion выполняет специфические для платформы вещи с окончаниями строк в текстовых файлах, и если вы проверяете в Windows, а затем регистрируете ту же рабочую копию в Linux (например), вы можете случайно коснуться каждой строки каждого файла добавив ложные окончания строк CRLF.

Если вы занимаетесь кроссплатформенной разработкой, создайте отдельный каталог проверки на каждой платформе, где вы разрабатываете. Если вы должны поделиться изменениями перед регистрацией, рассмотрите возможность использования Git и шлюза git-svn.

5 голосов
/ 02 октября 2009
  1. Форматы рабочих копий являются основными для клиента (т. Е. Не пытайтесь использовать клиент 1.4 на WC, созданном клиентом 1.6).

  2. Теоретически, старый клиент / новый сервер и наоборот в порядке, но большая часть тестирования выполняется в сценариях той же версии (1.6.x - 1.6.x). Как правило, вы можете смешивать версии клиент / сервер, просто новые функции не будут доступны с более старой частью (т. Е. Mergeinfo недоступна в клиенте 1.4, взаимодействующем с сервером 1.5, и фиксация от клиента 1.4 будет отсутствовать, что Информация). Опять же, лучше придерживаться той же основной версии, но при необходимости вы можете избежать различий.

  3. Обычно в примечаниях к выпуску вы можете найти версию библиотеки svn, для которой был создан конкретный клиент.

2 голосов
/ 02 октября 2009

Вы очень близки к отметке. Рабочие копии и репозитории всегда читаются новыми клиентами, использующими одну и ту же основную версию, поэтому клиент 1.6 всегда сможет обработать старый сервер или рабочую копию.

Однако вам все равно нужно знать о версии, поддерживаемой каждой из них. Большинство автоматически обновит рабочую копию до своей собственной версии; поэтому, если вы извлекаете деньги из старого клиента 1.4 и обновляете его новым клиентом (например, последней версией svn 1.6); рабочая копия больше не будет использоваться, как прежняя.

1 голос
/ 02 октября 2009
  1. Большинство клиентов будут уважать формат, который они найдут в каталогах .svn. Это означает, что они не изменят это. Если они не поддерживают формат, вы получите сообщение об ошибке, но они не должны повреждать данные. Если вы используете несколько разных клиентов для обновления / работы с извлечениями, они должны создавать блокировки (поэтому второй клиент скажет, что кто-то еще работает над оформлением заказа и остановится). Но, чтобы быть в безопасности, не стоит пробовать это.

  2. Да, клиент 1.4 может общаться с сервером 1.6, но новые функции не будут доступны.

  3. Обычно клиент где-то говорит, какие версии сервера он поддерживает, но клиенты являются разными проектами и имеют свою собственную схему нумерации версий.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...