Subversion 移动后无法合并 [英] Subversion can't merge after a move
问题描述
我对 Subversion 非常陌生,但多年来我一直在使用其他版本控制系统,例如 ClearCase.
I'm very new to Subversion, but I've used other revision control systems like ClearCase for years.
我的老板让我修复这个项目,以便它可以用 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
".
My boss asked me to fix this project so that it could be built with Maven instead of Ant. One of the important things I had to do to was to move src/com
to src/main/java/com
, and move test/com
to src/test/java/com
, which I did using the svn mv
command. I foolishly assumed that since I used Subversion commands to move the directories, that Subversion would then know that things had been moved. And when I merged my branch into the trunk, it appeared to work. But now somebody else just finished work on a branch that he branched off before my work. So we go to merge his stuff into trunk, and basically Subversion appears to think "ok, he made changes to src/com/foo/bar/baz.java
, but that directory doesn’t exist any more, so it’s irrelevant, so discard it" instead of what I expected, which was "ok, he made changes to src/com/foo/bar/baz.java
, but src/com
has been moved, so I need to merge that into src/main/java/com/foo/bar/baz.java
".
有没有办法让 Subversion 进行修订管理,还是我要在接下来的两天内手动合并这个人的更改?
Is there a way to make Subversion do the revision management, or am I going to be manually merging this guy’s changes for the next two days?
推荐答案
直接回答您的问题:
有没有办法让 Subversion 进行修订管理,还是我要在接下来的两天内手动合并这个人的更改?
Is there a way to make Subversion do the revision management, or am I going to be manually merging this guy’s changes for the next two days?
你应该能够让自己更轻松一点.
You should be able to make it a little bit easier on yourself.
你可以做一件事来减轻一些痛苦(假设布局如下)
One thing that you can do to alleviate some of the pain (assuming a layout as follows)
/branch/foo/src/com
/branch/foo/test/com
/trunk/src/main/java/com
/trunk/src/test/java/com
在您将 src/com 移动到 src/main/java/com 并将 test/com 移动到 src/test/java/com 之前,您可以这样做:
Before you moved src/com to src/main/java/com and test/com to src/test/java/com you could have done:
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
希望这有助于为您节省一些时间.
Hope this helps to save you some time.
这篇关于Subversion 移动后无法合并的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!