3

我有一个项目按以下布局运行:

/my_proj/trunk/
/my_proj/tags/1.0.0/
/my_proj/tags/1.0.1/
/my_proj/tags/1.0.2/
/my_proj/tags/1.0.3/

所以在tags目录中有冻结的分支准备发布。

现在我们介绍了一个 CI 服务器,它只能扫描单个目录,不像tags.

那么是否有可能展开tags一系列提交,例如:

/my_proj/branch/release
  commit 1: "ver 1.0.0"
  commit 2: "ver 1.0.1"
  commit 3: "ver 1.0.2"
  commit 4: "ver 1.0.3"
4

1 回答 1

0

怎么样(未完全测试):

从你的工作目录的某个地方,在 bash

svn copy ^/trunk@1 ^/branches/rolling -m "Creating a rolling release branch"
svn co ^/branches/rolling
cd rolling
svn list ^/tags | xargs -I {} sh -c \
 "svn merge --accept theirs-full --ignore-ancestry ^/tags/{}; \
  svn ci -m \"ver {}\" \
  svn update \
 "

这是一个伪自动脚本。如果你的标签版本很少,你最好一一运行命令(即不通过xargs)

于 2013-12-19T22:35:29.773 回答