我们有一个项目,我们已经在主干编码。现在主干有一个很大的功能,已编码,但我们不希望在第一个版本。
但我们也希望清理第一个版本的代码,因此希望从版本1的项目中删除此功能导致的所有文件和功能。
但是,一旦我们准备发布第2版,我们将需要所有文件和功能。
为了以最有效的方式执行此操作,我们是否应将该功能保留在主干中并为版本1发行版创建单独的分支。在这种情况下,我们将从分支中删除与该功能相关的所有文件和功能,然后在发布后将该分支合并回主干。
或者我们应该将功能相关的文件和功能保存在单独的分支中,然后清理主干。发布后,我们可能会将分支合并回主干以获得该功能。
这两种中哪一种更好? a)用于清理释放的特征和主干的分支 b)用于清理版本的功能和分支的中继
说我按照以下步骤操作。
当我将Branch-V1与主干合并时,我不会松开主干中的BigFeature吗?
答案 0 :(得分:1)
更好的方法是在大功能启动之前从主干分支,然后将更改应用到此版本1分支,当您准备好将v1合并到主干上以创建v2主干。
听起来很复杂但是解决问题的努力最少 - 所以在专用的v1分支上工作,释放它,然后合并回到准备好v2的trunk。
当你这样做的那一刻,你必须做的第一件事就是在将你的更改合并到主干上之前,为你的第1版代码制作一个新标签。然后,一旦在主干上有v2代码,从主干分支到新的“大功能”分支并完成它,就必须开始正常工作,并为要添加的任何其他功能创建分支。当它们完成时将它们合并在主干上,当你释放时,在主干上创建一个“标签”分支。
您可以通过全部转储清理存储库,重命名2个分支,以便将v2 trunk culd重命名为“v2 branch”,v1代码的分支可以成为trunk。如果你有信心这样做,我会推荐它,因为它可以解决问题,你可以假装你一直在以适当的方式工作:)
答案 1 :(得分:0)
我这样做的方式如下: -
svn copy -r rev-num / trunk /branches/v-1.0
继续使用“v-1.0”并在完成后从该分支发运产品。 对于1.0中的每个提交,我肯定也会在trunk中提交它(解决当时和那里的任何冲突)。通常在大型项目中,主干的开发也在同时进行。
1.0出门后,为该版本创建一个标签“v-1.0”,如果此版本上有任何其他请求或要发送补丁,您可以使用同一分支。
svn copy /branches/v1.0 /tags/v-1.0
因此,您可以继续在分支机构和主干中进行开发。