1

我在 Google 代码中创建了一个项目,并为此使用 Mercurial。

我做了一个项目的克隆:farm-myclone在谷歌代码上。

我取出 的副本farm-myclone,然后开始添加文件、修改文件等。

我使用hg commit, 然后hg push将更改返回到我的克隆的存储库中。

现在我想将这些更改移动到真正的存储库中,名为farm.

我只是做类似的事情:

hg push [farm-myclone] to [farm]

这样无论我的克隆的状态是什么都会被推送到真正的克隆?

是对的吗?我是 SVN 用户,所以这让我有点困惑。

谢谢

4

2 回答 2

2

我认为您的克隆比实际需要的要多:您可能根本不需要在 Google 代码上存在“farm-myclone”。

如果该主项目只是称为“农场”,那么当您运行克隆它时,您会在本地机器上hg clone获得一个克隆。这个克隆在所有方面都是一个完整的 Mercurial 存储库。当您准备好发布您的更改以供全世界查看时,请使用将它们推送到“农场”存储库。hg push

我认为额外的“farm-myclone”存储库的存在使问题变得混乱。

于 2010-02-27T23:04:46.157 回答
0

没有像你建议的那样的语法——请问你是从哪里得到的?我很想改进文档,所以请让我们知道(最好在Mercurial 邮件列表上)我们如何改进hg help push.

至于你的问题,我同意格雷格的观点——你似乎有一个不需要的克隆。通常,您只会有一个其他克隆可供推/拉。当你这样做

hg clone http://example.org/foo foo-clone

然后foo-clone将具有http://example.org/foo其默认的推/拉路径。这意味着一个简单的

hg pull

inside offoo-clone足以从中提取最新更改http://example.org/foo

默认路径存储在foo-clone/.hg/hgrc其中,欢迎您添加其他路径和/或更改默认路径。所以hgrc文件可能如下所示:

[路径]
默认 = http://example.org/foo
爱丽丝 = http://other-domain.org/foo
实验 = /home/me/foo-experiment

然后,您可以使用hg pull alice来获取她的更改或hg push experiment推送到您自己的本地实验克隆。

这些只是快捷方式,您始终可以使用显式 URL 推/拉:

hg pull http://bobs-world.org/foo

works as well, if Bob has configured his webserver to serve a clone of the foo repository.

I hope this helps a bit :-)

于 2010-02-28T12:54:48.550 回答