2010-02-27 115 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庫的克隆。

我希望這有助於有點:-)