【问题标题】:SVN - Add code from TRUNK to old branchSVN - 将代码从 TRUNK 添加到旧分支
【发布时间】:2012-08-13 01:15:12
【问题描述】:

我将文件提交到主干。提交后,我意识到这些文件也应该应用于旧分支。这是我采取的步骤:

我的副本(使用中继:应用程序版本 5)

svn commit -m "blah" : 修订版 123

旧分支(应用程序版本 3)

svn 合并 -r 122:123 svnpath

问题是现在我得到一个“本地删除,合并时传入的编辑”树冲突。 有问题的文件夹在旧分支中根本不存在。但我担心如果我用工作分支解决它会删除主干中该文件夹的所有内容。但是,我也不希望本地副本接收该文件夹中的所有文件。

我显然在这里误解了一些东西。 (我什至不知道是否需要提交它,但我不希望下一次提交被这些文件卡住。)如何将提交的更改放入旧分支?大部分修改的文件应该是一样的。


非常晚的编辑以澄清之前的目标。 (这已经解决了,但我觉得这需要更清楚。)

1) 对主干(版本)32 所做的更改。

2) 更改合并到分支(版本)26。

3) 想要解决 26 次合并冲突,从 26 到 28 到 30 到 32 合并。

4) 沿途的其他更改将从 26 一直合并到主干。这意味着冲突无法删除主干中的文件夹文件。

【问题讨论】:

    标签: svn merge svn-merge


    【解决方案1】:

    假设您的存储库中有标准的 trunk/、branches/ 根目录设置:

    cd branches/mybranch
    svn merge -r 122:123 ../../trunk .
    

    【讨论】:

    • 这就是我跑的。但问题是冲突。我有一个以前在分支中不存在的文件夹。仅合并该文件夹中的一个文件会导致树冲突。
    • 你为什么不自己玩一下,看看会发生什么?复制整个工作目录并将其放在一边,然后测试合并,看看会发生什么。工作目录合并不会为您自动提交任何内容。
    • 但如果该目录实际上并未添加到 r123 中,则您需要先从添加该目录的提交中合并,或者先手动将该目录添加到分支中。
    • 我一直在这样做。这就是我在这里问的原因。
    • 我不相信在我做出回应时你的描述像现在这样清晰,但我愿意承认有时我扫描得太快并做出无根据的假设.干杯!
    【解决方案2】:

    我在这里的解决方案可能不是最佳的,但这是我所做的:

    svn revert -R .

    然后,我读取(svn add)所有本地文件以及冲突文件夹,不再冲突(我不知道为什么。)

    然后我能够毫无冲突地提交。但是,我确实必须使用新代码更改手动修改旧文件。

    【讨论】:

      猜你喜欢
      • 2021-04-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多