我正在尝试重新组织具有分支的subversion 1.6存储库。看来,如果您在主干中移动文件并且该文件在分支中有更改,那么当这些更改合并到分支中时,它们就不再存在。

我将尝试说明如下:

1. Repo before move
    trunk/a.txt
    trunk/b.txt
    branches/feature/a.txt
    branches/feature/b.txt

2. File branches/feature/b.txt is changed.

3. Repo reorganized
    trunk/a.txt
    trunk/new-location/b.txt
    branches/feature/a.txt
    branches/feature/b.txt

4. Changes from trunk merged to feature
    trunk/a.txt
    trunk/new-location/b.txt
    branches/feature/a.txt
    branches/feature/new-location/b.txt

分支机构/功能文件夹是主干的副本。

完成步骤4后,对功能分支中文件b.txt的所有更改都不再存在。

我认为这是在svn 1.5中修复的?

如果这不是一个选项,我仍然需要以某种方式重新组织我的整个转发。当分支全部合并到主干中时执行移动不是一种选择。我总是在任何时候至少有一个分支加上主干。

有帮助吗?

解决方案

合并移动的文件是已知问题。但是,如果它是找不到合并目标

  

跳过遗失的目标:'baz.c'

如果您看到此消息,则可能需要采取手动操作。如果文件已移动且新位置应接收更改,则可以考虑在重命名的实体之间进行子树合并。

我不知道有任何自动合并的版本控制系统。 编辑:看起来像 mercurial ,例如合并关注副本

其他提示

提供有关步骤3和4的详细信息.Subversion合并与副本不同。

您需要确保在步骤3中使用SVN重命名方法,以确保文件位置与未来的更改保持关联。

(我把这个拿出来......好吧,我不确定以下内容)移动/重命名文件时,祖先存在问题。确保在合并时未选中忽略祖先选项。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top