svndumpfilter --drop-empty-revs сохраняет ревизию заполнения

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

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

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

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

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 отбрасывает некоторые пустые ревизии, те, которые были перед первой «реальной» ревизией, и те, которые были после последней «реальной» ревизии.


person Benjamin Baumann    schedule 20.03.2012    source источник


Ответы (3)


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

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

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

person Klaus K.    schedule 08.10.2013

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

Они уже лежат в моей исходной свалке и датируются 2005 годом.

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

person Benjamin Baumann    schedule 21.03.2012

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

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

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

person prl77    schedule 05.02.2013