2009-08-19 1 views
2

Моя компания выполняет миграцию репозитория SVN, и я бы хотел избежать перекрытия номеров ревизий между двумя репозиториями (которые одновременно являются активными).Искусственное увеличение номера ревизии в репозитории SVN (FSFS)

Мое требование состоит в том, чтобы заставить ревизию нового репозитория указать конкретный номер версии (скажем: 100 000).

Проанализировав репозиторий FSFS, я столкнулся с файлом «db/current», который звучит как подходящее место для изменения номера репозитория.

Есть ли у кого-нибудь опыт работы с этой процедурой? Я хотел бы избежать странных событий, происходящих в будущем!

PS: Я понимаю, что могу создать «100 000» фиктивных записей в репозитории. Пожалуйста, поделитесь своим опытом с такой процедурой и возможными проблемами производительности репозитория во время и после разработки

PS3: Я понимаю, что было бы неплохо, если бы все участники выполняли рабочие копии перед процедурой. Это не проблема для нас (сейчас у нового репозитория очень ограниченные пользователи). Тем не менее, если у вас есть опыт работы с этими или подобными требованиями, пожалуйста, поделитесь! :)

PS3: Я понимаю, что это не стандартная процедура SVN, и многие могут возражать против самого требования. Давайте просто предположим, что мое требование звучит! :)

ответ

2

Во-первых, не беспокойтесь, попробуйте это. Если вы хотите объединить 2, вы можете использовать dump/load, чтобы поместить новый поверх старого, и для вас будут обрабатываться номера версий. Поэтому, если вам не нужно знать, какой номер версии для конкретной версии (например, для внешних файлов или тегов), вам вообще не нужно об этом беспокоиться.

Если вы можете работать с инструментом, его всегда лучше, чем найти позже, что svnsync или svnadmin pack, например, не будут работать с вашим измененным репозиторием.

OK, поэтому, если вы все еще хотите это сделать, обновите номер последней ревизии в revprop 0 и файле db/current, и вы должны быть в порядке.

Я не думаю, что вы найдете любого, у кого есть прямой опыт в этом подходе!

+0

Спасибо! Мне не хватало revprop 0! btw: Я не собираюсь объединять два репозитория. Мы перемещаем «проект за проектом» в новый репозиторий, и мы сохраним старую устаревшую, как «история» после завершения всех проектов. Еще раз спасибо! – Pokot0

-3

С Subversion 1.7 вы можете изменить значение svndumpfilter инструмент для фильтрации нежелательных коммиты из файла дампа, созданного svnadmin dump:

http://svnbook.red-bean.com/en/1.7/svn.reposadmin.maint.html#svn.reposadmin.maint.filtering

С этой страницы:

[svndumpfilter] действует как путь на основе фильтр для репозиториев хранилищ

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

+1

Это не похоже на исходный вопрос. –

+0

Как так? Насколько я могу судить по ответам на проблему UNDERLYING. –

2

Один легкий способ сделать фиктивные ревизии ...

Столько раз, сколько необходимо, повторить:

svnmucc propset dummy_prop 0 -m "increases revision" https://svn/repo/ --username me --password x7G_5-u1,W 

Примечание:

  • Значение "0" не должны быть отличным от одного фиксации до . Вы можете просто повторить ту же команду.
  • Изменяет хранилище напрямую, без кассы или рабочей копии.
  • Изменяет корневую папку (ссылается на трейлинг/после "... svn/repo"). Таким образом, его можно даже выполнить в свежевыпущенном репозитории.
  • Изменяет только свойство папки. Они существуют только для SVN. Поэтому, если вы проверяете или обновляете, приложения svn-unaware (например, ваша операционная система) не заметят никаких изменений в самой папке. Только в подпапке .svn, где хранятся эти свойства, файлы изменяются.
  • svnmucc является частью официальных инструментов Subversion, по крайней мере, в версии 1.8, может быть, раньше, смотрите также: http://svnbook.red-bean.com/en/1.8/svn.ref.svnmucc.re.html
  • Конечно пароль это просто пример, не волнуйтесь, что я раскрыл какие-либо реальные полномочия. :-)

Надеюсь, это поможет другим провести несколько исследований.