Mercurial - HTTPS还是SSH?

时间:2010-10-01 17:34:17

标签: performance security mercurial

我已将内部代码库切换为使用Mercurial,并使用托管远程存储库。我已经读过,通过SSH而不是HTTPS使用Mercurial更快,因为数据在发送之前已经过压缩。但是......与HTTPS相比,设置起来非常痛苦,特别是在Windows上。

对于那些经常在大型项目中使用过的人......

  1. 为每个用户设置公钥/私钥是否值得担忧? 并处理其他挑剔 配置问题?
  2. 有没有 显着的性能提升?一世 没有看到一个较小的 项目。
  3. SSH更安全吗?
  4. 您是否会执行使用一项政策? 在另一方,或让每一个 开发商选择?

2 个答案:

答案 0 :(得分:7)

对于非常大的存储库,建议您使用SSH作为Mercurial进行大型存储。 Mercurial能够压缩为ssh和https发送的数据,因此您可以更快地推送和拉取。此外,默认情况下,Mercurial在通过SSH发送或检索数据时不使用压缩。您需要通过配置启用它。

有两种方法可以做到这一点:

  1. 告诉Mercurial运行哪个SSH命令
  2. 在〜/ .ssh / config文件中指定压缩
  3. In.hgrc

    # Use compression
    ssh = ssh -C
    

    要在SSH配置文件中指定它,请编辑〜/ .ssh / config

    所有人都说,HTTPS设置很简单。如果你有它,只需使用它,除非你要编写巨型框架。

答案 1 :(得分:4)

要么工作得很好;选择对你来说更容易的事情。

HTTPS在加密之前也会进行压缩,所以这不是什么大问题。我见过的唯一真正的区别是,克隆可以通过HTTP中止巨大的回购,但人们总是可以重新尝试。

我个人喜欢使用https作为只读设置,以便人们可以查看/浏览/克隆,然后使用ssh进行所有写入,并允许从ssh进行克隆/拉取。

许多人开始使用ssh访问,因为他们已经拥有每个人的UNIX用户帐户,所以不需要额外的设置。

如果您已经有https为您工作,请坚持下去。