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_Branch - Fatal编程技术网

Svn 分支的分支:移动到普通分支

Svn 分支的分支:移动到普通分支,svn,branch,Svn,Branch,我通常从主干创建分支,对它们进行处理,并最终将它们重新整合到主干中 Y --> X --> trunk 有时我会从另一个分支X创建一个分支Y,这样我就可以从X的代码开始。通常我会先将Y重新整合到X中,然后将X重新整合到主干中 Y --> X --> trunk 但如果我想先将X重新整合到主干中,而我不再希望Y依赖于X呢?换句话说,我希望Y是一个普通的分支,这样我就可以直接将它合并到主干中或从主干中合并,而不必经过X Y --> trunk X --> tr

我通常从主干创建分支,对它们进行处理,并最终将它们重新整合到主干中

Y --> X --> trunk
有时我会从另一个分支X创建一个分支Y,这样我就可以从X的代码开始。通常我会先将Y重新整合到X中,然后将X重新整合到主干中

Y --> X --> trunk
但如果我想先将X重新整合到主干中,而我不再希望Y依赖于X呢?换句话说,我希望Y是一个普通的分支,这样我就可以直接将它合并到主干中或从主干中合并,而不必经过X

Y --> trunk
X --> trunk

我该怎么办?一种方法是创建一个新分支,并将Y的所有更改合并到其中。但是如果可能的话,我想继续使用Y,这样我就不会忘记它的历史。这可能吗?

Subversion不会跟踪分支之间的任何依赖关系。它只保存历史和合并的历史

当您将Y合并到X时,svn将插入有关刚刚发生的合并的信息。当您将X合并回主干时,此信息将传播到主干。这样,更改将不会在随后的合并中应用两次。不管这些合并是如何进行的

您应该将X合并到主干中,然后像X不存在一样使用Y。如果需要,可以合并到trunk,也可以继续工作


在svn中,分支没有依赖项或任何依赖项。

Subversion不会跟踪分支之间的任何依赖项。它只保存历史和合并的历史

当您将Y合并到X时,svn将插入有关刚刚发生的合并的信息。当您将X合并回主干时,此信息将传播到主干。这样,更改将不会在随后的合并中应用两次。不管这些合并是如何进行的

您应该将X合并到主干中,然后像X不存在一样使用Y。如果需要,可以合并到trunk,也可以继续工作


在svn中,分支没有依赖关系或其他任何东西。

但是在合并时它会注意到共同的祖先。那么,如果我将主干合并到Y(或者反之亦然),它会找到正确的共同祖先吗?看起来,至少,如果我将X重新整合到主干中,我需要阻止Y的修订。从X分支Y的那一刻起,是Y最后一次从X获得任何更改。Y不再受对X执行的任何操作的影响。无论是合并、移动还是删除。只是澄清一下,我一直在把X合并到Y中,所以X中的任何变化也都在Y中。所以,如果我把X重新整合到trunk中,就会复制trunk中的这些变化。因此,我认为我需要阻止该修订被合并回Y。合并信息存储在目标分支的svn属性“svn:mergeinfo”中。在您的情况下,有关合并的信息将同时存储在Y和trunk中。所以当你们将Y合并到主干中时,svn会检测到它并相应地合并它。好的,我试过了,它成功了。在我将X重新整合到trunk中之后,我做了一个只记录从trunk合并到X中的操作,以阻止该修订被合并两次。然后我将X合并到Y中,被阻止的修订现在也被Y阻止了。现在我可以从trunk合并到Y,并从Y重新整合到trunk,但是合并时会注意到共同的祖先。那么,如果我将主干合并到Y(或者反之亦然),它会找到正确的共同祖先吗?看起来,至少,如果我将X重新整合到主干中,我需要阻止Y的修订。从X分支Y的那一刻起,是Y最后一次从X获得任何更改。Y不再受对X执行的任何操作的影响。无论是合并、移动还是删除。只是澄清一下,我一直在把X合并到Y中,所以X中的任何变化也都在Y中。所以,如果我把X重新整合到trunk中,就会复制trunk中的这些变化。因此,我认为我需要阻止该修订被合并回Y。合并信息存储在目标分支的svn属性“svn:mergeinfo”中。在您的情况下,有关合并的信息将同时存储在Y和trunk中。所以当你们将Y合并到主干中时,svn会检测到它并相应地合并它。好的,我试过了,它成功了。在我将X重新整合到trunk中之后,我做了一个只记录从trunk合并到X中的操作,以阻止该修订被合并两次。然后我将X合并到Y中,被阻止的修订现在也被Y阻止了。现在我可以从trunk合并到Y,并从Y重新整合到trunk。