我们需要将更改从分支合并到主干 我们不需要在创建分支时在trunk中进行任何更改 的 1。我们不需要合并源 - 我们需要用trunk中的源替换trunk中的源。 2.我们不需要在trunk中创建但在分支中不存在的文件和目录(或在分支中删除)。
在这种情况下如何合并资源会更好?
现在我有干线和分支b1:
http://svnhost/svn/mtest/trunk
http://svnhost/svn/mtest/branches/b1
我可以将trunk移动到某个分支目录并将分支b1移动到trunk:
svn move http://svnhost/svn/mtest/trunk http://svnhost/svn/mtest/branches/branch4trunk
svn copy http://svnhost/svn/mtest/branches/b1 http://svnhost/svn/mtest/trunk
我可以删除trunk中所有不需要的文件和目录,然后将分支合并到trunk
svn co http://svnhost/svn/mtest/trunk
cd trunk
svn merge --reintegrate http://svnhost/svn/mtest/branches/b1
位是否可以强制不合并文件但替换它们?
这些案件是否有任何陷阱?
我们使用Subversion 1.5
我不喜欢第一种情况,因为我需要将SVN源复制到MKS存储库
当这些文件从SVN存储库中删除时,我们的工具会自动从MKS存储库中删除文件
但是,如果我将分支移动到主干,则不会对此类文件采取任何操作
所以我必须手动从MKS存储库中删除大量文件
这不是一个好主意:(
我希望修改/添加或删除实际操作。
答案 0 :(得分:1)
我会这样做:
svn co http://svnhost/svn/mtest/trunk cd trunk svn merge http://svnhost/svn/mtest/trunk http://svnhost/svn/mtest/branches/b1
这就是说,“接受让我从主干到分支的变化,并将它们应用到主干。”
换句话说,“告诉我将干线变成分支的变化......然后做它们!”
答案 1 :(得分:0)
我自己做了选项1并且没有任何陷阱报告。如果我理解正确,你想要吹掉行李箱并用树枝彻底更换它,所以......就这样做!
答案 2 :(得分:0)
您可以在分支生成后回滚主干中的所有更改,然后只需以正常方式将分支重新集成到主干中。
这基本上是对分支以来主干上所有更改的反向合并,并为您提供一个删除它们的修订。然后分支变化就会出现。