Como posso encontrar o git commit em um repositório que é mais semelhante a um branch especificado?

3

Eu tenho uma filial em um repositório do git. Como posso encontrar o commit único no repositório que mais se aproxima do branch? Como se eu executasse um diff, entre este branch e todos os outros commits no repositório, eu quero encontrar o commit que produza a menor quantidade de linhas de diff.

    
por Matt Alexander 01.05.2014 / 17:22

1 resposta

1

Esta foi a minha solução:

#!/bin/sh

start_date="2012-03-01"
end_date="2012-06-01"
needle_ref="aaa"

echo "" > /tmp/script.out;
shas=$(git log --oneline --all --after="$start_date" --until="$end_date" | cut -d' ' -f 1)
for sha in $shas
do
    wc=$(git diff --name-only "$needle_ref" "$sha" | wc -l)
    wc=$(printf %04d $wc);
    echo "$wc $sha" >> /tmp/script.out
done
cat /tmp/script.out | grep -v ^$ | sort | head -1 | cut -d' ' -f 2
    
por 01.05.2014 / 18:12

Tags