亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

git diff --patience是什么意思?

git diff --patience是什么意思?

Git
米琪卡哇伊 2019-12-10 10:16:29
耐心算法與默認git diff算法有何不同?我何時要使用它?
查看完整描述

3 回答

?
吃雞游戲

TA貢獻1829條經驗 獲得超7個贊

相反,Patience Diff將精力集中在低頻高含量行上,這些行用作文本中重要內容的標記或簽名。它的核心仍然是基于LCS的差異,但有一個重要區別,因為它僅考慮簽名行的最長公共子序列:


找到在兩側恰好發生一次的所有行,然后在這些行上執行最長的公共子序列,使其匹配。


什么時候應該使用耐心差異?根據Bram的說法,耐心差異對這種情況有好處:


真正糟糕的情況是,兩個版本的差異很大,開發人員并不小心控制補丁大小。在這種情況下,diff算法有時會變得“錯位”,因為它會將大括號的花括號匹配在一起,但最終會使一個版本中的函數的花括號與另一版本中的下一個后面的函數的花括號相關聯。這種情況非常丑陋,并且在您最需要最連貫呈現這種情況的情況下,可能導致完全無法使用的沖突文件。


查看完整回答
反對 回復 2019-12-10
?
慕斯709654

TA貢獻1840條經驗 獲得超5個贊

您也可以將其用于合并(對于某些XML沖突,在這里工作得很好):


git merge --strategy-option=patience ...


查看完整回答
反對 回復 2019-12-10
?
胡說叔叔

TA貢獻1804條經驗 獲得超8個贊

耐心差異算法是一種較慢的差異算法,在某些情況下顯示出更好的結果。


假設您已將以下文件簽入到git中:


.foo1 {

    margin: 0;

}


.bar {

    margin: 0;

}

現在,我們對各節進行重新排序并添加新行:


.bar {

    margin: 0;

}


.foo1 {

    margin: 0;

    color: green;

}

默認的diff算法聲稱部分標題已更改:


$ git diff --diff-algorithm=myers   

diff --git a/example.css b/example.css

index 7f1bd1e..6a64c6f 100755

--- a/example.css

+++ b/example.css

@@ -1,7 +1,8 @@

-.foo1 {

+.bar {

     margin: 0;

 }


-.bar {

+.foo1 {

     margin: 0;

+    color: green;

 }

而耐心差異顯示的結果可以說更直觀:


$ git diff --diff-algorithm=patience

diff --git a/example.css b/example.css

index 7f1bd1e..6a64c6f 100755

--- a/example.css

+++ b/example.css

@@ -1,7 +1,8 @@

-.foo1 {

-    margin: 0;

-}

-

 .bar {

     margin: 0;

 }

+

+.foo1 {

+    margin: 0;

+    color: green;

+}


查看完整回答
反對 回復 2019-12-10
  • 3 回答
  • 0 關注
  • 572 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號