Как я могу массово добавить отсутствующий svn: author в репозиторий или дамп?

Я занимаюсь сложной миграцией 3 репозиториев SVN в 1 новый с другой структурой.

Я только что обнаружил, что в двух репозиториях есть тысячи пустых коммитов «Это пустая ревизия для заполнения». все против рута и все без какой-либо информации об авторе. Невероятный.

svnfiltereddump не справляется с этими коммитами, потому что ему нужен svn:author, поэтому мне нужна техника, чтобы обойти эту проблему.

мне интересно, могу ли я использовать

svndumptool.py transform-revprop svn:author SOMETHING gareth.hughes input.dump utput.dump

но я не могу понять, какое регулярное выражение будет соответствовать только пустому полю автора.

В противном случае я ищу способы добавить svn: author примерно в 8000 коммитов в репозитории, а не последовательно. Или инструмент, который может отфильтровать их из дампа, ведь они все барахло.

Большое спасибо


person Gareth Hughes    schedule 27.04.2012    source источник


Ответы (2)


и ответ в том, что нормальный svndumpfilter работал

svndumpfilter --drop-empty-revs --renumber-revs include /somepath

но затем произошли дальнейшие ошибки, и я нашел невероятно полезным

./svndumpfilter3 --untangle=/path/to/repo /somepath

мог справиться с этими ошибками.

person Gareth Hughes    schedule 01.05.2012

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

$ svn propset --revprop -r$rev svn:author $default_author $repository_url

для каждой ревизии, у которой нет автора. Вы можете легко сделать это:

$ svn log -r1:LAST $repository_url

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

person David W.    schedule 01.05.2012