回答
沒有一個很好的價值。如果有的話,它已經是默認了。語言和文件類型在很大程度上是不相關的。重要的是文件的大小與您所做更改的大小相關。
如果您只是簡單地移動文件而不進行編輯,那麼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. 某個類的默認值
- 2. ng2-bootstrap typeahead默認建議
- 3. UserPrincipal.FindByIdentity使用哪種默認IdentityType類型?
- 4. 創建一個類似系統默認菜單的窗口?
- 5. SQLite的創建使用默認值
- 6. 哪個GPU默認爲Tensorflow使用
- 7. 哪個模板是新Java類的netbeans默認值?
- 8. Android創建類似於默認OS菜單的佈局
- 9. 使用默認值創建HBox組件
- 10. 使用默認值定義類
- 11. 使用默認值創建列NOT NULL
- 12. AS3默認值類
- 13. mercurial默認分支消失
- 14. 如何更改IDEA建議的合理默認值的順序?
- 15. 的ActiveRecord ::使用默認值
- 16. 如何將類值用作多個子類的默認值?
- 17. 使用默認值:Grails的
- 18. 什麼是OWA_UTIL.ident_arr的類似於NULL的默認值?
- 19. 您會建議如何返回不爲空的默認值?
- 20. 的默認值使用JsonConverter而忽略默認值
- 21. 替換爲具有綁定規則和默認值的不建議使用的SQL Server用戶定義類型
- 22. Maven:使用另一個類的默認值創建插件變量?
- 23. 類似CLI的時區選擇建議
- 24. 如何使用特定(非默認)類打開文件/協議
- 25. 使用RequestHandlerRetryAdvice爲每個類的建議
- 26. 默認的outputcache類在哪裏?
- 27. 默認的mb_internal_encoding()值來自哪裏?
- 28. 似乎無法使用默認值工作
- 29. ConfigParser默認使用int值
- 30. 默認值不使用ngModel
投票結束(對於當前問題的形式):' - 相似性'用於檢測重命名的文件。如果在重命名時不更改相同變更集中的文件,則此效果最佳,然後「100」的默認值工作得很好。只要Mercurial認爲它是文本而不是二進制文件,文件和內容的類型就無關緊要。 –
@Joel ..但是當決定是否顯示差異時,Mercurial只會區分文本和二進制。否則,一切都是二元的。 – mpm
@mpm:我最後一句(內容無關緊要)是關於他最後一個問題(每種語言的價值)。這是我的理解,如果Mercurial認爲該文件不是二進制文件,它只會計算diff。 –