获取SVN中的所有分支名称
如何获得超过x年的所有SVN分支的列表?
我在CentOS上使用SVN,我有sventon查看所有的存储库。
svn help 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/
gawk中的3 + 4 + 5字段会给你分支的最后更改date。
-
svn help log
稍微复杂和嘈杂的输出与一个单一的优势:一个可读的date,
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 ------------------------------------------------------------------------
| grep -v“|” 使用<任何select工具>排除分隔线,从“更改path”文件名中获取受影响的分支,从修订日志的第一个string中获取date。
你总是可以使用“ – xml”而不是“–verbose”。 “-v”。 产生机器可读的输出,而不是像“–verbose”产生的“人类可读输出”。 无需删除分隔线等。使用xmlstarlet或使用适当的XQuery脚本(Saxon,…)提取您需要的内容。
结合@懒惰的答案和这个答案使用命令replace你可以把它放在一个命令:
svn ls `svn info | grep '^URL' | awk '{sub(/trunk.*$/, "branches", $NF); print}'` -v
(取决于你的svn回购布局,所以如有必要就更改。)
我想出了另一种方法来做到这一点,但你需要sventon或其他工具,列出您的SVN存储库的所有内容。
步骤1:从您的视图中,复制分支列表。 这将包括修订,作者和date。
第2步:打开Excel并做一个特殊的粘贴。
步骤3:过滤date列以显示小于x年的date。
结果:所有小于x岁的分支。 这个列表对我来说是有用的做一个svn delete --targets listofoldbranchnames.txt
。