是否可以从任何VCS自动进行结帐?
让我们以一个Web开发环境为例,开发人员在该环境中将项目检出到本地计算机上,进行处理,然后检入对开发的更改。
这些更改将在开发中进行进一步测试,并按计划(如每周,每月等)实时上线。
是否可以使用脚本或者内置功能自动更新最新的标记版本(而不是最新的签入,因为这可能不是100%稳定的),例如星期一早上8点。 VCS?
解决方案
回答
当然,但是确切的产品可能取决于我们使用的VCS。
我们可能想做的就是拥有几个不同的分支机构,并随着进度的发展而向上迁移。例如,开发->稳定开发-> Beta->生产。然后,我们可以为测试人员简单地自动将其更新为Stable-Dev和Beta的最新版本,并且始终可以一口气部署新的Production版本。
回答
我们可以使用命令行完成cvs的所有操作,而且我敢肯定svn是相同的。只需计算出所需的功能,然后将其粘贴到Shell脚本或者命令文件中即可。
回答
对的,这是可能的。这通常是持续集成工具提供的功能。通常,他们将从版本控制中获取最新资源,构建项目,对其进行测试(运行单元测试),并可能将其部署在(测试)服务器上。
如果我们不需要所有这些步骤,则可以使用一些shell脚本或者类似方法(例如,从版本控制中检出并复制到服务器上的生产文件夹中)轻松地执行相同的操作。
回答
我仅有的两个经验是SVN和Mercurial。对于Mercurial,我们可以指定要从哪个分支进行更新(假设是默认),然后每当将一个分支合并为默认分支时,就可以运行服务器:
hg update
哪个将存储库更新为我们将其设置为的分支的最新版本。
SVN是相同的概念,我们只需要检查出最初想要哪个分支
svn co http://host/repository/branchname/
那么我们就可以使用cron作业来更新服务器了,
svn up
但是从理论上讲,任何支持分支的VCS(所有好的分支都可以做到:git,mercurial,SVN等)都应该能够执行类似的操作。
回答
我怀疑许多VCS是否直接提供此功能,但是编写脚本应该非常简单。基于日期或者分支的结帐。
回答
作为后续行动,
我认为一个应用程序应该做好一项工作。通常,如果我们开始将工具组合到一个产品中,那么它们中的任何一个都不会发光,它们中的大多数都是"不错的"。
如果我做这样的事情,我会得到类似SVN,ANT和Subversion Ant Library(http://ant.apache.org/antlibs/svn/index.html)之类的东西,但是工作量可能会有所不同。