Subversion将trunk合并到现有标签中

MOn*_*DaR 0 svn tags merge branch

我目前在我的SVN-repository中进行了以下设置:

-Root
--ProjectA
----trunk
----tags
----branches
--ProjectB
----trunk
----tags
----branches
--ProjectPool
----projectA
----projectB
Run Code Online (Sandbox Code Playgroud)

ProjectPool包含ProjectA和ProjectB的特定标记.

现在,ProjectPool中的标签不时发生变化.这意味着ProjectA的特定主干版本已提交,我想从此修订版创建一个副本到Root/ProjectPool/projectA.新标记应替换旧标记,但应该有可用的历史记录.

它就像在我的电脑上有一个分支,我永远不会改变它,并不时将主干合并到它.但它应该完全在存储库中完成.(无需登记/结账等)

这将允许我查看Root/ProjectPool/projectA的历史记录并查看它的变化.一种高级修订历史.

更新:
对不起,我忘了提出一个明确的问题 - .-
在查看到目前为止已经到达的答案后,我会说ProjectPool中的项目副本是原始项目的分支.然后我可以在我需要ProjectPool中的新版本的时候将它们从trunk合并.
现在的问题是,如果有办法合并"在线",则无需先创建工作副本.

Nis*_*ant 9

>>现在ProjectPool中的标签会不时变化.

Tags是里程碑,它们不应该改变.您应该在每个版本上创建一个新标记.

>>这意味着ProjectA的特定主干版本已提交,我想从此修订版创建一个副本到Root/ProjectPool/projectA.新标记应替换旧标记,但应该有可用的历史记录.

你所需要的就是一个branchProjectAProjectPool,你可以重复使用合并trunkProjectA.有这样的事情

  svn merge sourceURL1[@N] sourceURL2[@M] [WCPATH]
Run Code Online (Sandbox Code Playgroud)

参考:http://svnbook.red-bean.com/en/1.5/svn.ref.svn.c.merge.html

>>这将允许我查看Root/ProjectPool/projectA的历史记录并查看其变化.一种高级修订历史.

看起来你已经完成了你的目录结构.如果可能的话,我建议你遵循这个结构.

-Root
    +--ProjectPool
        +--ProjectA
            +----trunk
            +----tags 
            +----branches
        +--ProjectB
            +----trunk
            +----tags
            +----branches
Run Code Online (Sandbox Code Playgroud)

您可以在他们的s中发布 ProjectA和ProjectB tag.新的发展将继续trunk.对于任何侧面开发或现场发布,请创建一个branchin branches目录.分支完成后,将其合并回主干.这样,您trunk将始终反映所有修订和更改.而且,这更方便(和传统).

希望这可以帮助.