誰かがMoodleのバージョン(私に知られていない)をとり、ディレクトリ内で多くの変更を適用し、それをリリースしました(tree here)。Git:ディレクトリに最も近いコミットを見つけるにはどうすればよいですか?
元のプロジェクトのどのコミットがこのツリーを形成する可能性が最も高いと判断できますか?
これにより、このパッチで適切なコミットでブランチを形成することができます。確かにそれは1.8または1.9のブランチから来ています。おそらくはリリースタグから来ていますが、特定のコミット間の違いはそれほど役に立ちません。
死後更新:knittl's answer私は近くに私を得るつもりです。最初に私のパッチリポジトリをリモートの "foreign"(共通のコミットなし、OK)として追加し、次にいくつかのオプションを使ってループ内でdiffを実行しました。通じ掘るためにコミットの数千人がありましたが、あることをthis one思わ
for REV in $(git rev-list v1.9.0^..v1.9.5); do
git diff -U0 "$REV" f7f7ad53c8839b8ea4e7 -- mod/assignment | wc -l >> ~/rdiffs2.txt;
echo "$REV" >> ~/rdiffs2.txt;
done;
:
for REV in $(git rev-list v1.9.0^..v1.9.5); do
git diff --shortstat "$REV" f7f7ad53c8839b8ea4e7 -- mod/assignment >> ~/rdiffs.txt;
echo "$REV" >> ~/rdiffs.txt;
done;
秒ちょうどなしのコンテキストでunified diff形式で行の変更をカウント:最初--shortstat
形式が使用最も近いもの
か前者の後で、 'git bisect 'を使ってソースコミットを素早く開始することができます。スキニーのために 'git bisect --help'をチェックしてください。 –
これは今大変成功しています。 'cat rdiffs。txt | grep -oe '[0-9] * insertions' |ソート-n | head -n 10'(と同様のもの)を使用して手動検索を行うことなく変更の最小量を絞り込むことができます。 追加情報が見つかると便利です。 –