Вопрос: Как удалить пустые изменения из существующего файла svn dump?


У меня есть файл дампа svn, который включает «пустые» ревизии (они были созданы svnsync при синхронизации только подкаталога существующего репозитория).

Поскольку я хотел бы использовать репозиторий svnsync'd в качестве нового мастера (нет необходимости синхронизировать снова), я хотел избавиться от всех пустых ревизий.

К сожалению, запуск дампа через svndumpfilter, похоже, не устраняет пустые изменения, вероятно, потому, что svndumpfilter рассматривает только ревизии, которые он сам очищает с помощью опции -exclude (см. Также Вот)

Я также изучал svndumptool, но он, похоже, не обеспечивает эту функциональность.

Возможно ли отфильтровать эти изменения любым другим способом?


5
2017-11-30 09:45


Источник




Ответы:


это командная строка, которую я использую. Кажется, она работает очень хорошо.

svnadmin dump <path_to_repo> | svndumpfilter2 <path_to_repo> [list of paths to keep] --renumber-revs --drop-empty-revs  |bzip2 --best > svn_dumpfile_full.bz

«список путей для сохранения» может быть таким же простым, как багажник

но он требует, чтобы у вас был доступ к серверу svn напрямую.


3
2018-02-04 04:22



Вы можете использовать svnrdump удалять удаленный репозиторий (т. е. использовать svn:// URL). Это прекрасно работает в сочетании с svndumpfilter, - François Beaune


Хорошо, я не решался ответить на этот вопрос, потому что решение не для слабонервных и может свести вас с ума.

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

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

Удачи!


0
2017-12-16 16:24



Да, я согласен с тем, что это не самый подходящий способ, но это может быть единственный способ, поскольку нет дополнительных ответов - Palmin


на самом деле, я думаю, что вам нужна опция «-рубить-revs» из svndumpfilter (или это svndumpfilter2) в дополнение к -drop-empty-revs


0
2018-01-10 00:38



Я попробовал это, и это не устраняет проблему - Palmin