Svn Subversion将主干合并到现有标记中

Svn Subversion将主干合并到现有标记中,svn,merge,tags,branch,Svn,Merge,Tags,Branch,我的SVN存储库中当前有以下设置: -Root --ProjectA ----trunk ----tags ----branches --ProjectB ----trunk ----tags ----branches --ProjectPool ----projectA ----projectB 其中ProjectPool包含ProjectA和ProjectB的特定标记 现在,ProjectPool中的标记会不时更改。这意味着ProjectA的特定主干版本已提交,我想将此版本的副本创建到Ro

我的SVN存储库中当前有以下设置:

-Root
--ProjectA
----trunk
----tags
----branches
--ProjectB
----trunk
----tags
----branches
--ProjectPool
----projectA
----projectB
其中ProjectPool包含ProjectA和ProjectB的特定标记

现在,ProjectPool中的标记会不时更改。这意味着ProjectA的特定主干版本已提交,我想将此版本的副本创建到Root/ProjectPool/ProjectA中。新标记应替换旧标记,但应有可用的历史记录

这就像在我的电脑上有一个我从不改变的分支,并时不时地将主干合并到其中。但它应该完全在存储库上完成。无需签入/签出等

这将允许我查看Root/ProjectPool/projectA的历史,并查看它的变化。这是一个高层次的修订历史

更新: 对不起,我忘了问一个明确的问题-- 在查看到目前为止得到的答案后,我想说ProjectPool中的项目副本是原始项目的分支。然后,我可以随时在ProjectPool中需要新版本时从主干合并它们。 现在的问题是,是否有一种方法可以在线进行合并,而不必先创建工作副本

>>现在,ProjectPool中的标记会不时更改

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

>>这意味着ProjectA的特定主干版本已提交,我想将此版本的副本创建到Root/ProjectPool/ProjectA中。新标记应替换旧标记,但应有可用的历史记录

这里您需要的是ProjectPool下的ProjectA分支,您可以重复地将其与ProjectA的主干合并。用这样的东西

  svn merge sourceURL1[@N] sourceURL2[@M] [WCPATH]
参考:

>>这将允许我查看Root/ProjectPool/projectA的历史,并查看它的变化。这是一个高层次的修订历史

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

-Root
    +--ProjectPool
        +--ProjectA
            +----trunk
            +----tags 
            +----branches
        +--ProjectB
            +----trunk
            +----tags
            +----branches
您可以在其标记中释放ProjectA和ProjectB。新的发展将继续在主干。对于任何端开发或spot发布,在branchs目录中创建一个分支。分支完成后,将其合并回主干。这样,躯干将始终反映所有的修订和更改。而且,这更方便和传统


希望这有帮助。

您实际上没有提出任何问题,因此我不确定您是否知道merge子命令,但这正是您需要的:

特别注意-accept参数;您需要它才能自动解决冲突:

C:\>svn help merge
[...]
  --accept ARG             : specify automatic conflict resolution action
                            ('postpone', 'base', 'mine-conflict',
                             'theirs-conflict', 'mine-full', 'theirs-full',
                             'edit', 'launch')

我还建议您阅读Subversion一书中的章节。

您写道,我需要在ProjectPool下有一个分支,我应该重复地与trunk合并。这正是我写这篇文章时的意思,就像我的电脑上有一个我从不改变的分支,并时不时地将主干合并到其中。。我现在正在寻找一种在线合并的方法,而不必获取工作副本。@MOnsDaR您需要的是merge和commit组合命令。我严重怀疑这是否可能。合并的完整过程是按该顺序合并、解析和提交。我知道在你的情况下,resolve不存在,但SVN不能假设这种可能性。所以,我想你必须明确承诺。URL中提到的命令将合并到当前目录中。因此,如果您有信心,可以编写一个shell脚本。合并并提交。但仍然会有下载。我想这总结了我正在尝试做的事情以及如何实现它,所以我把它标记为可接受的答案。谢谢Nishant和所有其他回答者!