我在SVN中混合了小型和大型项目。其中有些是如此之小,我无法预见自己的分支或标记。
那么,即使我非常确定分支/标记目录是否会用于较小的项目,我是否仍然坚持使用trunk / branch / tag文件夹约定?我觉得这可能有点矫枉过正。
对此的想法?
答案 0 :(得分:19)
直接回答标题中的问题:不,你没必要。 SVN存储库可以按您选择的任何文件夹结构进行组织。
话虽这么说,现在至少把所有东西放在一个trunk文件夹中可能是一个好主意,所以如果你以后改变主意并决定分支或标记会有用,你可以添加分支/标记文件夹很容易,无需移动所有东西。
答案 1 :(得分:6)
我在Subversion中使用branch / tag / trunk目录,即使对于琐碎的项目也是如此。这几乎是零成本,值得一致。如果我需要办理结账,我总是知道我的项目是如何制定的。
答案 2 :(得分:2)
它们是惯例,所以添加它们会带来什么伤害。如果您的项目达到了您需要的程度,那么从一开始就让它们更容易,而不是在事后添加它们。
答案 3 :(得分:0)
在我的SVN存储库中,我有一个trunk / branch / tag目录。我将所有项目都放在trunk中,并根据实际达到可标记状态的项目分别组织我的分支和标记目录。公约可能会建议为每个项目使用分支/标记/主干目录,但如果您不希望标记和分支,这可能是不切实际的。
即使是个人项目也可以在重大改写之前或经过长时间的中断之后,不经常进行标记和分支。
答案 4 :(得分:0)
通常(或非常明显地),分支/标记在团队中非常有用,其中许多编码人员将同时使用源。每个编码人员都在他们自己的分支机构工作,因此不存在挽救别人工作的风险。
作为一个单人军队开发人员,我仍然发现分支/标记在以下情况下非常有用:
我需要建立一个实验分支而不放弃当前的工作源。如果实验代码证明更好,我会把它合并回来。
如果我有几个单独的组件,用表示项目版本号的名称标记每个组件并将它们放在以项目命名的标签文件夹中可能很有用。当您想要返回版本1.0.5.10并且需要知道组件Foo中的更改时,这有助于保持标签。提交说明可能不够充分。
答案 5 :(得分:0)
根据我的经验,'trunk / branch / tag'组织是一个非常好用的源代码控制布局。我已经看到它在许多使用不同工具的不同组织中实现(ClearCase,SVN,CVS,仅举几例)。我目前使用的ClearCase设置稍微复杂一些(复杂的?),但一般来说,它遵循非常相似的布局。
虽然在SVN中不需要它,但我强烈建议习惯这种类型的布局,包括合并到不同的分支和主干。
对于个人项目,我发现标记是保存最终不可变版本的有效方法。分支通常保留用于实验切线,因此在实际开始之前我不会破坏我的代码的最新(稳定)版本。