回答
沒有一個很好的價值。如果有的話,它已經是默認了。語言和文件類型在很大程度上是不相關的。重要的是文件的大小與您所做更改的大小相關。
如果您只是簡單地移動文件而不進行編輯,那麼100是最好的答案。 Mercurial可能不會做任何錯誤猜測什麼增加和刪除實際上是重命名。
如果您在移動大文件時對小文件進行小編輯,那麼90可能運行良好。除非你有一些非常相似的文件,否則Mercurial可能不會被愚弄。
如果您對小文件進行較大更改,則可能需要下至50來猜測重命名。但是Mercurial弄錯了兩個不同但相似的文件的機率現在非常大。
(爲便於比較,Git使用50%的啓發式默認情況下,比較和合並,但因爲它實際上並沒有記錄在歷史上重命名,有猜錯的永久缺點少。)
從(GUI)客戶端角度來看,我不想要求用戶輸入* every * addremove的百分比值。所以,如果沒有良好的單一默認值,用戶可以在例如「完全相同(我只是移動文件)」,「非常相似(我做了輕的重構)」,「狂野猜測(我重寫了所有內容)」,相當於100?,80 ?, 50? – mstrap
你可以找到通過運行Mercurial選項--dry-run
可以爲特定情況提供合適的值。 Mercurial不會執行任何操作,但會顯示它會執行的操作。您還會看到每個文件的相似性,因此您可以在執行實際操作之前調整您的值。
例子:
hg addremove --similarity 50 --dry-run
...
recording removal of ../contact_form/views.py as rename to contact_form/views.py (98% similar)
注意,bug 3430和release note 2012-06-01提的addremove
:
addremove
:雖然沒有文件默認相似行爲-s100
因此,「最好的價值「,-s100
(相同,簡單的動作沒有編輯它的)是默認的。
- 1. Android:使用默認建議的AutoCompleteTextView
- 2. 某個類的默認值
- 3. ng2-bootstrap typeahead默認建議
- 4. UserPrincipal.FindByIdentity使用哪種默認IdentityType類型?
- 5. typeahead.js默認選擇第一個建議
- 6. 建議類似的句子
- 7. 創建一個類似系統默認菜單的窗口?
- 8. SQLite的創建使用默認值
- 9. 哪個HTTP版本默認使用file_get_contents?
- 10. 哪個GPU默認爲Tensorflow使用
- 11. open()默認使用哪個目錄?
- 12. 哪個int類型var默認爲?
- 13. 哪個模板是新Java類的netbeans默認值?
- 14. 使用默認值
- 15. Android創建類似於默認OS菜單的佈局
- 16. mercurial默認分支消失
- 17. 使用默認值創建HBox組件
- 18. 使用默認值創建表格
- 19. 創建默認值
- 20. 使用默認值定義類
- 21. 使用默認值創建列NOT NULL
- 22. AS3默認值類
- 23. 如何更改IDEA建議的合理默認值的順序?
- 24. 的ActiveRecord ::使用默認值
- 25. readline的使用默認值
- 26. 如何將類值用作多個子類的默認值?
- 27. 使用默認值:Grails的
- 28. 您會建議如何返回不爲空的默認值?
- 29. Cloudfoundry,默認協議
- 30. 替換爲具有綁定規則和默認值的不建議使用的SQL Server用戶定義類型
投票結束(對於當前問題的形式):' - 相似性'用於檢測重命名的文件。如果在重命名時不更改相同變更集中的文件,則此效果最佳,然後「100」的默認值工作得很好。只要Mercurial認爲它是文本而不是二進制文件,文件和內容的類型就無關緊要。 –
@Joel ..但是當決定是否顯示差異時,Mercurial只會區分文本和二進制。否則,一切都是二元的。 – mpm
@mpm:我最後一句(內容無關緊要)是關於他最後一個問題(每種語言的價值)。這是我的理解,如果Mercurial認爲該文件不是二進制文件,它只會計算diff。 –