Можно ли использовать регулярное выражение в операторе включения svndumpfilter?

Мне нужно экспортировать данные из SVN (сервер в Windows), но я не хочу включать корневой каталог. Пример:

svn
-project1
--trunk
--branches
-project2
--trunk
--branches
--onemorefolder

Я хочу включить в project1.dump папки: ствол и ветви (не project1), которые я использую:

 svnadmin dump /svn/ | svndumpfilter include --drop-empty-revs --renumber-revs /project1/trunk /project1/branches | sed "s/Node-path:[ ]project1\//Node-path: /g" -b | sed "s/Node-copyfrom-path:[ ]project1\//Node-copyfrom-path: /g" -b > project1.dump

Но я хочу автоматизировать этот процесс и создал bat-файл:

call svnadmin dump /svn/iss/ -r %2:%3 | svndumpfilter include --drop-empty-revs --renumber-revs /%1/trunk /%1/branches | sed "s/Node-path:[ ]%1\//Node-path: /g" -b | sed "s/Node-copyfrom-path:[ ]%1\//Node-copyfrom-path: /g" -b > %4

Но это работает только со структурой, где находятся папки ствола и веток. Как я могу включить все папки из моей корневой папки и исключить эту корневую папку? Могу ли я использовать регулярное выражение в операторе включения? Благодарю.

1 ответ

Сначала вы могли бы сделать как sed команды как один:

Вместо

sed "s/Node-path:[ ]%1\//Node-path: /g" -b | \
sed "s/Node-copyfrom-path:[ ]%1\//Node-copyfrom-path: /g" -b

ты мог бы сделать

sed "s/Node-\(copyfrom-\|\)path:[ ]%1\//Node-\1path: /g" -b

который использует обратную ссылку \1 в шаблоне, чтобы соответствовать Node-path или же Node-copyfrom-path,

Для всех вложенных папок root, кроме самой корневой папки, возможно, вы можете попробовать использовать find <ROOTFOLDER> -type d -mindepth 1 -maxdepth 1 который находит все подкаталоги, не включая сам корень.

Возможно что-то вроде (не проверено):

call svnadmin dump /svn/iss/ -r %2:%3  | \                   # keep same
svndumpfilter include --drop-empty-revs --renumber-revs \
    `find %1 -type d -maxdepth 1 -mindepth 1` | \             # used find
sed "s/Node-\(copyfrom-|\)path:[ ]%1\//Node-\1path: /g" -b \ # combined line
> %4
Другие вопросы по тегам