在我目前正在进行的项目中,我们同时使用Subversion和CVS。开发人员通常会开发代码并签入CVS / Subversion。
当编码完成并且所有内容都已经过检查时,我们使用测试标签标记存储库,并使用TEST标签检出代码进行正式测试。
我们不使用trunc标记,而是使用上一个标记:
- Tag RELEASE.0.1 as PROJ-ABC-LIVE.1.3
- Tag revision 12 as PROJ-ABC-LIVE.1.3 (new changes not part of RELEASE.0.1)
以上内容确保只有最新版本的文件+新版本的文件才会使用新版本标签进行标记,从而排除任何未经过测试的文件。
当测试完成并且对代码进行任何其他更改(作为测试结果)时,代码将被标记为LIVE标记。 LIVE标记是签出并部署到LIVE服务器上的代码。
在任何时候,存储库的截断都可以包含人们所做的任何数量的更改。在某些情况下,人们会检查“正在进行”且不完整的代码更改。有人办理入住手续并进行为期两周的假期是完全正常的。
这里的示例是我们的存储库中的修订文件的示例状态
1.4
1.5
1.6 PROJ-ABC-TEST.0.1
1.7
1.8 PROJ-ABC-TEST.0.2
1.9 PROJ-ABC-LIVE.1.3
1.10
1.11
当我们发布版本时,我们会使用标签PROJ-ABC-LIVE.1.3查看所有内容并将其作为正式版本提供。不包括修订版1.10和1.11,因为这些是目前在trunc中的新修改。
我很难理解在这种情况下如何使用Jenkins或Hudson之类的东西。如果我们引入它,它究竟会为我们做些什么呢。
如果我们确实介绍它,那么它不是每次都会构建相同的版本吗?我们只使用标签构建,所以如果我介绍Jenkins / Hudson,我将不得不将其配置为按标签构建。它不只是每次运行时构建PROJ-ABC-LIVE.1.3
吗?除非可以使用最新的标签进行构建。
我所看到的关于如何使用CI的大多数示例是,每当存储库中存在更改(提交)时,大多数人都会从trunc构建。如果人们签入不完整的工件,这将如何工作?如果trunc永远不稳定(我不打算这样做),我真的没有看到从TRUNC构建的好处是什么。
也许我对CM不是很了解但是如何发布一些由Trunc构建的东西?我想我的问题是
由于
答案 0 :(得分:3)
简短的回答(因为@JB严重暗示)是你根本没有使用CI过程 - 所以CI服务器对你没什么帮助。我强烈建议您的团队切换到CI流程。这是关于它的全部内容seminal paper by Martin Fowler。祝你好运!