今天发现自己对此很困惑。我在本地创建一个空白的仓库(hg init),将它克隆到工作副本,添加了一些代码,提交并推送它(显然是本地仓库)。如何使用Mercurial将存储库克隆到远程服务器/存储库
现在我需要与他人共享该存储库。有一个服务器上有mercurial,我如何克隆我的存储库到远程的,使其他开发人员可以访问它,并从/拉/推代码?
今天发现自己对此很困惑。我在本地创建一个空白的仓库(hg init),将它克隆到工作副本,添加了一些代码,提交并推送它(显然是本地仓库)。如何使用Mercurial将存储库克隆到远程服务器/存储库
现在我需要与他人共享该存储库。有一个服务器上有mercurial,我如何克隆我的存储库到远程的,使其他开发人员可以访问它,并从/拉/推代码?
你要检查出publishing repositories维基页面进入web界面和访问控制,但它是最基本的,你可以做这样的事情:
hg clone yourlocalrepo ssh://[email protected]//home/you/repo
那克隆你的本地仓库到您选择的远程位置。请注意,该网址中有两个双斜线。
您不能使用http://创建远程回购,只有ssh://。如果你只有http到hgweb.cgi,你可以在服务器上'hg init'一个空的repo,然后hg推送它。
如果您的“官方”存储库由HTTP服务器提供,并且您希望基于本地机器的回购在中央位置创建存储库,以下是一种方法。 您需要中央服务器上的管理员权限才能执行此操作。
例如我在Windows上开发,我的中央资源库在linux上运行,由lighttpd根据the official guide提供服务。服务器的中央回购目录是/var/hg/repos/
,由用户/组www-data
拥有。我的本地计算机的IP为10.1.10.100,我想克隆的存储库名为foo。
hg serve
。这将运行本地hg Web服务器,这将允许服务器从中取出它。cd /var/hg/repos
sudo -u www-data hg clone http://10.1.10.100 foo
+1用于记录通常的技术......我厌倦了常用的技术,因此我打算在python中编写一个cgi(网页),以便从任何授权主机为您执行hg clone命令。 – 2011-06-24 18:57:38
对于那些还在后面,不想理会的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
不是一个坏主意,也可以转换成cgi助手 - 网页。首先在服务器上创建,克隆空白的,然后将其设置为集中式工作流程。 – 2011-06-24 18:58:45
很酷,谢谢,但其他人怎么克隆呢? – 2010-06-03 04:28:21
如果允许他们从您的homedir中读取,他们可以从ssh:// you @ server // home/you/repo克隆。如果你不满意,你可以设置一个你可以读写的区域。 – 2010-06-03 16:43:25