Svn 您是否使用分支/标记/主干约定?

Svn 您是否使用分支/标记/主干约定?,svn,Svn,您是否始终遵循将分支、标记和主干目录放在Subversion存储库顶层的惯例?最近,我不再烦恼了,也没有什么不好的事情发生 如果需要创建目录树,应该可以移动目录树。我是在为以后制造麻烦吗?您尝试过分支或标记了吗?在那之前,没有问题。然而,使用分支、标记和主干约定的另一个好处是,它正是一个约定。人们希望看到这一点,因此他们知道在需要分叉时该做什么。不,对于目前正在排队的项目,他们已经放弃了这种方法。虽然这个概念似乎非常有效,但它似乎浪费的时间比实际节省的时间要多。这取决于项目的规模。我们有一些相当

您是否始终遵循将分支、标记和主干目录放在Subversion存储库顶层的惯例?最近,我不再烦恼了,也没有什么不好的事情发生


如果需要创建目录树,应该可以移动目录树。我是在为以后制造麻烦吗?

您尝试过分支或标记了吗?在那之前,没有问题。然而,使用分支、标记和主干约定的另一个好处是,它正是一个约定。人们希望看到这一点,因此他们知道在需要分叉时该做什么。

不,对于目前正在排队的项目,他们已经放弃了这种方法。虽然这个概念似乎非常有效,但它似乎浪费的时间比实际节省的时间要多。

这取决于项目的规模。我们有一些相当大的东西(当然是git,但概念是一样的)。每个开发人员都使用他/她自己的分支,有一个测试和主线分支。我们还标记发行版,如果存在特定于版本的修复程序,则会创建一个分支,以便可以相当容易地集成修复程序

这种设置的优点是:在开发过程中,我们不会互相干扰。但缺点是,我们需要一个集成器将来自开发人员分支的提交放到测试分支,然后放到主线分支


如果项目很小,那么它只是开销,但你永远不知道项目会有多大。

你至少有一个主干吗?如果没有,当您确实需要分支或标记时,您必须将它们与实际代码/内容一起放在根项目目录中。哎呀

编辑:我想你可以创建一个主干文件夹,然后将所有内容移动到该文件夹中,然后创建分支等等


对于那些说“以后再做,不要浪费时间等等”的人来说,老实说,在项目开始时创建它们需要多少开销?最多两分钟?那为什么不直接做呢?以后移动所有内容将花费更长的时间-即使最终只需要5次分支1,我仍然认为从分支、标记、主干结构开始,您将花费更少的时间。

我刚刚开始实际使用约定,我同意。如果您有一个内置QA,另一个在生产中,还有一个在疯狂的新实验性功能开发中,很高兴在它们之间快速切换。

正如我在中所说的,由于分支和标记是相同的,您不必遵循任何约定,只需遵循自己的约定。

特别是对于具有顺序开发的小项目(即当前开发、维护旧版本、探索替代框架等之间不需要并行工作)

我通常会将我的主干保存在存储库的根目录中,并且只有在我确实需要创建分支标记时才将其移动到主干文件夹中。我认为使用SVN,只要您的结构符合逻辑,以后如果您的需求发生变化,您应该可以轻松地重新安排它。

我在每个项目上都使用主干、标记和分支。说真的,在创建项目时创建两个额外的目录有多难。仅仅为了保持一致性,遵守公约有一些好处。我发现我有很多标签(开发者环境之外的应用程序的每次推送都会得到版本控制和标签)。我没有那么多分支机构,因为我通常不与我不信任的人合作,在审查前提交。所以,通常当我得到分支时,这是因为我有一个永久的代码库分割——通常是针对不同的客户机。一旦代码变得不可调和,我通常会停止一个分支并将其移动到它自己的主干。

最近我使用了一个更专注于敏捷的模型,您可以看看

在版本控制中遵循一些策略是非常重要的,因为即使使用定义良好的模型,代码版本在本质上也会导致您犯错误、混乱的合并以及所有那些糟糕的事情,所以要小心


此模型为每个存储库提供了职责,并且不允许您在生产代码、可交付代码和正在构建的代码所在的位置重叠。

我遵循此约定有许多原因

  • 使用b/t/t惯例的参考资料和程序可立即应用于您的svn回购结构
  • 所有进入团队的熟悉该约定的开发人员都有一个最小的学习曲线来适应您的svn回购结构
  • 如果主干和分支机构有直接和明显的好处,那么只有当您必须浏览历史记录和日志以覆盖您或您的公司时,您才会意识到保持一致的标记程序的好处

  • 简言之,为什么公约是一件好事,可能还不太清楚,但当你需要帮助、建议或一些管理狂热时,它就成了众所周知的天赐之物。

    我喜欢用“小型项目”的分支机构来简单地证明概念。它快速、简单,通常有助于跟上主要项目的进度。我把概念证明放在分支目录中,因为它不是主项目的一部分,但对项目有价值

    就像其他人提到的,我使用标签发布。我所做的大多数发布都是版本,所以我通常只有一个包或版本安装程序的zip文件。

    快速回答是“做最适合您的程序的事情”

    正如Danimal所说,分支/主干/标记的结构是一种约定。然而,我不同意重要的是b/t/t的位置,仅仅是它们的存在

    你应该有一个明显为分支指定的地方,一个为你的主干指定的地方,还有一个为你的标签指定的地方。它们的确切位置在很大程度上取决于存储库的结构和保存的文件的性质

    例如,如果您保持多重