我是Subversion的新手,但我多年来一直使用ClearCase等其他版本控制系统.
我的老板让我修复这个项目,以便它可以用Maven而不是Ant构建.我必须要做的一件重要的事情就是移动src/com到src/main/java/com并移动test/com到src/test/java/com我使用svn mv命令执行的操作.我愚蠢地假设,因为我使用Subversion命令移动目录,Subversion会知道事情已被移动.当我将我的分支合并到主干时,它似乎工作.但是现在有人刚刚完成了在我工作之前分支的分支机构的工作.因此我们将他的东西合并到主干中,基本上Subversion似乎认为"好吧,他做了更改src/com/foo/bar/baz.java,但该目录不再存在,所以它无关紧要,所以丢弃它"而不是我的预期,这是"好吧,他做了改动src/com/foo/bar/baz.java,但src/com已被移动,所以我需要将其合并为src/main/java/com/foo/bar/baz.java".
有没有办法让Subversion进行版本管理,或者我将在未来两天手动合并这个人的变化?
Pau*_*and 13
直接回答你的问题:
有没有办法让Subversion进行版本管理,或者我将在未来两天手动合并这个人的变化?
你应该能够让自己更容易一点.
你可以采取一些措施来缓解一些痛苦(假设布局如下)
/branch/foo/src/com
/branch/foo/test/com
/trunk/src/main/java/com
/trunk/src/test/java/com
Run Code Online (Sandbox Code Playgroud)
在将src/com移动到src/main/java/com并将test/com移动到src/test/java/com之前,您可以完成以下操作:
cd $TRUNK
svn merge -r N:M http://server/branch/foo .
Run Code Online (Sandbox Code Playgroud)
你现在可以做的是:
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
Run Code Online (Sandbox Code Playgroud)
希望这有助于为您节省一些时间.