[英]Is Mercurial Server a must for using Mercurial?
我正在尝试为我们的团队选择版本控制软件,但我之前没有太多经验。 搜索和谷歌搜索后,似乎Mercurial是一个很好的尝试。 但是,我对它的一些一般信息有点困惑。 基本上,我们的团队只有5个人,我们都连接到将用于存储存储库的服务器机器。 该服务器是Redhat Linux系统。 我们可能会使用很多集中式工作流程。 因为我喜欢本地提交的想法,所以我更喜欢DVCS类软件。 现在我正在尝试安装mercurial。 这是我的问题。
1)用于存储库的服务器是否总是需要安装软件“mercurial-server”? 或者它取决于它使用的工作流程类型? 换句话说,如果没有用于工作的集中式工作流,那么服务器是否可以通过“mercurial client”安装?
我对“mercurial-server”一词感到困惑。 或者它意味着安装在服务器上的mercurial总是被称为“mercurial服务器”,如果它是集中的,它确实很重要。 另外,因为我们都在该服务器上工作,这是否意味着只需要安装一个mercurial副本? 我们都有自己的用户目录,例如/ home / Cassie,/ home / John,...和/ home / Joe。
2)SSH必须吗? 或者它取决于用户和服务器之间的连接类型? 因为我们都在服务器上工作,所以不需要SSH吗?
非常感谢你,
有两件事可以称为“mercurial服务器”。
一个是社交约定,“共享驱动器上的存储库X是我们的公共存储库”。 您可以安全地推送和拉到该已安装的存储库,并将其用作开发的常用“主干”。
第二种可能是允许mercurial远程连接的特定软件。 有很多选项可供您自己设置,以及其他远程主机的选项。
查看第一个链接以获取不同连接选项的列表。 但作为#2的具体答案:不,您不需要使用SSH,但如果您在使用它的环境中,它通常是最简单的选择。
您可能想要使用的术语,而不是“mercurial server”,是“远程存储库”。 这个术语用于描述推送/拉/克隆/传入/传出/其他 - 我忘记命令的“其他存储库”(你没有执行命令的存储库)。 远程存储库可以是同一磁盘上的另一个存储库,也可以是网络上的某个存储库。
通常,您使用一个共享存储库来共享不同开发人员之间的代码。 虽然您在技术上不需要它,但它的优势在于,当新软件有一个位置时,它更容易同步。
在最简单的情况下,这可以是简单文件共享上的存储库,可以在其中进行文件锁定(NFS或SMB),其中每个开发人员都具有写访问权限。 在这种情况下,不需要在服务器上安装mercurial,但有一些缺点:
我建议使用http或ssh方法。 你需要在服务器上安装mercurial(我不考虑http-static方法,因为你不能进入http静态路径),并获得以下优点:
http和ssh之间的决定取决于您本地的网络环境。 http具有绕过许多企业防火墙的优点,但是当你想通过http将东西推回服务器时(或者不希望每个人都看到内容)时,你需要注意安全身份验证。 另一方面,ssh的缺点是您可能需要保护服务器,以便客户端无法在那里运行任意程序(这取决于您的客户端的可信度)。
我第二个Rudi的回答是你应该使用http或ssh访问主存储库(我们在工作中使用http)。
我想解决你关于“mercurial-server”的问题。
基本的Mercurial软件确实提供三种服务器模式:
hg serve
; 这是一个单一的存储库,我认为它更适用于快速黑客攻击(当主服务器关闭时,你需要从同事那里获取一些更改)。 hgwebdir.cgi
; 这是一个可以与HTTP服务器(如Apache)一起使用的cgi脚本; 它可以服务多个存储库。 还有一个名为“mercurial-server”的独立软件包。 这是由另一家公司提供的; 它的主页是http://www.lshift.net/mercurial-server.html 。 据我所知,这是一个管理界面,选项3,mercurial ssh服务器。
所以,不,你不需要安装mercurial-server; mercurial包已经提供了一个服务器。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.