使用Subversion的Version Control为(单项目)存储库推荐以下布局(由此问题补充):
/trunk
/tags
/rel.1 (approximately)
...
/branches
/rel1fixes
Run Code Online (Sandbox Code Playgroud)
与(或许)更注重过程的安排相比,这种安排的相对优点是什么?:
/development
/current
/stable
/qa (maybe)
...
/production
/stable
/Prod.2
/Prod.1
/vendor
/Rel.5.1
/Rel.5.2
Run Code Online (Sandbox Code Playgroud)
请注意,我正在考虑内部部署,而不是构建产品.
免责声明:虽然我是Subversion用户,但我从未在真实的环境中部署它.
bmd*_*cks 18
建议的布局与建议的布局之间的主要区别在于,建议的布局在某种程度上是自我记录的,即提交事物的位置以及它的行为方式.
例如,在推荐的布局中,很明显所有新开发都提交到trunk,而大多数分支都是由trunk创建的.此外,显而易见的是,您永远不应该将任何内容提交到/ tags中.最后,可以安全地假设分支是真正的分支,可能包含特定于特定分支目的的更改.
根据提议的布局,其中一些不太确定.是/ development/stable从/ current分支?/ development/stable和/ production/stable之间的关系是什么?这些目录中的哪一个是标签,哪些可以实际检查哪些内容?
当然,这种行为可以记录下来,但是通过坚持每个人都使用的公认布局,您可以更轻松地让新员工快速了解其工作方式.
到目前为止,我将尝试总结答案:
我把它作为社区的答案; 请随时纠正或延长任何不足之处,对此我深表歉意.
您已经描述了存储库组织的两个非常标准的模型:dev-test-prod和trunk-branch.Eric Sink在他的Source Control HOWTO中做了很好的描述.需要注意的一点是,大多数人使用trunk-branch的方式是为每个版本创建一个分支,因为它发布给客户,然后成为维护分支.
我倾向于更喜欢trunk-branch,因为它不需要将每个变化从开发迁移到测试再到生产.只需要迁移需要向后移植到维护分支或从维护分支迁移到主干的错误修改的更改.
然而,有一种情况是dev-test-prod可能更适合在web开发中,其中发布给客户的版本的概念并不存在.在这种情况下,Prod将是服务器上正在运行的任何东西,而代码正在开发和测试中工作并不断迁移到应用程序中,而不是在一个大块中发布.
| 归档时间: |
|
| 查看次数: |
5554 次 |
| 最近记录: |