Как я могу понизить версию рабочей копии SVN?
Каталоги SVN удобно перемещать между компьютерами, но это может привести к несоответствию версии между рабочей копией и установленным клиентом svn, что приведет к ошибке
svn: This client is too old to work with working copy '.';
please get a newer Subversion client
В идеальном мире можно установить более новую версию клиента SVN, но если это невозможно или удобно, было бы неплохо иметь возможность понизить рабочую копию до установленной версии клиента - особенно, когда вы что ни одна из функций более поздней версии не используется.
Проверка новой рабочей копии со старым клиентом работает только в том случае, если проблемная рабочая копия не имеет каких-либо изменений и не слишком велика, чтобы сделать это неудобно.
Предполагается, что сценарий будет похож на: Джо отправляет вам большую рабочую копию с большим количеством вложенных каталогов (и связанных версий с версиями .svn-папок). Вы работаете над этим. Когда вы пытаетесь зафиксировать это, svn сообщает вам, что ваш клиент слишком стар. Отправка его Джо не должна быть необходимой. Проверка новой рабочей копии не требуется, и слияние изменений в любом случае будет неудобным.
Есть ли способ сделать это?
Ответы
Ответ 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. Это помогло мне надеяться, что это поможет кому-то еще.