2010-02-27 105 views
1

我在Google代码中创建了一个项目,并且正在使用Mercurial。将Mercurial变更集从我的本地克隆推送到“真正的”克隆?

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

我拉出来的farm-myclone副本,并开始添加文件,修改文件等

我用hg commit,然后hg push得到改变回到我的克隆的存储库。

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

难道我就这样做:

hg push [farm-myclone] to [farm] 

所以,无论我克隆的状态被推向真正的克隆?

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

感谢

回答

2

我想你已经有了一个更加克隆比实际需要:你也许并不需要“从农场myclone”对谷歌代码存在的。

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

我认为额外的“farm-myclone”存储库的存在令这个问题混淆不清。

+0

啊确定真正的你是对的,我不是该项目的所有者,所以店主让我之前创建一个名为“农场myclone”克隆。现在我已被授予完全提交访问权限,并且想知道上述情况是否有意义,如果我仍然想要首先提交给我自己的克隆副本的缓冲区?谢谢! – user246114 2010-02-27 23:10:18

+0

@ user246114:如果您认为自己可能处于想要将自己的更改发布到与以前的项目相分离的世界中,那么您可能需要创建自己的克隆。否则,在你知道你需要这样做之前不要担心。 – 2010-02-27 23:34:31

0

有没有像你建议的语法 - 我可以问你从哪里得到它?我很想改进文档,所以请让我们知道(最好在Mercurial mailinglist)我们如何改进hg help push的输出。

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

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

然后foo-clone将有http://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已经配置了Web服务器,以服务foo库的克隆。

我希望这有助于有点:-)