繁体   English   中英

Mercurial Server是否必须使用Mercurial?

[英]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,但有一些缺点:

  • 每个开发人员必须安装一个mercurial版本,它可以处理共享上的repo版本(例如,当使用mercurial 1.9创建共享上的repo时,1.3的开发人员无法访问此repo)
  • 每个开发人员都可以对共享仓库发布破坏性操作,包括删除整个仓库。
  • 你不能在这样的repo上可靠地运行钩子,因为钩子是在开发者机器上执行的,而不是在服务器上执行的

我建议使用http或ssh方法。 你需要在服务器上安装mercurial(我不考虑http-static方法,因为你不能进入http静态路径),并获得以下优点:

  • 服务器上的mercurial版本不需要与客户端相同,因为mercurial使用与版本无关的有线协议
  • 您无法通过这些协议执行破坏性操作(您只能将新修订附加到远程仓库,但永远不会删除任何修订)

http和ssh之间的决定取决于您本地的网络环境。 http具有绕过许多企业防火墙的优点,但是当你想通过http将东西推回服务器时(或者不希望每个人都看到内容)时,你需要注意安全身份验证。 另一方面,ssh的缺点是您可能需要保护服务器,以便客户端无法在那里运行任意程序(这取决于您的客户端的可信度)。

我第二个Rudi的回答是你应该使用http或ssh访问主存储库(我们在工作中使用http)。

我想解决你关于“mercurial-server”的问题。

基本的Mercurial软件确实提供三种服务器模式:

  1. 使用hg serve ; 这是一个单一的存储库,我认为它更适用于快速黑客攻击(当主服务器关闭时,你需要从同事那里获取一些更改)。
  2. 使用hgwebdir.cgi ; 这是一个可以与HTTP服务器(如Apache)一起使用的cgi脚本; 它可以服务多个存储库。
  3. 使用ssh(Secure Shell)访问; 我对它知之甚少,但我认为设置比hgwebdir变体更难

还有一个名为“mercurial-server”的独立软件包。 这是由另一家公司提供的; 它的主页是http://www.lshift.net/mercurial-server.html 据我所知,这是一个管理界面,选项3,mercurial ssh服务器。

所以,不,你不需要安装mercurial-server; mercurial包已经提供了一个服务器。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM