40

我有一个具有标准布局的颠覆存储库,即主干/和分支/(和标签/)。当进行更大的更改时,会使用功能分支,定期与主干同步,然后重新集成回主干(现在使用 1.5)。很标准的东西。

我想知道的是,这样的功能分支,一旦完成并合并,是否应该保留或删除。颠覆书偶尔似乎暗示删除它们是很常见的,但我也看到了一堆保留分支的开源项目。

我也有点担心删除一个分支将如何使跟踪存在的分支变得更加困难,尤其是当潜在的重复名称进入场景时(比如我们搜索重构两次),它们的提交历史消失在存储库深处的某个地方等等

另一方面,分支被大量使用,尤其是现在的 1.5,我确实喜欢不必通过大量非活动分支来查找我目前正在处理的分支的想法。

我想念的优点和缺点是什么?人们在做什么?

4

4 回答 4

28

如果您真的担心删除它们,以免它们被遗忘,那么只需在名为“inactive”的分支下创建一个文件夹,并将svn move您较旧的非活动分支放入该文件夹。这对你来说可能是两全其美的。

于 2008-10-02T14:34:51.713 回答
23

您可以安全地删除它们。删除它们不会将它们从存储库中删除,分配的空间永远不会回收,但它确实使您的整个项目树看起来更加干净。

于 2008-10-02T14:31:03.033 回答
11

完成后我一直在删除功能分支,因为我喜欢没有杂乱。其他一些开发人员有一些小的困惑,但是由于我们在错误跟踪系统中记录了提交的修订号,所以它非常顺利。如果有人说他们找不到分支,建议-rrevision在他们的 log/diff/checkout/whatever 上使用标志,这通常是所有需要的。

于 2008-10-02T14:33:58.207 回答
8

我的团队删除了它们以保持混乱。毕竟这不像是走开。如果需要,可以检索它们。您是对的,很难再次找到它们:您需要知道分支所在的修订号,以便告诉您的客户查看该修订以查看您的文件。

我们使用 FogBugz 进行项目管理,它通过修订号跟踪内容何时提交到我们的 SVN 存储库。我们可以使用它来确定我们需要恢复到哪个版本才能查看我们的文件:我们在 FogBugz 中找到功能历史记录,查看分支存在于哪些版本中,并使用该信息向后跳转。

于 2008-10-02T14:34:22.887 回答