2012-06-13 26 views
1

我创建了一个特性分支与主干并行工作。如何在SVN上保留移动文件夹/文件时对其原始位置的引用?

在BRACH我所做的结构(文件夹)的变化大的量。举例来说,我已经搬到那名之前的文件夹:

application/views/scripts/users/* 

到:

application/modules/user/views/scripts/users/* 

现在,我尝试做从主干合并到这个特性分支,我创建了一百万棵树的冲突!问题在于,由于此树冲突出现,该树内的任何文件都不会与任何内容合并。

我的意思是,我找到一个树冲突:

application/views/scripts/users (SVN message: "The last merge operation tried to modify the directory 'users', but it was deleted, moved or renamed locally") 

,并没有任何文件和是此路径下的已合并其他文件夹中。

有没有一种方法来恢复文件夹的原始位置和当前的“链接”?

我能做些什么来解决这个问题?

回答

0

不仅仅是一个解决方案,我可以给出一个解决方法,那就是我使用的解决方案,因为似乎没有真正的解决方案。

一个小小的研究,我接近肯定SVN不支持这种功能的合并之后。在TortoiseSVN中的文档据说:

本地缺少,当合并进来的编辑

开发人员A在主干上开发的foo.c修改和其提交至 库

开发B关于一个分支工作的foo.c移动到Bar.c并将其提交给 库

的开发人员A的主干更改到开发人员B的分支工作0123合并在树冲突中复制结果:

Bar.c已处于状态为“normal”的工作副本中。

富。c被标记为缺少树冲突。

为了解决这个矛盾,开发人员B必须将文件标记为在冲突编辑对话框解决 ,将从冲突 列表中删除。她然后必须决定是否将缺少的文件Foo.c 从存储库复制到工作副本,是否将开发者 A对Foo.c的更改合并到重命名的Bar.c中,或者是否忽略 更改为标志着冲突解决,别无其他。

这意味着您必须决定一次一棵树的冲突,该做些什么。这不是最糟糕的部分。在我的情况下真正不能接受的是,每次我从干线到这个分支进行新的合并时,我都会被迫再次处理这个冲突。

解决方法:

复制在树枝做成树干(与它的代码需要改变)的结构变化,并使其与他们一起工作。

提交后,这两个文件的结构变化,树干和分支将匹配,所以以后的合并操作不会再抱怨。

-1

我从你的问题中了解到,你在分支中做了很多文件夹结构更改,并且因为这些更改没有存在于你的trunk中,并且当你尝试合并时,你会得到错误。

按照您的说法,“现在,我尝试做从主干合并到这个特性分支”

在第一个地方,当你已经从你的躯干采取的分支出来,做了结构那么你应该将这些改变从“分支到主干”中合并,或者如果你只是想获得原始结构(“恢复文件夹的原始位置”),那么只需恢复你在分支中完成的改变。

希望这会有所帮助。

+0

downvoter请给我们你的理由。 – Ankit

+0

感谢您的答案Ankit,但不完全是。我不想“恢复文件夹的原始位置”,而是保持被移动的文件夹(和文件)之间的关系。当我尝试合并时,由于“树冲突”,所有移动的文件都没有合并,因为SVN似乎没有意识到位于中继线中的文件与分支中的对(移动)之间的关系。 –

+0

对不起,你的问题不对。我在http://svnbook.red-bean.com/nightly/en/svn.tour.treeconflicts.html发现了一些与树木冲突相关的数据。请看看这是否有帮助。 – Ankit

相关问题