我在Google代码中创建了一个项目,并且正在使用Mercurial。
我删除了该项目:farm-myclone
使用Google代码。
我拿出farm-myclone
的副本,然后开始添加文件,修改文件等等。
我使用hg commit
,然后使用hg push
将更改恢复到我的克隆存储库中。
现在我想将这些更改移动到真正的存储库中,名为farm
。
我是否只做以下事情:
hg push [farm-myclone] to [farm]
这样,无论我的克隆状态是什么,都会被推送到真正的克隆体?
是吗?我是SVN用户,所以这对我来说有点混乱。
由于
答案 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-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已将其网络服务器配置为提供foo
存储库的克隆,也可以。
我希望这有点帮助: - )