我很新的颠覆,但我已经使用其他版本控制系统,如ClearCase,以年。

我的老板让我来解决这个项目,以便它能与Maven而非Ant进行构建。其中一个重要的事情,我必须做的就是往前走src/comsrc/main/java/com,并移动到test/com src/test/java/com,这是我没有使用svn mv命令。我傻傻的假设,因为我用颠覆命令来移动目录,Subversion应然后知道事情已经被转移。当我合并我支到主干,它似乎工作。但现在人家只是完成了他我的工作才分出一个分支工作。所以,我们去他的东西合并到主干,基本上颠覆似乎想的“OK,他更改了src/com/foo/bar/baz.java,但该目录不存在了,所以这是无关紧要的,所以它丢弃” 的而不是我所期待的,这是的“OK,他更改了src/com/foo/bar/baz.java,但src/com已被移动,所以我需要合并到这src/main/java/com/foo/bar/baz.java的。

有没有一种方法,使颠覆做版本管理,还是我将是手动合并这家伙的变化对未来两天?

有帮助吗?

解决方案

要直接回答你的问题:

  

有没有一种方法,使颠覆做版本管理,还是我将是手动合并这家伙的变化对未来两天?

您应该能够使它更容易些自己。

一两件事,可以做,以减轻一些疼痛的(假设的布局如下)

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

在你感动的src / COM为src /主/ JAVA / COM和测试/ COM为src /测试/ 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

希望这有助于为您节省一些时间。

其他提示

这听起来像一次性问题。我建议你可以使用svn diff > /to/some/file.patch(或常规差异),以他的更改保存到一个文件,那么它适用于与您patch -p0 < /to/some/file.path移动树干。

任何试图此软件吗? xMerge

这是插件的SmartSVN但看起来像它做的伎俩。 如果有人使用它,我会很感激,如果给我复习吧。

我只是有同样的问题,我用的的git 的解决了这个问题。我不想与svn merge -r N:M http://server/branch/foo/test/com src/test/java/comsrc/mainsrc/testresources合并serveral的模块。

所以我用git svn clone file:///some/repo -T trunk -b branches -t tags。像这样我能够保持的 git的主的同步与 SVN主干的和合并它与我的的Git分支的。当我做,我合并了的 git的分支 git的主并从那里到 SVN主干

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top