svnadmin дамп только текста, без двоичных файлов
Можно отфильтровать дамп SVN, сгенерированный svndamin dump
, поэтому он не будет включать в себя закодированные двоичные данные, только текстовые дельты и данные?
Я хочу получить дамп существующих больших репозиториев SVN, но только кода. Я не заинтересован в сохраненных двоичных файлах. Однако двоичные файлы сделают файл дампа излишне большим. Как я могу создать дамп и исключить двоичный контент?
Попробовал и потерпел неудачу, уже
- Не практично обрабатывать
svn log
дифференциалы. Это большой и старый репозиторий, и получение различий только в течение короткого периода времени занимает много времени и часто застревает. - Бинарные файлы разбросаны по всему и не хранятся по одному известному пути, поэтому я не могу использовать
svndumpfilter
чтобы исключить их - если нет какого-либо способа использовать этот фильтр с регулярными выражениями, например*.jar
,
2 ответа
svndumpfilter является частью любой установки Subversion
svndumpfilter exclude
- Отфильтровывать узлы с заданными префиксами из потока дампа.
Начиная с Subversion 1.7, svndumpfilter может дополнительно обрабатывать PATH_PREFIXs не просто как явные подстроки, а как шаблоны файлов.
$ svndumpfilter exclude --pattern "*.OLD" < dumpfile > filtered-dumpfile
Excluding prefix patterns:
'/*.OLD'
Я не знаю стокового инструмента для этого. Но это не должно быть трудно сделать, если вы начнете с этого модуля perl: SVN:: Dumpfilter
Один из примеров сценариев (svndump_delpathfilter), вероятно, довольно близок к тому, что вы хотите. Мой опыт работы с этим модулем заключается в том, что вам, вероятно, придется немного повозиться с ним, чтобы заставить его делать то, что вы хотите.
Теперь, я не думаю, что есть какой-либо способ надежно отличить двоичный файл от текстового файла, так как Subversion (на самых низких уровнях) на самом деле не волнует. Быстрое сканирование моего репозитория показывает, что свойство svn: mime-type не всегда установлено, и я не вижу других ориентировочных полей. Поэтому вам придется проверять по имени или (как-то) пытаться просмотреть содержимое файла (но я никогда не делал последнее).