是否可以从任何 VCS 自动结帐?

Posted

技术标签:

【中文标题】是否可以从任何 VCS 自动结帐?【英文标题】:Is it possible to automatically make check-outs from any VCS? 【发布时间】:2010-09-06 02:10:41 【问题描述】:

让我们以 Web 开发环境为例,开发人员可以在其中将项目签出到他们的本地计算机上,进行处理,然后签入对开发的更改。 这些更改在开发过程中得到进一步测试,并定期(例如每周、每月等)上线。 是否可以自动升级最新的标记版本(而不是最新的签入,因为这可能不是 100% 稳定),例如星期一早上 8 点,使用脚本或内置功能VCS?

【问题讨论】:

【参考方案1】:

当然可以,但具体的产品可能取决于您使用的 VCS。

您可能想要做的是拥有几个不同的分支,并随着您的进展向上迁移。例如,开发 -> 稳定开发 -> Beta -> 生产。然后,您可以简单地为您的测试人员自动更新到最新版本的 Stable-Dev 和 Beta,并且始终能够随时部署新的生产版本。

【讨论】:

【参考方案2】:

你可以用 cvs 做的任何事情都可以用命令行来完成,我很确定 svn 也是一样的。只需制定您想要的功能并将其粘贴到 shell 脚本或命令文件中即可。

【讨论】:

【参考方案3】:

是的,这是可能的。这通常是continuous integration tools 提供的功能。通常,他们将从版本控制中获取最新的源代码,构建项目,对其进行测试(运行单元测试),并可能将其部署在(测试)服务器上。

如果您不需要所有这些步骤,您可以使用一些 shell 脚本或类似的脚本轻松地执行相同的操作(即从版本控制中签出并复制到服务器上的生产文件夹)。

【讨论】:

【参考方案4】:

我仅有的两个经验是 SVN 和 Mercurial。对于 Mercurial,您指定要从哪个分支更新(假设是默认分支),然后每当您将分支合并到默认分支时,您就可以让服务器运行:

hg update

这会将您的存储库更新为您设置的分支的最新版本。

SVN是同一个概念,你只检查你最初想要哪个分支

svn co http://host/repository/branchname/

然后你让你的服务器用一个 cron 作业更新它,ala

svn up

但理论上,任何支持分支的 VCS(所有好的 VCS 都支持:git、mercurial、SVN 等),应该能够做类似的事情。

【讨论】:

【参考方案5】:

我怀疑许多 VCS 直接提供此功能,但是编写脚本应该非常简单。基于日期或分支的结帐。

【讨论】:

【参考方案6】:

作为后续,

我认为一个应用程序应该完成一项工作并且做得很好。通常,如果您开始将工具组合到一个产品中,它们中的任何一个都不会大放异彩,而且大多数都会是“'好吧,有点”。

如果我在做这样的事情,我会给自己一些类似 SVN、ANT 和 Subversion Ant Library (http://ant.apache.org/antlibs/svn/index.html) 的东西——不过你的选择可能会有所不同。

【讨论】:

以上是关于是否可以从任何 VCS 自动结帐?的主要内容,如果未能解决你的问题,请参考以下文章

Git 或 Hg 或任何现代 VCS 中的 WebDAV 自动版本控制

WooCommerce - 如何使用 ajax 动态加载结帐页面?

在从 VCS 签出后应用 API 更改作为重构(最好在 IntelliJ 平台内)

如何使用 ANT 任务从 SVN 结帐?

Git可以使用独占结账吗?

woocommerce结帐错误:您无权编辑此帖子