SVN标记版本号从命令行增加

时间:2011-10-11 20:51:00

标签: regex svn shell

我想知道我是否能从subversion获取最新的标签,增加它并在一个命令中创建新标签?目前我得到这样的最新标签:

svn ls http://svn/path/to/tags | tail -n 1

这给了我这样的东西:

1.2.34/

然后我将创建一个版本号为1.2.35的新标签,因为我增加了这样的版本号:

svn copy http://svn/path/to/trunk http://svn/path/to/tags/1.2.35

从这里我只需切换到将生产代码指向最新的标签。

我知道我可以编写一个脚本来处理这个问题,但我想知道我是否可以通过一个命令从命令行执行此操作(链接命令)。如果我被卡住了,我该如何将标签名称增加到下一个版本号(例如,从1.2.34到1.2.35)?版本号范围应遵循x.[0-99].[0-99]。任何想法,帮助都会很棒。

相关:

2 个答案:

答案 0 :(得分:2)

获得下一个标签的“一个班轮”将是这样的:

svn ls http://svn/path/to/tags | \
  sort -t '.' -k 1,1n -k 2,2n -k 3,3n | \
  tail -1|sed 's:/$::' | \
  awk 'BEGIN{FS="."}{print $1 "." $2 "." $3+1}'

...但你应该写一个脚本,以便你可以实际测试它。 (是的,我知道排序和尾巴,sed和awk可能都会在自己的重量下崩溃到一点perl,但你需要在那里的所有那些“部分”。)

答案 1 :(得分:1)

这样的东西
svn copy http://svn/path/to/trunk http://svn/path/to/tags/`svn ls http://svn/path/to/tags | some-script-for-getting number`