我是Mercurial HG的新手。我的朋友創建了一個回購,我將使用它。 我安裝了TortoiseHG並試圖獲取最新的代碼。我發現使用克隆操作時,它會將所有代碼拉到我的本地,包括歷史記錄(對嗎?)。這不是我需要的。我只想得到最新的代碼。是否有這樣的操作?使用Mercurial HG時,如何獲取最新的代碼?
回答
總之,沒有。
稍微長一點:Mercurial還不支持「淺」克隆,只有部分歷史記錄。因此,每次克隆時,都會使用所有變更集來引入整個存儲庫。
此外,與Subversion不同,無法制作「窄」克隆,您只需簽出一部分存儲庫。例如,如果存儲庫具有目錄foo/
和bar/
,則無法僅獲取bar/
目錄。換句話說,Mercurial總是運行在項目範圍的快照上。
對於Mercurial而言,似乎歷史是一件重要的事情。它將永遠包含整個歷史。 – DeepNightTwo 2010-11-18 07:44:18
我改變了我們通常在Mercurial中使用的答案中的術語:當您僅獲取歷史的一部分時,我們會討論「淺」克隆,當您只獲取部分文件樹時,會討論「狹義」克隆。 – 2010-11-19 15:04:40
人們已經爲淺層克隆製作了原型,但它們尚未成爲主要發行版的一部分。 – 2010-11-19 15:06:29
一旦你克隆了一個倉庫,爲了得到「小費」的代碼(當前分支的最後一個版本 - 如果不是精確的話,默認的那個),你只需要update
。
您在TortoiseHG有更新操作。完成後,您可以查看文件夾中的文件。
如果你想存儲庫(舊版本,或舊標籤的狀態)的另一種狀態,那麼它仍然是update
命令,與其他parametters(見文檔或TortoiseHG接口)。
謝謝你告訴我的! – DeepNightTwo 2010-11-18 07:44:38
如果你只想要最新的代碼,並且你不打算做與存儲庫相關的任何事情,比如提交,或比較舊的版本,或者其他什麼,那麼這取決於你獲得代碼的位置從和如何。
如果他使用的是其中一種託管服務,比如bitbucket,那麼通常會有一個下載鏈接,它只提供源代碼。
舉例來說,如果你去here,有一個「獲取源」聯繫了起來,並賦予你的文件格式幾個選擇(zip或諸如此類的東西。)
如果你有這些文件的某處權否則,你需要探索你從他們得到的界面。嘗試將您克隆的鏈接粘貼到瀏覽器中,然後查看獲得的內容。
我確實需要進行簽入和添加文件等操作。儘管如此,我仍將Mercurial視爲SVN ...... – DeepNightTwo 2010-11-18 07:43:24
當然。克隆存儲庫,然後刪除.hg子目錄。
問題是,它仍然投入大量時間克隆整個回購。看來它必須...... – DeepNightTwo 2010-11-18 07:31:41
其實並不是這樣糟糕的解決方法。 – Marian 2014-09-22 11:17:00
最簡單的方式來實現你想要的:
hg archive [destination folder]
要拉只變更集的一個子集,指定一個或多個版本 標識符與-R/- 轉或分支機構,-b/- 科。生成的 克隆將只包含指定的更改集及其祖先。
例如, hg clone -b NeededBranch http://example.com/myRepo
問題是如何在不拉動歷史的情況下克隆,拉動祖先在大多數使用情況下仍然會拉動很多歷史。 – 2015-12-23 22:07:25
@YaakovKuperman:這可能是一次拉動歷史,如果從那時起歷史被削減。但是你是對的,在大多數情況下,這不會很大程度上減少歷史的總體規模。這種技術對於處理混亂的合併衝突情況更有用。 – Yitz 2016-01-07 09:12:37
我可能是有點晚了,但實際上它是可以忘記一些歷史與水銀。您只需要啓用從您的mercurial.ini文件或。hgrc文件。
[extensions]
hgext.convert=
現在,您可以使用convert擴展名來僅克隆從指定修訂版開始的變更集。
hg convert --config convert.hg.startrev=[wheretostart] path_to_full_history_repo path_to_new_repo
只要注意,這是不是符合HG克隆相同的操作。這就是爲什麼源存儲庫必須是本地存儲庫。例如,如果我們在文件夾中MyProject的一個倉庫,我們要忘記修改100之前完成所有的變化我們可以使用下面的命令:
hg convert --config convert.hg.startrev=[100] MyProject MyShrinkedProject
如果你要使用這個縮小庫放在「中心服務器「記得要照顧每個人在繼續工作之前克隆它。存儲庫不再相互兼容。
這個答案假定可以一次完成一個完整的克隆,並且從那時起只使用一個部分克隆。如果您確實需要一些歷史記錄,但只回到某個修訂版本,這是一個很好的解決方案。如果你想從頭開始沒有歷史記錄:1.從一個完整的克隆開始。 2.運行hg清單並將結果保存到文件中。 3.刪除.hg文件夾。 4.運行hg init。 5.在保存的文件列表上運行hg add。 – Yitz 2016-01-07 09:10:14
- 1. 如何獲取最近使用的Mercurial(hg)書籤列表?
- 2. 使用Mercurial時的替代例程Hg
- 3. 獲取mercurial「hg commit」使用Notepad ++
- 4. CentOS最好的Mercurial(Hg)GUI?
- 5. 如何在Mercurial中使用hg push
- 6. 獲取最新源代碼
- 7. Mercurial SCM - 'hg'代表什麼?
- 8. HG-如何推動現有的源代碼,以新創建庫
- 9. 如何還原Mercurial hg pull?
- 10. 在Mercurial(hg)中,如何查詢hg數據庫以獲取變更集信息?
- 11. hg log:如何獲得特定用戶的最新提交?
- 12. 如何使用主代碼庫中的最新代碼更新我自己的Mercurial Fork?
- 13. hg log - 如何獲取最後5個日誌條目?
- 14. 如何使用TortoiseHg(Mercurial)下載代碼
- 15. Mercurial hg merge default
- 16. Mercurial - 何時使用更新
- 17. 如何取消hg pull和更新?
- 18. Mercurial:已有文件的hg更新
- 19. Mercurial(HG)拉取參數:用戶名和密碼
- 20. 如何知道OpenShift 3獲取最新的源代碼?
- 21. 如何使用hg更新獨立計算機上的源代碼?
- 22. Eclipse PDT和Hg(Mercurial)
- 23. 如何使用mercurial hg刪除bitbucket中的分支?
- 24. 如何將新項目推送到我的hg mercurial URL?
- 25. 如何在Python應用程序中使用mercurial(Hg)?
- 26. 使用Mercurial hg bundle和hg export vs合併?
- 27. 如何使用Jquery獲取代碼?
- 28. Mercurial - 使用hg log查看所有後代
- 29. hg更新刪除後,我可以取回我的代碼更改嗎?
- 30. 如何使用時間刷新代碼
謝謝你們所有的人!雖然我仍然需要克隆整個回購,但我從每一個回答中都能更多地瞭解Mercurial HG! – DeepNightTwo 2010-11-18 07:33:02