今天发现自己很困惑。
我在本地创建一个空白存储库(hg init),将其克隆到工作副本,添加一些代码,提交并推送它(显然是本地存储库)。
现在我需要与其他人共享该存储库。有一个服务器上有一个mercurial,如何将我的存储库克隆到远程服务器,以便其他开发人员可以访问它并从/向它提取/推送代码?
答案 0 :(得分:37)
您需要查看publishing repositories wiki页面以进入Web界面和访问控件,但最基本的是您可以执行以下操作:
hg clone yourlocalrepo ssh://you@server//home/you/repo
将您的本地仓库克隆到您选择的远程位置。请注意,该URL中有两个双斜杠。
您不能使用http://创建远程仓库,只能使用ssh://。如果您拥有http到hgweb.cgi的http,那么您可以在服务器上“hg init”一个空的repo,然后hg推送到它。
答案 1 :(得分:8)
如果您的“官方”存储库由HTTP服务器提供,并且您希望基于本地计算机的存储库在中心位置创建存储库,则这是一种方法。 您需要在中央服务器上拥有管理员权限才能执行此操作。
e.g。我正在开发Windows,我的中央存储库在linux上运行,每个the official guide由lighttpd提供服务。服务器的中央repo目录为/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
答案 2 :(得分:4)
对于那些后来出现并且不想为了将更改推送到为主机存储库构建的服务器而烦恼的ssh的麻烦,你可以只在服务器上初始化,然后按照你所做的每个其他repo进行推送。 / p>
# 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