[英]git log shows added / removed - is there a way to show modified lines
[英]Show number of rows added, MODIFIED, and removed with git stats
這個問題出現在 2018 年初的補丁提案中。
菲利普伍德試圖突出“修改線條”的概念。
(他的補丁的簡化版本在這里制作)
當一組行被修改時,大塊包含刪除和插入。
為了正確暫存修改行的子集,我們需要將選定的刪除與選定的插入相匹配,否則我們最終會得到刪除和上下文行,然后是我們不想要的插入。
這最終變得棘手:
為了實現分段修改的行,代碼需要將每個刪除的行與其替換配對。
它通過將連續選定的行組合在一起來實現這一點,因此它具有一組已刪除行的列表和另一個插入行的列表,然后根據它們在列表中的索引對刪除和插入進行配對。
菲利普開始懷疑:
我開始明白為什么所有其他節目我試圖在寫這篇(
tig
,gitg
,gitk
和mercurial
的版本add -i
)不作任何企圖修改階段,正確行,但我認為的Git應該有某種方式做到這一點。
Git Junio C. Hamano 的主要維護者 Qnd 證實了這些疑慮,並給出了以下答案:
是的,這是一種功能,人們可以提出和實施一些適用於某些有限情況的功能,但不適用於其他情況。
並且很難解釋如何解決實現限制——這就是為什么我停在“拆分這個大塊?” 並且在我設計原始的“增量添加”功能時並沒有超越它。我想真正的難點在於“舞台修改台詞”中對“修改”沒有很好的定義。
更糟糕的是,沒有好的方法可以機械地弄清楚,因為補丁只給你“這些被刪除了”和“這些被添加了”,而沒有給你“刪除塊中的這一行對應於添加中的這兩行塊”(即“這個原來的一行在結果中被修改成這個東西”)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.