如何使用Mercurial将存储库克隆到远程服务器/存储库

Ale*_* N. 27 mercurial

今天发现自己对此非常困惑.

我在本地创建一个空白存储库(hg init),将其克隆到工作副本,添加一些代码,提交并推送它(显然是本地存储库).

现在我需要与其他人共享该存储库.有一个服务器上有一个mercurial,我如何克隆我的存储库到远程服务器,以便其他开发人员可以访问它并从/向它拉/推代码?

Ry4*_*ase 37

您需要查看发布存储库维基页面以进入Web界面和访问控制,但在最基本的情况下,您可以执行以下操作:

hg clone yourlocalrepo ssh://you@server//home/you/repo
Run Code Online (Sandbox Code Playgroud)

这会将您的本地仓库克隆到您选择的远程位置.请注意,该URL中有两个双斜杠.

您无法使用http://创建远程仓库,只能使用ssh://.如果您拥有的是http到hgweb.cgi,那么您可以在服务器上"hg init"一个空的repo,然后hg推送到它.


Dan*_*ner 8

如果您的"官方"存储库由HTTP服务器提供,并且您希望基于本地计算机的存储库在中心位置创建存储库,则这是一种方法. 您需要中央服务器上的管理员权限才能执行此操作.

例如,我正在Windows上开发,我的中央存储库在linux上运行,并根据官方指南由lighttpd提供服务.服务器的中央repo目录/var/hg/repos/由用户/组拥有www-data.我的本地机器的IP是10.1.10.100,我要克隆的存储库名为foo.

  1. 在本地计算机上,打开命令提示符进入存储库目录并键入hg serve.这将运行本地hg Web服务器,这将允许服务器从中提取.
  2. ssh进入中央repo服务器,以具有sudo权限的用户身份登录www-data.
  3. cd /var/hg/repos
  4. sudo -u www-data hg clone http://10.1.10.100 foo


Jos*_*ton 5

对于那些后来出现的,不想打扰ssh将更改推送到为托管回购协议而构建的服务器的麻烦的人,您可以在服务器上进行初始化,然后像其他所有回购协议一样进行推送。

# on server:
cd repos/
mkdir myrepo
cd myrepo
hg init
cd ..
chown -R apache:apache myrepo

cd ..
vim hgweb.config

# change [paths]
[paths]
myrepo = /path/to/myrepo



# on your machine

# make sure you've configured hgrc correctly
[paths]
default = http://server/hg/repos/myrepo

hg push

# ???

# profit
Run Code Online (Sandbox Code Playgroud)