代码之家  ›  专栏  ›  技术社区  ›  Paul Tomblin

移动后无法合并Subversion

  •  18
  • Paul Tomblin  · 技术社区  · 15 年前

    我对颠覆非常陌生,但我已经使用了很多年的其他版本控制系统,比如ClearCase。

    我的老板让我把这个项目修好,这样它就可以用Maven而不是Ant来建造。我要做的一件重要的事情就是搬家 src/com src/main/java/com 并移动 test/com src/test/java/com ,我用 svn mv 命令。我愚蠢地认为,既然我使用了Subversion命令来移动目录,那么Subversion就知道事情已经被移动了。当我把我的树枝合并到树干里时,它似乎起作用了。但现在有人在我工作之前,刚刚完成了一个分支的工作。所以我们要把他的东西合并到箱子里,基本上颠覆似乎在想 _好的,他对 src/com/foo/bar/baz.java ,但是这个目录已经不存在了,所以它是不相关的,所以放弃它。 而不是我所期望的 _好的,他对 src/com/foo/bar/baz.java ,但是 SRC/COM 已被移动,因此我需要将其合并到 src/main/java/com/foo/bar/baz.java 艾斯 .

    是否有办法让修订管理进行颠覆,或者我是否要在接下来的两天手动合并这个家伙的更改?

    4 回复  |  直到 9 年前
        1
  •  13
  •   Paul Wagland    15 年前

    要直接回答您的问题:

    是否有办法让修订管理进行颠覆,或者我是否要在接下来的两天手动合并这个家伙的更改?

    你应该能让自己更轻松一点。

    你可以做一件事来减轻一些痛苦(假设布局如下)

    /branch/foo/src/com
    /branch/foo/test/com
    /trunk/src/main/java/com
    /trunk/src/test/java/com
    

    在将SRC/COM移动到SRC/Ma/Java/com和Test/com到SRC/Test/Java/com之前,您可以做到:

    cd $TRUNK
    svn merge -r N:M http://server/branch/foo .
    

    现在你可以做的是:

    cd $TRUNK
    svn merge -r N:M http://server/branch/foo/src/com src/main/java/com
    svn merge -r N:M http://server/branch/foo/test/com src/test/java/com
    

    希望这能帮你节省一些时间。

        2
  •  2
  •   BastiBen    15 年前

    这听起来像是一个一次性的问题。我建议你可以用 svn diff > /to/some/file.patch (或普通差异)要将其更改保存到文件中,然后将其应用到移动的主干上 patch -p0 < /to/some/file.path .

        3
  •  0
  •   krzychukula    13 年前

    有人试过这个软件吗? xMerge

    这是Smartsvn的插件,但看起来很管用。 如果有人在使用它,我会很感激如果送我审查它。

        4
  •  0
  •   myborobudur    9 年前

    我也遇到了同样的问题 吉特 . 我不想将服务器模块与 svn merge -r N:M http://server/branch/foo/test/com src/test/java/com 对于 src/main , src/test resources .

    所以我用过 git svn clone file:///some/repo -T trunk -b branches -t tags . 像这样我可以 GIT大师 与……同步 主干网中继线 把它和我的 GIT分支 . 完成后,我合并了 GIT分支 GIT大师 从那里到 主干网中继线 .