我在我的服务器上设置了mercurial,但我不清楚应该如何。我正在寻找更多不同设置的例子,但也许我使用了错误的关键字。现在,它只是少数开发人员,我不确定我是否应该将repo作为DocumentRoot。我真的不知道要问什么问题,因为这对我来说是新的,但如果有人能提供一些知识和指导,我将不胜感激。我现在遇到的一些问题是,我应该如何设置我的服务器和存储库?在进行测试克隆之前,我应该为测试克隆设置单独的VirtualHost吗?什么都有帮助!提前谢谢!
答案 0 :(得分:2)
可能没有理由这样做。我会将它们分开,但设置一个自动化过程(自定义脚本或continuous integration(CI)),通过运行单个命令从Mercurial部署到站点。 (可选)您可以使每个提交触发器进行部署。
编辑:通过持续集成,CI的服务器负责部署。如果您使用SSH,CI将从hg中导出,导出,然后通过SSH上传。这应该解决你的问题。有关支持Mercurial的CI服务器的比较,请参阅this question。
答案 1 :(得分:2)
我没有 答案给你,因为许多变量和需求会影响工作流程,但这里有一些链接可以帮助你入门:
我还建议您阅读这篇优秀的Mercurial简介:http://hginit.com/
您还可以在Mercurial上找到有关工作流程的各种问题,例如,请查看右边的边栏。
如果您有更具体的问题,请不要犹豫再次询问!
答案 2 :(得分:1)
我会让你的DocumentRoot目录成为你的存储库的第一级子目录,这里有一些原因:
基本上,代码库往往不是与已部署站点完全一对一的匹配,因此我倾向于将文档根目录为子目录。
部署是一个整体'其他蠕虫。这真的取决于你对你做什么的需求,但这就是我的所作所为:
我在我的计算机上运行VirtualBox实例,该实例看起来尽可能接近到我部署的服务器的样子,至少尽可能接近配置文件。我认为这种方法比其他VirtualHost条目更不容易出错。根据项目的不同,我可以将其归结为相同而不是某些DNS条目,因此我可以设置所有内容,以指向testing.myproject或production.myproject,并且我始终自动化(我使用chef,但这对于一个较小的项目来说是过度的,因此它是可测试的代码,并且不容易出现手指笨拙。没有什么比运行擦除数据库的冒烟测试更糟糕了 - 并且让配置意外地指向您的prod数据库。运行虚拟机可以轻松地测试服务器环境或操作系统的升级,如果要进入机器配置的早期状态,可以进行核对并恢复到快照。
如果你真的想阻止SSH开发人员访问你的prod机器 - 和IMO,这是一个坏主意,因为如果你的生产服务器上有问题,你阻止你的开发人员诊断或修复它< / em> - 那么我认为最好的办法是使用类似hudson的东西,这是一个持续的集成框架。您只能为Hudson用户提供ssh访问权限来运行您的部署脚本,但是任何人(具有在Hudson中设置的权限)都可以运行该作业。事实上,这在你拥有的环境中很方便。一些产品管理成员,你希望能够更新生产服务器而无法登录。“穷人”的版本是使用sudo允许你的开发人员以做<的其他用户运行命令/ em>拥有ssh访问权限 - and only allowing them to run the publish script.
我仍然建议您让开发人员访问您的机器,但您不必将钥匙交给王国。只需创建一个“开发人员”组,将您的开发人员分配给它,并为其提供足够的权限来使用服务器的必要目录,您应该很高兴。