SVN不会发现原始文件夹和移动版本之间存在冲突



我在trunk中有一个旧目录结构的文件夹,分支中有几个目录被分组为新文件夹的子文件夹:

old(trunk) > root/dirA
                 /dirB
                 /dirC
new(branch) > root/dirGROUP/dirA
                           /dirB
                           /dirC

new目录中使用svn move命令移动。

dirA文件与新dirA.文件存在文本冲突

当我做svn merge --reintegrate http://url.to.the.branch时,SVN只是删除旧的dirA, dirB, dirC,给我新的目录结构,没有注意到新旧dirA版本的文件之间的冲突,就好像它们是独立的目录一样。新dirA中的文件与A状态合并。
SVN是否默认支持合并?如果是的话,结果是我遗漏了一些东西
如果没有-如何教SVN注意到这个冲突?

这可能会有所帮助,我有两个解决方案。您所面临的问题可以通过这些方法来克服。

Solution1:

假设您有以下文件

/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之前,你可以这样做:

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

或者你还能做什么

Solution2:

1)执行svn up以获取最新的代码副本(在旧的目录结构中)

svn up 

2)用Unix命令在目录目录结构中复制目录

cp -r /root/dirA /root/dirGroup/
cp -r /root/dirB /root/dirGroup/
cp -r /root/dirC /root/dirGroup/ 

现在你在你想要的路径上有了本地副本。

3)删除旧文件。

svn -d file names.
svn ci 

4)添加新的文件和目录svn添加dirAsvn添加dirBsvn添加目录

最新更新