在移动文件夹/文件时,如何在SVN上保留对其原始位置的引用



我创建了一个功能分支来与主干并行工作。

在短时间内,我做了大量的结构(文件夹)更改。例如,我移动了以前打开的文件夹:

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")

并且该路径内的所有文件和其他文件夹均未合并。

有没有办法恢复文件夹的原始位置和当前位置之间的"链接"?

我可以做些什么来处理这个问题吗?

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

经过一番研究,我几乎确定SVN不支持这种合并功能。在TortoiseSVN的文档中说:

本地缺失,合并时传入编辑

在主干上工作的开发人员 A 修改 Foo.c 并将其提交到 存储 库

在分支上工作的开发人员 B 将 Foo.c 移动到 Bar.c 并将其提交到 存储库

开发人员 A 的主干更改合并到开发人员 B 的分支工作 复制会导致树冲突:

Bar.c 已经在工作副本中,状态为"正常"。

Foo.c 被标记为缺失,并带有树冲突。

若要解决此冲突,开发人员 B 必须将文件标记为已解决 在冲突编辑器对话框中,这会将其从冲突中删除 列表。然后,她必须决定是否复制丢失的文件Foo.c 从仓库到工作副本,是否合并开发者 A 将 Foo.c 更改为重命名的 Bar.c 或是否忽略 通过将冲突标记为已解决而不执行任何其他操作来进行更改。

这意味着你必须决定,一次一棵树冲突,该怎么做。这还不是最糟糕的部分。就我而言,真正不可接受的是,每次我从主干到这个分支进行新的合并时,我都会被迫再次处理这种冲突。

解决方法

分支上所做的结构更改复制到主干中(对代码进行所需的更改)并使其与它们一起使用。

提交后,这会更改文件的两种结构,主干和分支将匹配,因此以后的合并操作将不再抱怨。

我从您的问题中了解到,您在分支中进行了大量文件夹结构更改,并且由于这些更改不在您的主干中,并且当您尝试合并时,您会收到错误。

根据您的陈述,"现在,我正在尝试从主干合并到此功能分支"

首先,当您从主干中取出分支并在分支中进行结构更改

时,您应该将这些更改从"分支合并到主干",或者如果您只是想获取原始结构("恢复文件夹的原始位置")然后只需还原您在分支中所做的更改。

希望这有帮助。

最新更新