Пересчитать контрольную сумму в дампе SVN после ручных изменений

Поскольку мы переносим проект на общедоступный исходный хостинг, я хотел удалить некоторую «личную» информацию из репозитория SVN. До сих пор мне удавалось удалять пути или ревизии с помощью svndumptool и svndumpfilter. Однако я также хочу удалить некоторый текст из определенного файла в репозитории.

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

Есть ли инструмент, который пересчитывает контрольную сумму для файлов в дампе? Или есть хороший инструмент редактирования файлов (должен позволять замену регулярных выражений) внутри дампа svn, который также обновляет контрольную сумму?


person poke    schedule 07.10.2010    source источник
comment
Простой путь: полностью удалите файл, вставьте заново как новую копию.   -  person Wrikken    schedule 08.10.2010
comment
Вы имеете в виду добавить его как новую ревизию в конец? Но я хочу сохранить историю нетронутой.   -  person poke    schedule 08.10.2010
comment
Вы также можете просто запустить sed '/Text-content-md5/d' dumpfile.txt | svnadmin load repo, чтобы удалить проверку контрольной суммы для нужных ревизий.   -  person bekce    schedule 11.03.2017


Ответы (1)


Ладно, не хотел дольше ждать ответов, поэтому сам написал скрипт, которым поделюсь с вами. Он использует SvnDumpTool, а точнее его библиотеку. Чтобы выполнять пользовательские действия, вам необходимо отредактировать исходный код (и немного знать Python). Включен простой пример, и я думаю, что абстракция, которую обеспечивает сценарий, довольно хороша.

В любом случае, надеюсь, что это так же полезно для вас, как и для меня, хотя мне потребовалось довольно много времени, чтобы заставить его работать так:

SvnDumpToolEdit.py на Github.

person poke    schedule 08.10.2010