Кто-то взял неизвестную мне версию Moodle, применил много изменений в каталоге и выпустил ее ( дерево здесь ).
Как определить, какой коммит исходного проекта наиболее вероятно был отредактирован для формирования этого дерева?
это позволило бы мне сформировать ветку при соответствующем коммите с этим патчем. Конечно, это произошло из веток 1.8 или 1.9 , возможно, из тега релиза, но различие между конкретными коммитами мне мало помогает.
Посмертное обновление: ответ Knittl подобрал меня настолько близко, насколько я собираюсь получить. Сначала я добавил свой патч-репо в качестве удаленного «чужого» (никаких общих коммитов, это нормально), затем сделал различий в циклах с парой опций формата. Первый использовал формат --shortstat
:
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;
Второй просто посчитал изменения строки в унифицированном diff без контекста:
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;
Было прорвано тысячи коммитов, но этот , кажется, самый близкий.