0

这是场景:

1)我有一个分支A 2)我有一个主干A

这两者都是不相关的,这意味着它们有不同的路径通向它们。BranchA 在某个时间点是trunkA 的副本。

因此,在将trunkA用作核心开发主干时,我被要求将某些更改合并到branchA,以便它也对我们的一些代码代码文件进行这些代码更改。

好的,我在 Tortoise 对话框中选择通过修订范围合并。但事情就是这样。要么我对签入的更改集(我的 repo 集)不聪明,要么我不知道是否有一个选项可以排除一系列修订中的某些文件。

因为问题是,有时我会清理一些我在编写某个故事期间进行编码时所涉足的类。所以我清理了一些东西,比如使用语句删除未使用的东西,等等,这是每个开发人员应该做的(童子军规则)。

问题是当我这样做时,我认为它可能会稀释。这意味着我真的应该在自己的提交中分离出清理更改。

因为问题是,如果我正在合并一系列修订并且我已经完成了“其他清理”,我可能不想在我将我们的一些核心文件更改合并到 branchA 时包含一些清理。也许我只是想移动某个故事,但问题是嘿,我还在其中一些 repo#s 中包含了一些我更改以清理它们的其他文件。

我想我的问题是,或者更多的验证是我可能需要在我的提交上更干净。将事物牢牢地分开。如果它是“围绕”您正在处理的一组类的一堆清理更改,请等待并在他们自己的提交实例(自己的 repo#)中提交这些更改。这样,每当我进行范围合并时,我都会得到我想要的。我认为 svn 没有办法在范围合并期间在某些 repo#s 中清除这些文件。

想法?

4

1 回答 1

0

如果我正确理解了您的问题,您希望将一系列修订从 TrunkA 合并到 BranchA。但是,您的 BranchA 本地工作副本有未提交的更改(与您正在处理的清理故事相关),您希望将这些更改的提交与合并后的提交分开,对吗?

如果这是问题所在,您可以有这样的解决方案。

  • 签出 BranchA 的新工作副本(称为 WC2)并在此处执行修订范围的合并。
  • 然后提交。之后返回执行清理故事的工作副本(称为 WC1)。
  • 在 WC1 中进行 SVN 更新。它将在此处更新您从 WC2 提交的合并更改。
  • 有真正的解决方案。对于此更新中的每个文件,我们需要研究三种主要情况。

我们的场景如下:

  1. WC1 中的文件未更改,TrunkA 中的文件已更新- 这再次不会导致任何问题,因为本地文件未更改,它只会从服务器获取最新更新。
  2. WC1 中的文件已更改(未提交)和 TrunkA 中的文件未更新- 这不会有任何问题,因为这些文件的更新中没有任何事情发生,并且您的清理更改完好无损。
  3. 在 WC1 中更改的文件(未提交)和在 TrunkA 中更新的文件- 这将在更新过程中进入 SVN 冲突。然后你可以一一进入这个并修复冲突。那就是要在这里消耗时间的人。

在此之后,只需在 WC1 中完成您的清理故事并稍后提交。

这将您在提交历史中的两个任务分开。

于 2013-06-14T13:26:48.077 回答