如何在源代码控制库中维护源版本和项目树结构

时间:2010-07-30 18:12:40

标签: version-control versioning

对于使用Visual Source Safe(VSS)2005的4-5位开发人员团队,维护源版本的最佳做法是什么?

我们的要求是维护和识别当前正在生产的版本。这种方式我们将始终知道在部署期间推送了哪些代码 到目前为止,这是我的想法。

  

-trunk - 主要解决方案和项目
  -Dev分支 - 为开发和增强而创建的分支

-Dev (some enhancement)  
     

- 发布 - 发布分支

-Release 2.1.0  
-Release 2.1.1  
-Release 3.0

以破折号( - )开头的所有内容都是存储库中的文件夹。

我在想每次我们需要对项目进行增强时,我们都会从整个项目的主干创建一个dev分支。这将是开发人员将要工作的地方。一旦开发完成并完成UAT,我们将继续部署。

在部署项目(在这种情况下是Web应用程序)并确认它是稳定的之后,我们在上面的Dev分支上创建一个Release(版本号)分支。让我们说这是3.0版本,我们现在知道在2010年7月部署我们将代码推送到Release 3.0文件夹中。

然后我们合并(在VSS2005中这很简单)版本3.0代码与主干。这样,主干始终是最新部署的代码,下一个增强功能将从主干分支。

的HotFix

我还没想到的一些事情是当存在正在处理的Dev分支并且需要立即部署的热修复时会发生什么。 也许,我们从最新的Release文件夹中创建一个单独的分支,称之为Hot-fix 3.0。让开发人员进行修复,在部署热修复后将其与Release 3.0代码合并,然后再次与trunk合并。

清理

发布后,确实没有必要拥有开发分支。这些应该删除吗?

由于我们正在分支,我读到在VSS中删除分支不会释放数据库中的空间,除非原始文件被删除。

我们应该如何删除,还是应该删除开发分支?

这些是我的想法,您如何管理您的版本以及您对我的要求的建议。

我们可能会在未来转向TFS,所以我现在在VSS中实施的任何内容都应该考虑将来的这一举措。

1 个答案:

答案 0 :(得分:2)

  • 主干 - >应该只包含稳定的代码
  • 标签 - >将标签添加到主干代码以识别版本(例如版本2.1.0,2.1.1,3.0等)
  • 分支 - >为每一个问题创建一个分支
  • 更新 - >经常更新分支以保持代码尽可能接近主干(因为同时提交其他修复)
  • 合并 - >如果解决方案稳定,则将分支合并到主干(包括问题编号,以便代码更改与问题编号相关)

最重要的是:

  • 使用源代码控制系统支持您完成所有这些操作 - > VSS不会;)

还要看看这篇有趣的文章:http://betterexplained.com/articles/a-visual-guide-to-version-control/