LINUX.ORG.RU

Почему в Git один и тот же комммит показывает разные изменения?

 ,


0

3

Что-то я затупил. Имею репозитарий:

git clone https://invent.kde.org/utilities/konsole.git

Нахожу в нем следующий коммит, который содержит изменение для файла /src/Profile.cpp:
commit 9ea9d62785193ec06a8f37090dd6e7940626e1b8
Author: Jekyll Wu <adaptee@gmail.com>
Date:   Mon Oct 10 16:23:22 2011 +0800

    Reimplement the feature of "show/hide the size widget after resising"
    
    This is a follow up of commit b40a006d which closees BUG 169054.
    It turns out the old code already has most parts of similar logic.
    So remove duplicated logic in the code.

diff --git a/src/Profile.cpp b/src/Profile.cpp
index 06ef51960..d9706d17b 100644
--- a/src/Profile.cpp
+++ b/src/Profile.cpp
@@ -76,7 +76,7 @@ const Profile::PropertyInfo Profile::DefaultPropertyNames[] =
...skipping...
+    , { BoldIntense, "BoldIntense", APPEARANCE_GROUP, QVariant::Bool }

     // Keyboard
     , { KeyBindings , "KeyBindings" , KEYBOARD_GROUP , QVariant::String }
@@ -179,6 +180,7 @@ FallbackProfile::FallbackProfile()

     setProperty(DefaultEncoding,QString(QTextCodec::codecForLocale()->name()));
     setProperty(AntiAliasFonts,true);
+    setProperty(BoldIntense,true);

     // default taken from KDE 3
     setProperty(WordCharacters,":@-./_~?&=%+#");

Я переключаюсь на него:
git checkout 9ea9d62785193ec06a8f37090dd6e7940626e1b8

И снова смотрю изменения файла /src/Profile.cpp для этого же коммита:
commit 9ea9d62785193ec06a8f37090dd6e7940626e1b8 (HEAD)
Author: Jekyll Wu <adaptee@gmail.com>
Date:   Mon Oct 10 16:23:22 2011 +0800

    Reimplement the feature of "show/hide the size widget after resising"

    This is a follow up of commit b40a006d which closees BUG 169054.
    It turns out the old code already has most parts of similar logic.
    So remove duplicated logic in the code.

diff --git a/src/Profile.cpp b/src/Profile.cpp
index 06ef51960..d9706d17b 100644
--- a/src/Profile.cpp
+++ b/src/Profile.cpp
@@ -76,7 +76,7 @@ const Profile::PropertyInfo Profile::DefaultPropertyNames[] =
     , { LocalTabTitleFormat , "tabtitle" , 0 , QVariant::String }
     , { RemoteTabTitleFormat , "RemoteTabTitleFormat" , GENERAL_GROUP , QVariant::String }
     , { ShowMenuBar , "ShowMenuBar" , GENERAL_GROUP , QVariant::Bool }
-    , { ShowSizeWidget , "ShowSizeWidget" , GENERAL_GROUP , QVariant::Bool }
+    , { ShowTerminalSizeHint , "ShowTerminalSizeHint" , GENERAL_GROUP , QVariant::Bool }
     , { SaveGeometryOnExit , "SaveGeometryOnExit" , GENERAL_GROUP , QVariant::Bool }
     , { TabBarMode , "TabBarMode" , GENERAL_GROUP , QVariant::Int }
     , { TabBarPosition , "TabBarPosition" , GENERAL_GROUP , QVariant::Int }
@@ -161,7 +161,7 @@ FallbackProfile::FallbackProfile()
     setProperty(TabBarPosition,TabBarBottom);
     setProperty(NewTabBehavior,PutNewTabAtTheEnd);
     setProperty(ShowMenuBar,true);
-    setProperty(ShowSizeWidget,true);
+    setProperty(ShowTerminalSizeHint,true);
     setProperty(SaveGeometryOnExit,true);
     setProperty(StartInCurrentSessionDir,true);
     setProperty(ShowNewAndCloseTabButtons,false);

И эти изменения совершенно другие. Хотя хеш и описание коммита - те же самые. Как так то? Какие изменения на самом деле были то?

★★★★★
Ответ на: комментарий от Xintrea

Вопрос теперь в том, как контролировать что выхлоп был укорочен.

А зачем? Ну клавишей «Home» можно перейти в начало. Если ты пытаешься опираться на RAW-выхлоп утилиты less в Terminal, это значит что ты явно делаешь что-то не так. Варианты как генерировать корректные патчи я написал выше.

А в less работает поиск внутри отброшенного текста?

Да, конечно.

А как отличать эту строку «…skipping…» от строки «…skipping…» которая просто может быть написана в тексте?

Не опираться на выхлоп less и использовать его только для беглого просмотра изменений.

EXL ★★★★★
()