如何获取所有超过x年的SVN分支列表?
我在CentOS上使用SVN,并使用sventon查看所有存储库。
svn帮助 ls
如果您使用仓库分支根目录的URL并启用详细输出,您将得到类似于以下内容:
svn ls http://mayorat.ursinecorner.ru:8088/svn/Hello/branches/ --verbose
28 lazybadg фев 22 2011 ./
28 lazybadg фев 22 2011 Leichtbau-Deutsch/
26 lazybadg фев 22 2011 branche-francaise/
25 lazybadg сен 14 2010 i18n/
svn help log
svn log http://mayorat.ursinecorner.ru:8088/svn/Hello/branches/ -v -q
------------------------------------------------------------------------
r28 | lazybadger | 2011-02-22 09:24:04 +0600 (Вт, 22 фев 2011)
Changed paths:
M /branches/Leichtbau-Deutsch/Hello.de.txt
------------------------------------------------------------------------
r27 | lazybadger | 2011-02-22 09:21:41 +0600 (Вт, 22 фев 2011)
Changed paths:
A /branches/Leichtbau-Deutsch (from /trunk:26)
------------------------------------------------------------------------
r26 | lazybadger | 2011-02-22 06:49:41 +0600 (Вт, 22 фев 2011)
Changed paths:
A /branches/branche-francaise (from /trunk:25)
M /branches/branche-francaise/Hello.fr.txt
------------------------------------------------------------------------
svn ls ^/branches --verbose
。 - deflomu你可以始终使用"--xml"代替"--verbose"或"-v"。这将产生机器可读的输出,与"--verbose"提供的"人类可读的输出"不同。无需删除分隔线等内容。使用xmlstarlet或适当的XQuery脚本(Saxon等)提取所需内容。
结合@Lazy的回答和this answer,使用命令替换,您可以将所有内容放在一个命令中:
svn ls `svn info | grep '^URL' | awk '{sub(/trunk.*$/, "branches", $NF); print}'` -v
我找到了另一种方法来完成这个任务,但你需要使用sventon或其他列出SVN存储库所有内容的工具。
步骤1:从sventon视图中复制分支列表。这将包括修订版本、作者和日期。
步骤2:打开Excel并进行特殊粘贴。
步骤3:过滤日期列以显示少于x年的日期。
结果:所有少于x年的分支。这个列表对我很有用,可以使用svn delete --targets listofoldbranchnames.txt
命令删除它们。