2010-06-14 22 views
1

我已經嘗試在Tortoise HG中使用archive,方法是打開我的repo更改日誌。這似乎沒有像SVN的export命令,我可以簡單地將遠程存儲庫導出到當前目錄。我使用它來獲得我的生產源代碼的簡潔副本(沒有註釋和存儲庫數據)。我怎麼能在HG裏做這樣的事情?或者,我應該只使用克隆並手動處理回購相關數據?Mercurial - 您如何將您的回購貨源輸出到生產現場?

順便說一句,我需要通過命令行執行此操作,因爲我不打算在Linux服務器上使用Tortoise HG。

任何幫助,非常感謝。

回答

6

由於其他回覆指出hg archive可以做你想做的 - 它會做檔案文件或只是一個文件佈局,但是如果你可以在服務器上運行mercurial,我可以建議使服務器成爲一個克隆,只要收到新的變更集就會更新?只要你不在活服務器上編輯,就不會有合併衝突,所以這是一個安全的行爲。

在服務器上:

hg clone ssh://host//path/to/dev/repo 

,並在服務器的.hg/hgrc文件中添加這些行

[hooks] 
changegroup = hg update 

然後當你在開發回購更新部署你只是做:

hg push ssh://server/path/to/deployrepo 

,然後你可以從你的回購推送到你的服務器,它會自動更新。

+0

這很酷。如果我想將我的存儲庫託管在BitBucket上,並通過我的服務器直接從他們那裏獲取源代碼,該怎麼辦? – orokusaki 2010-06-14 18:57:31

+0

這將工作得很好。登錄到您的服務器並執行hg pull然後進行hg更新。 – 2010-06-15 04:03:14

8

你想要archive選項我想......

嘗試:

hg help archive 

您可以導出存檔的只是文件,或焦油/ ​​ZIP /等。

關鍵在於,在存檔中,您可以從回購開始並指定目的地,而在顛覆中您在目的地開始並指定回購地點。

除了clone和相關命令外,Mercurial似乎沒有很多選項可用於遠程存儲庫。

+0

因此,我可以執行'archive'並以某種方式將存儲庫的URI傳遞給該函數,並將文件帶到我的當前目錄中?這是我以前的嘗試,但我必須有一些語法錯誤,或者什麼。 – orokusaki 2010-06-14 18:54:43

+0

@orokusaki - 從存儲庫中執行'archive'命令,並在args中指定所需的輸出位置。 – 2010-06-14 19:06:53

4

如果您希望輸出目錄不含所有存儲庫數據,只需在克隆後刪除.hg目錄即可。

+0

我只是擴展了這個答案:只需刪除開始.hg(.hgignore,.hgtags等)的所有內容。所以rm -rf .hg * – 2014-10-02 14:00:09

相關問題