This answer顯示瞭如何降級提交到補丁,但是如何才能將mq補丁僅轉換爲本地更改?如何僅將Mercurial隊列修補程序轉換爲本地更改?
回答
簡短的回答
確保將補丁應用,然後:
hg qrefresh nothing
hg qpop --keep-changes
hg qdelete "Name of patch"
龍答案
首先,你需要確保沒有變化由補丁跟蹤。要做到這一點,使用
hg qrefresh nothing
nothing
僅僅是不是在倉庫一個隨機文件名。爲簡潔起見,我通常使用hg qref 0
。 hg qrefresh
接受可選的文件模式。如果提供了該補丁,補丁將跟蹤與該模式相匹配的更改 - 僅限於那些補丁。如果沒有與文件模式匹配的內容,修補程序將不跟蹤更改,因此只會進行本地更改。
現在你有一個無用的補丁躺在周圍,你有一些本地的變化。要清理,你可以做
hg qpop --keep-changes
彈出修補程序,即使存在本地更改。最後,以去除死,空和應用補丁,你可以使用
hg qrm "Name of patch"
不能刪除應用的補丁,這就是爲什麼你需要的hg qpop --keep-changes
一步。
(注:hg qrm
和hg qremove
是hg qdelete
別名)。
如果使用TortoiseHg
隨着TortoiseHg,出口補丁複製到剪貼板(工作臺>右鍵單擊該補丁>導出>複製修補程序),然後不應用修補程序,最後從目標爲「工作目錄」的剪貼板導入似乎可行。下面是一些屏幕截圖展示了這個過程:
'--keep-changes'不再是'hg qpop'的有效選項。根據'hg help qpop',似乎'--force'現在可以實現我們想要的功能: 「-f --force忘記修補文件的所有本地修改」 – sjbx
'hg qrefresh 0' failed with '該系統找不到指定的文件。' 我找到的替代方法(powershell語法):'hg qrefresh --exclude「$(hg root)」'。這告訴MQ排除存儲庫中的所有內容。無論出於何種原因,只是'.'不起作用,我不得不指定完整路徑(因此,'hg root')。 – moswald
@CraftyThumber我仍然看到'--keep-changes',而AFAICT'--force'會失去我們試圖保存的更改。 – moswald
的可以說是簡單的選擇:
hg qfinish qtip
hg strip -k tip
也就是說,完成補丁,然後刪除生成的承諾,同時保留其更改(-k
選項strip
) 。
- 1. 將mer修補程序轉換爲mercual
- 2. 如何將工作分成多個具有mercurial隊列的修補程序?
- 3. Mercurial隊列:合併補丁
- 4. 如何將兩個文本文件轉換爲字典(小修補程序)?
- 5. 將更多修補程序壓縮到一個修補程序
- 6. 難以分裂的mercurial修補程序
- 7. matplotlib更改PatchCollection中的修補程序
- 8. 更改修補程序中的文件名或編輯修補程序,使修補程序保持有效
- 9. 如何將隊列更改爲List?
- 10. 使用隊列的修補程序序列
- 11. 如何僅通過.Net設置或修補程序技術提供更改
- 12. 僅創建修改零件的修補程序
- 13. 如何從Mercurial創建SVN兼容的修補程序?
- 14. 針對舊版本導出mercurial修補程序
- 15. 如何修補Java程序?
- 16. 將Subversion版本庫轉換爲Mercurial
- 17. 將1.7 Subversion版本庫轉換爲Mercurial
- 18. 如何在使用mq合併mercurial中的分支時重新分配修補程序隊列?
- 19. 修改文件中的修補程序
- 20. 如何將Rietveld代碼審閱的原始補丁集轉換爲本地Mercurial存儲庫?
- 21. 如何將完整的二進制文件添加到Mercurial修補程序?
- 22. 將Git Repo轉換爲Mercurial
- 23. 將隊列轉換爲列表
- 24. 將列表轉換爲隊列
- 25. 爲分支中的所有更改創建diff修補程序?
- 26. 將本地Perforce工作區克隆/轉換爲Mercurial Repo
- 27. 如何自動將R更新爲最新的修補版本?
- 28. 發佈修補程序隊列的Git方法是什麼?
- 29. 如果修補程序隊列中的hg mq中的單個修補程序內發生太多更改,該怎麼辦?
- 30. 如何將此腳本轉換爲自定義的mercurial命令?
對不起,但是mq-patch **已經是「僅本地更改」了,AFAIK。你爲什麼要更多東西? –
「本地更改」是Mercurial術語,用於不在更改集中或由Mercurial修補程序跟蹤的更改。可能有幾個原因希望將補丁轉換回本地更改。無論如何,我需要這樣做幾次,並沒有找到堆棧溢出的答案,也沒有通過谷歌搜索(我不得不RTFM),所以當我發現它的情況下分享了答案,以防其他人想要做同樣的事情。 – Lstor