1 つのファイル内のコードの動きを検出するために git Blame -M を使用すると、自分では説明できない結果が得られます。
まず、次のファイル (file.cpp) をコミットします。
void func1(){return;}[CR][LF]
int func2(){return 23;}[CR][LF]
次に、最初の行にあったものを移動し、代わりに何か新しいものを追加して変更します。
float newFunc(){return 23.0;}[CR][LF]
int func2(){return 23;}[CR][LF]
[CR][LF]
[CR][LF]
void func1(){return;}[CR][LF]
ログは次のようになります。
>git log --oneline -2
18c670f modified file.cpp
92b4186 added file.cpp
今、私は責任を負います:
git blame -s -w -M file.cpp
18c670fa 1) float newFunc(){return 23.0;}
92b4186d 2) int func2(){return 23;}
18c670fa 3)
18c670fa 4)
18c670fa 5) void func1(){return;}
func1() を含む行が移動したと認識されないのはなぜでしょうか。必要な文字数を減らそうとしました (つまり、-M4 など)。さらに、 -w オプションがあるため、スペースは問題になりません。