我是Mercurial的新手,在評估過程中仍然以某種方式,所以這四個概念對我來說有點混亂。有人提到Git的分段/索引概念,或者甚至比Git的分段更好。如何將四個命令hg graft
,hg record
,hg qrecord
和hg shelve
(和hg transplant
,但這是Graft vs. Transplant解釋的話)進行相互比較,並隊列概念和dirstate怎麼樣?哪一個用例是另一個用戶選擇的?我知道每個人都有幫助頁面,但是很難弄清楚每個人都會做什麼,因爲一般來說VCS對我來說是一個新話題。Mercurial:移植vs病歷vs.qrecord vs擱置vs移植vsdirstate vs.隊列
11
A
回答
17
Mercurial的設計根本不包括暫存區域的概念。也就是說,本地修改和提交之間沒有中間狀態。
這裏是每一個你所提到的概念的概述:
hg graft
是git cherry-pick
等同。它將一個分支的提交複製到另一個分支。此功能的典型用例是將錯誤修復從一個發佈分支複製到另一個發行分支。該命令替換舊的(現在已過時的)hg transplant
擴展名。
hg record
和hg qrecord
類似於git add --patch
。它們允許您交互式地選擇提交的區塊。因此,如果您修改了一個文件的幾個不同區域,您可以選擇您實際要提交的區域(即區塊)以及要作爲本地修改離開的區域。
qrecord
僅在您啓用了mq
時纔可用。它承諾提供mq
補丁,而不是標準提交。
hg shelve
與git stash
相似。它允許您暫時將本地修改保留在文件(或文件的塊)中。當你準備好時,這些修改可以是unshelved
。
dirstate
是Mercurial源代碼的內部類。它不會暴露給用戶。
Mercurial Queues
(也被稱爲mq
)可能是最接近Mercurial中的臨時區域。以下是來自Mercurial wiki的描述:
更改將作爲提交到Mercurial的補丁進行維護。 提交可以被刪除或重新排序,並且可以根據工作目錄中所做的更改刷新基礎修補程序 。修補程序控制還可以將修補程序 目錄置於修訂控制之下,因此可以對修補程序進行更改的單獨歷史記錄。
mq
通常用於擦亮/返工您正在本地測試但未推送到公共位置的提交。有些人也使用它來維護對第三方代碼的一系列修改。
相關問題
- 1. vc6 vs vs2010移植錯誤
- 2. 理解vs只是翻譯,當移植
- 3. $ PWD vs. pwd關於可移植性
- 4. 可移植類庫vs類庫
- 5. Android上的可移植JDBC vs SQLite
- 6. 從VS 2003 .Net1.1移植到VS 2008 .Net 2.0
- 7. C++ deque vs隊列vs棧
- 8. 從VS 6.0移植到VS 2010的C++項目帶來了較慢的代碼
- 9. 如何將ASM代碼移植到VS 2008
- 10. .NET可移植可執行文件VS .NET程序集
- 11. JQM VS GWT移動VS煎茶
- 12. 從VS Professional轉移到VS Team System
- 13. 遷移從VS 2005到VS 2008
- 14. 從VS 2008遷移到VS2012或VS 2013
- 15. git vs mercurial performance
- 16. Redis隊列vs MSMQ
- 17. Microsoft消息隊列vs DDS vs數據庫vs WCF vs純文本文件?
- 18. vs vs 2008 vs vs 2010
- 19. Python的多處理隊列可靠性,隊列VS SimpleQueue VS JoinableQueue
- 20. 位置VS的GeoPoint VS 1E6 VS充電
- 21. Exec的VS ExecWait VS ExecShell VS nsExec :: Exec的VS nsExec :: ExecToLog VS nsExec :: ExecToStack VS ExecDos VS ExeCmd
- 22. FTP vs SFTP vs HDFS vs NTFS vs EXT2,EXT3
- 23. VS VS VS VS 11中的MVC測試
- 24. CGL vs AGL vs OpenGL vs NSOpenGL vs CoreAnimation(CALayer)
- 25. MobileNet VS SqueezeNet VS ResNet50 VS啓V3 VS VGG16
- 26. 移植物抗移植
- 27. NTOSKRNL.EXE VS NTKRNLMP.EXE VS NTKRNLPA.EXE VS NTKRPAMP.EXE
- 28. VS 2008 vs VS 2008 Express
- 29. RailwayJS vs Geddy vs Express vs Socket.IO
- 30. .NET vs ASP.NET vs CLR vs ASP
嫁接不是概念,並且與分段/索引不相關,記錄距離概念還很遠(概念是*記錄背後的想法*) –
而且您可以將**擱置**添加到「混淆列表」 –
謝謝,我更新了問題以區分「命令」和「概念」,並在列表中添加了兩個。 – Iodnas