SVN没有看到原始文件夹和移动版本之间的冲突

时间:2013-06-21 14:06:55

标签: svn version-control merge branch tree-conflict

我在主干中有一个带有旧目录结构的文件夹,以及将多个目录分组为新文件夹的子文件夹的分支:

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时,只删除旧的dirAdirBdirC并给我一个新的目录结构,而不会注意到新旧文件之间的冲突{{1版本好像是独立目录。新dirA中的文件与dirA状态合并 SVN默认支持这种合并吗?如果是的话,事实证明我错过了一些东西 如果不是 - 如何教SVN注意这种冲突?

1 个答案:

答案 0 :(得分:3)

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

解决方案1:

假设您有以下文件

/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

或者你可以做的其他事情是

解决方案2:

1)svn获取最新的代码副本(旧的dir结构)

svn up 

2)使用dir dir结构中的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)添加新文件和d dirs     svn添加dirA     svn添加dirB     svn添加dirC     所有三个目录的svn ci

相关问题