hg pull 与多个用户

hg pull with multiple users

我将 mercurial 存储库克隆到 Ubuntu 服务器以在那里部署项目。一切对我来说都很好,但是当我的同事尝试使用 "hg pull" 更新服务器代码时,它使用我的凭据进行拉取。

让多人同时更新服务器的最佳方式是什么?我现在能想到的唯一方法是在存储库中创建一个我们都知道密码的普通用户。

在服务器上,我们都有属于同一组的自己的用户帐户。

编辑:我想我也可以指定 url 所以:"hg pull https://user@server.com/project" 有效,但这仍然有点乏味

您确实应该在存储库服务器上创建一个普通用户,该用户被授予对该存储库的访问权限。您还可以优先允许通过部署项目的服务器上的密钥通过密钥 ssh 访问存储库。这样部署服务器上的用户就可以在没有任何密码的情况下从存储库服务器中提取

您可以通过安装 hg-ssh 并适当编辑其 .ssh/authorized_keys 文件来限制该用户对存储库服务器的 ssh 访问:

command="/home/repository-user/bin/hg-ssh * hg-repos/*",no-port-forwarding,no-X11-forwarding,no-agent-forwarding ssh-rsa AAAAB3Nz...aS8JqGh4Q== someone@example.com (Max Mustermann)

您可以通过这种方式轻松地允许其他人或服务器访问该存储库:只需让他们也生成一个密钥对即可。并将其 public 密钥安装在存储库服务器上(共享)存储库用户的 authorized_keys 文件中。只需将允许的 ssh 命令限制为 hg-ssh,即可限制所有远程用户使用任何 shell,如上所示。