将Mercurial变更集从我的本地克隆推送到“真正的”克隆?

时间:2010-02-27 22:58:37

标签: mercurial google-code

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

我删除了该项目:farm-myclone使用Google代码。

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

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

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

我是否只做以下事情:

hg push [farm-myclone] to [farm]

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

是吗?我是SVN用户,所以这对我来说有点混乱。

由于

2 个答案:

答案 0 :(得分:2)

我认为你还有一个克隆而不是你实际需要的东西:你可能根本不需要在Google Code上存在“farm-myclone”。

如果该主项目名为“farm”,那么当您运行hg clone进行克隆时,您将在本地计算机上获得克隆。此克隆在所有方面都是完整的Mercurial存储库。当您准备好发布世界其他地方的更改以查看时,请使用hg push将其推送到“服务器场”存储库。

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

答案 1 :(得分:0)

没有你建议的那种语法 - 请问你从哪里得到它?我希望改进文档,所以请告诉我们(最好是Mercurial mailinglist)我们如何改进hg help push的输出。

至于你的问题,那么我同意格雷格 - 你似乎有一个不需要的克隆。通常,您只需要推送/拉出一个其他克隆。当你这样做

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

然后foo-clonehttp://example.org/foo作为其默认的推/拉路径。这意味着一个简单的

hg pull
foo-clone内的

足以从http://example.org/foo中提取最新的更改。

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

[paths]
default = http://example.org/foo
alice = http://other-domain.org/foo
experiement = /home/me/foo-experiment

然后,您可以使用hg pull alice进行更改,或hg push experiment推送到您当地的实验克隆。

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

hg pull http://bobs-world.org/foo
如果Bob已将其网络服务器配置为提供foo存储库的克隆,

也可以。

我希望这有点帮助: - )