svndumpfilter --drop-empty-revs продолжает заполнение ревизии - PullRequest
6 голосов
/ 20 марта 2012

Мы разбиваем большой svn-репозиторий (100k + обороты) на несколько небольших репозиториев. Я использую svndumpfilter (v1.7.2), чтобы разделить дамп, и svndumptool / sed, чтобы отфильтровать большой дамп.

Все работает нормально, за исключением того, что в моем отфильтрованном дампе все еще есть некоторые "исправления заполнения", хотя я использовал опцию "drop-empty-revs".

Это не слишком проблематично, когда у нас менее 10% бесполезных «ревизий заполнения», но иногда в новом репо есть только несколько сотен реальных ревизий, которые скрыты в 30 тыс. + «Ревизии заполнения».

Вот команда, которую я использую, и включенные в нее ревизии

svndumpfilter --drop-empty-revs --renumber-revs include /MyProj < MassiveOldRepo.dump > NewAllCleanRepo.dump

------------------------------------------------------------------------
r3453 | (no author) | 2005-09-29 17:27:54 +0200 (jeu., 29 sept. 2005) | 1 line

This is an empty revision for padding.
------------------------------------------------------------------------
r3454 | (no author) | 2005-09-29 17:28:27 +0200 (jeu., 29 sept. 2005) | 1 line

This is an empty revision for padding.
------------------------------------------------------------------------    

Я хотел бы знать, есть ли способ не включать эти ревизии, поскольку я фильтрую дамп (не удаляя их вручную из отфильтрованного дампа).

РЕДАКТИРОВАТЬ: Я добавил бы, что мое использование svndumpfilter отбрасывает некоторые пустые ревизии, те, которые были до первой "реальной" ревизии, и те, которые были после последней "реальной" ревизии.

Ответы [ 3 ]

6 голосов
/ 08 октября 2013

У меня была такая же проблема с пустыми ревизиями, уже включенными в репозиторий. Начиная с Subversion 1.7 есть еще недокументированный переключатель, который позволяет фильтровать все пустые ревизии.

svndumpfilter --drop-all-empty-revs include / < oldrepos.dump > newrepos.dump

Дополнительную информацию можно найти по адресу grokbase .

4 голосов
/ 21 марта 2012

После нескольких часов тестов, читая исходный код svndumpfilter (который очень хорошо прокомментирован, хорошо сделано!), Я понимаю, что эти пустые ревизии не приходят из моей фильтрации.

Они уже лежат вмой оригинальный дамп и дата 2005 года.

Вывод: сначала проверьте свои данные !!

2 голосов
/ 06 февраля 2013

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

--drop-empty-revs --renumber-revs

Второй переключатель делает так, что если ваш фильтр, например, включает в себя оборот 1000-1200, но затем исключает 1201-5000, то следующий включенный в него оборот будет иметь номер 1201, а не 5001, что приведет к созданию нескольких тысяч пустые отступы об.

...