我在一个项目上所做的部分开发无法部署,应该在单独的分支中完成。我已经合并了向后的更改(通过乌龟的“从这个版本恢复更改”和仔细编辑),撤消应该在单独的分支中的工作,并将这个反向补丁提交到主干。我现在想创建一个分支,其中包含在上述补丁中撤消的更改。这是我所做的:
我在撤消修订之前的修订中为新开发创建了一个新分支。
我通过合并乌龟 SVN 中的一系列修订将撤消修订合并到新分支中。
我打开了更改日志,选择了“包括合并的修订版”和“从该修订版还原更改”。这恢复了我的工作副本中的这些更改。这就是我希望分支成为的样子。我提交了这些更改。此提交在“包含合并的修订”下列出了撤消补丁;我不认为它应该这样做;这里似乎有问题。关键可能是记录这个补丁(平方反比,或原始修改的产物),使颠覆不知道创建它所执行的操作。
然后,我通过相同的方法(合并一系列修订)将主干中的所有更改合并到新分支中。这包括第二次原始撤消补丁,使我的分支与主干相同(现在将其列为三次作为包含的合并修订版)。这不是预期的结果。
<编辑 - 解决方案>
以下是所需的行为,并且可以正常工作:
首先,我创建了一个带有文件夹标签、主干、分支的空存储库。在主干中,我创建了一个文件 file.txt,其内容为(rev1):
one
two
three
然后将文件编辑为
one
two_edit
three
并签入(rev2)。然后我在日志中选择了 rev2 并从这个版本中选择了 revert changes 并签入(rev3)。该文件现在再次看起来像这样:
one
two
three
然后我创建了一个从rev3到branches\b1 的主干分支(rev4,was5;这一步都做)。在 branch\b1 中,文件如下所示:
one
two
three
然后我将 rev2 从主干反向合并到分支/b1 中,忽略祖先(rev5)。分支现在看起来像这样,历史包含类似的内容现在纯属巧合:
one
two_edit
three
我将主干(rev6)编辑为如下所示:
one
two
three
four
我将主干中的所有更改合并到分支/b1(rev7)中。分支/b1 现在正确地看起来像:
one
two_edit
three
four
</编辑 - 解决方案>
<编辑>
它应该如何工作
以下是所需的行为,如果按如下方式执行斜体步骤,则可以正常工作:
首先,我创建了一个带有文件夹标签、主干、分支的空存储库。在主干中,我创建了一个文件 file.txt,其内容为(rev1):
one
two
three
然后将文件编辑为
one
two_edit
three
并签入(rev2)。然后我在日志中选择了 rev2 并从这个版本中选择了 revert changes 并签入(rev3)。该文件现在再次看起来像这样:
one
two
three
然后我创建了一个从 rev2 到branches\b1 (rev4) 的主干分支。在 branch\b1 中,文件如下所示:
one
two_edit
three
然后我将主干中的 rev3 合并到分支\b1(rev5)中,分支现在看起来像这样:
one
two
three
我编辑分支 3 (rev6),就好像我此时正在分支一样。现在纯粹是巧合,历史包含类似的东西:
one
two_edit
three
我将主干(rev7)编辑为如下所示:
one
two
three
four
我将主干中的所有更改合并到分支/b1(rev8)中。分支/b1 现在看起来像:
one
two_edit
three
four
它是如何工作的
以下是实际行为;如果执行斜体步骤,它将无法正常工作,由于追溯分支的复杂性,这是必要的。错误在最后一步的第二行。
首先,我创建了一个带有文件夹标签、主干、分支的空存储库。在主干中,我创建了一个文件 file.txt,其内容为(rev1):
one
two
three
然后将文件编辑为
one
two_edit
three
并签入(rev2)。然后我在日志中选择了 rev2 并从这个版本中选择了 revert changes 并签入(rev3)。该文件现在再次看起来像这样:
one
two
three
然后我创建了一个从 rev2 到branches\b1 (rev4) 的主干分支。在 branch\b1 中,文件如下所示:
one
two_edit
three
然后我将主干中的 rev3 合并到分支\b1(rev5)中,分支现在看起来像这样:
one
two
three
在branchs\b1 中,我在日志中选择了rev5,并从该版本中选择了revert changes 并签入(rev6)。该文件现在再次看起来像这样:
one
two_edit
three
我将主干(rev7)编辑为如下所示:
one
two
three
four
我将主干中的所有更改合并到分支/b1(rev8)中。分支/b1 现在看起来像:
one
two
three
four