2010-04-12 45 views
1

我正在執行持續集成的系統,我正在尋找一種方法,可以使用它從Mercurial存儲庫獲取最新的變更集,而無需在本地創建存儲庫。是否可以在不創建本地存儲庫的情況下從Mercurial獲取最新的一組文件?

我一直在使用clone考慮,但如果你設置了一個工作目錄本地(因爲這將構建服務器上發生的,我不想這樣做,因爲列入.hg文件和的這個這個方法纔有效差異 - 我想要的基本上是從頂端修訂版的文件導出,僅此而已。)

這個請求可能不可能,而且很可能我不太瞭解DVCS。但是,如果我不能做我想做的事情,是否有解決方法?

+0

爲什麼不克隆然後刪除.hg目錄? – hwiechers 2010-04-12 22:10:45

+0

@hwiechers - 我可能必須這樣做,但是我想避免隨着我實際需要的文件拉動整個更改歷史 – 2010-04-13 13:28:46

+0

rasch如果您只是保持資源庫,它只需要拉動更改,右鍵?也會快得多。 – 2010-04-13 19:00:33

回答

4

根據遠程存儲庫的設置方式,可以使用'hg archive'。

如果它可通過HTTP使用hgweb.cgihg serve,則可以通過編程方式點擊存檔鏈接以獲取所需的文件。例如:

wget https://www.mercurial-scm.org/repo/hg/archive/tip.zip --output-document=- | unzip - 

,或者通過SSH的可用:

ssh [email protected] hg archive --type=zip - | unzip - 
2

您可以使用:

$ hg clone http://your_repo 
$ hg archive ../export/ 
$ rm -rf * 
$ cd .. 
$ cd export 

從Mercurial的幫助文件:

$ hg help archive 

汞存檔[選項] ... DEST

創建 庫的一個無版本的存檔修訂版

+0

當我這樣做,我得到一個「存儲庫不是本地的」錯誤......這似乎與每個命令發生,有沒有辦法解決這個問題? – 2010-04-12 21:36:31

+0

好的約翰。更新可能有所幫助... – 2010-04-12 22:13:24

+0

感謝您的更新,不幸的是,如果我在使用歸檔之前克隆回購,那麼我仍然抓住了整個歷史......但是現在似乎沒有辦法做到這一點我會在我之前做一些工作 – 2010-04-13 15:30:46

1

您可以使用:

http://merc/raw-file 

來檢索庫或文件的列表

http://merc/raw-file/filename 

得到一個特定的文件。

相關問題