単一の git 呼び出しで連続していない行の行情報を取得するために、複数の -L オプションを指定して git Blame -L を実行しています。
私はこの呼び出しを信じていました:
git blame -L38,38 -L40,40 <file>
別々に行われたこれら 2 つの呼び出しと同等である必要があります。
git blame -L38,38 <file>
git blame -L40,40 <file>
ただし、複数の -L オプションを使用すると、38 行目と 40 行目ではなく、実際には 38 行目と 39 行目が返されるという 1 つのケースに遭遇しました。
$ git blame -L38,38 -L40,40 <file>
b6543ffe (Some Body 2015-11-24 15:15:03 -0500 38) SOME CODE
b6543ffe (Some Body 2015-11-24 15:15:03 -0500 39) SOME OTHER CODE
-L40,40 が 1 つしかない場合、git は実際には 40 行目を正しく返します。
$ git blame -L40,40 <file>
b6543ffe259 (Some Body 2015-11-24 15:15:03 -0500 40) SOME CODE
-L が実際にどのように機能するかについて私が見逃しているものはありますか、それとも git のバグですか?
git バージョン 2.7.0.windows.1 と 2.11.0.windows.1 の両方を使用してみました。