我在存储库中创建了主干。现在,我已经创建了一个开发分支,并将其从主干分支出来。假设此时,分支位于修订版 500。我从修订版 500 创建一个标签。现在我不断更新这个分支,它达到了修订版 600。现在,当我创建标签时,我需要包含修订版 501-600。这是需要手动完成的事情。但是我有一个脚本可以抓取我提供的修订号的 svn 日志。就像我说的 crawl.bat "tag name" revision_start revison_end
.现在这个过程需要自动化。就像我只需要说crawl.bat "tag name"
,它应该找出创建标签的最后一个修订版,并将其放入revision_start。是否有任何 svn 命令可以执行我打算执行的操作?想找出创建标签的上次修订版吗?
- 我可以理解您的"基本"麻烦:如果您想从修订版 600(即 $BRANCH 的 HEAD)创建标签,只需从分支创建它
这是需要手动完成的事情
似乎你在关于 Subversion 和 SCM 的知识方面有一个大黑洞 - 每个修订版(变更集)在某个时刻都是存储库的完整状态,它包含过去发生的所有更改,即
当您从分支的 HEAD 标记时,这个新分支的文件将具有所有更改 (500-600),这些更改是在上次标记后在分支中引入的
- 无论如何,您至少有 2 种方法可以修订$TAG:使用
ls
或log
LS-way
svn ls $REPO-URL/tags/$TAG -v
7 abream окт 17 2012 ./
3 teno 0 окт 17 2012 core_mod.txt
./
字符串中的第一个字段是此标记的修订版
或
svn ls $REPO-URL/tags/ -v
7 abream окт 17 2012 ./
4 teno окт 17 2012 $TAG/
7 abream окт 17 2012 $ANOTHERTAG/
$TAG字符串中的第一个字段是此标记的修订版
对数方式
svn log $REPO-URL/tags/$TAG -q --stop-on-copy
------------------------------------------------------------------------
r7 | abream | 2012-10-17 22:14:36 +0600 (Ср, 17 окт 2012)
------------------------------------------------------------------------
输出中的第一个数据字段(在"|"之前)是修订号,前面加上r
字符