Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何合并不正确创建的“文件”;“分行”;那不是';不是真正的主干分支(不是由svn副本创建的)?_Svn_Merge_Branch - Fatal编程技术网

如何合并不正确创建的“文件”;“分行”;那不是';不是真正的主干分支(不是由svn副本创建的)?

如何合并不正确创建的“文件”;“分行”;那不是';不是真正的主干分支(不是由svn副本创建的)?,svn,merge,branch,Svn,Merge,Branch,我在一个团队中工作,团队中有很多人对版本控制系统的概念非常不熟悉,他们只是在做一些似乎有效的事情,通过反复试验。有人从树干上创造了一个与树干没有祖先关系的“分支”。我猜是这样的: 他们在分支机构中创建了一个文件夹 他们检查了从主干到桌面某处的所有代码 他们将所有代码添加到新创建的文件夹中,就好像它是一堆全新的文件一样 因此,存储库并不知道所有这些代码实际上只是主干的一个副本。当我在TortoiseSVN中查看该分支的历史记录并取消选中“复制/重命名时停止”框时,没有在“从路径复制”列下包含主干(

我在一个团队中工作,团队中有很多人对版本控制系统的概念非常不熟悉,他们只是在做一些似乎有效的事情,通过反复试验。有人从树干上创造了一个与树干没有祖先关系的“分支”。我猜是这样的:

  • 他们在分支机构中创建了一个文件夹
  • 他们检查了从主干到桌面某处的所有代码
  • 他们将所有代码添加到新创建的文件夹中,就好像它是一堆全新的文件一样
  • 因此,存储库并不知道所有这些代码实际上只是主干的一个副本。当我在TortoiseSVN中查看该分支的历史记录并取消选中“复制/重命名时停止”框时,没有在“从路径复制”列下包含主干(或任何其他路径)的修订

    然后他们在他们的“分支”上做了很多改变。与此同时,其他人在树干上做了很多改变。我们尝试了一个
    合并
    ,当然它不起作用。因为,树干和假树枝没有祖先关系

    我只能找到两种解决方法:

  • 浏览“分支”上的日志,查看所做的每个更改,并手动将每个更改应用于主干
  • 浏览主干上的日志,查看修订540(创建“分支”时)和HEAD之间所做的每个更改,并手动将每个更改应用于“分支”
  • 这涉及到7个修订或11个修订的另一种方式,所以没有一个是真正的可怕。但是,有没有办法让存储库“意识到”分支确实与祖先有关,即使它创建得不正确,这样我们就可以利用Eclipse/TortoiseSVN中内置的合并功能


    (你可能想知道:为什么你的公司雇佣了这些人,允许他们访问SVN存储库,而不首先确保他们知道如何正确使用它?!我们没有——这是一个学校作业,是两个不同班级之间的协作——低年级的人得到了一个非常快速的“概述”SVN的一部分,它并没有真正教给他们任何东西。我已经要求小组中的每个人请阅读,我会确保我们(团队中稍有经验的那一半)密切关注存储库,以确保不会再次发生这种情况。)

    您必须在merge命令中使用--忽略祖先。由此,如果添加新文件,SVN将忽略。它只是寻找文件名,奇怪的是,使用命令行客户机而不是我的GUI客户机就行了,即使没有这个开关。它合并了我想要的已更改的文件,然后是全新的文件,我手动复制。这意味着我可能丢失了这些文件的一些历史记录。