Подтвердить что ты не робот

Как я могу понизить версию рабочей копии SVN?

Каталоги SVN удобно перемещать между компьютерами, но это может привести к несоответствию версии между рабочей копией и установленным клиентом svn, что приведет к ошибке

svn: This client is too old to work with working copy '.';  
  please get a newer Subversion client

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

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

Предполагается, что сценарий будет похож на: Джо отправляет вам большую рабочую копию с большим количеством вложенных каталогов (и связанных версий с версиями .svn-папок). Вы работаете над этим. Когда вы пытаетесь зафиксировать это, svn сообщает вам, что ваш клиент слишком стар. Отправка его Джо не должна быть необходимой. Проверка новой рабочей копии не требуется, и слияние изменений в любом случае будет неудобным.

Есть ли способ сделать это?

4b9b3361

Ответ 1

Короткий ответ: это не тривиально.

К счастью, разработчики предвосхитили эту проблему и рассмотрели ее в FAQ: http://subversion.apache.org/faq.html#working-copy-format-change
В результате для загрузки и использования их script для этой цели: http://svn.apache.org/repos/asf/subversion/trunk/tools/client-side/change-svn-wc-format.py

Обратите внимание, что для script требуется только основной номер версии клиента, поэтому, если у вас есть версия 1.4.4 клиента, команда будет следующей:

python change-svn-wc-format.py <WC_PATH> 1.4 [...other options...]


Update:

Вышеупомянутый script работает только для понижения версии 1.6 и ниже. Снижение с 1.7+, по-видимому, невозможно. Примечание от источника:

# Downgrading from format 11 (1.7) to format 10 (1.6) is not possible,
# because 11 does not use has-props and cachable-props (but 10 does).
# Naively downgrading in that situation causes properties to disappear
# from the wc.
#
# Downgrading from the 1.7 SQLite-based format to format 10 is not
# implemented.

Ответ 2

Я просто удалил папку .svn в файле проекта, которая создала и снова добавила 1.7, используя 1.6. Это помогло мне надеяться, что это поможет кому-то еще.