Back to TILs

Git - diff de imagens

Dizer ao git que imagem é imagem

Primeiro é necessário informar ao git para tratar imagens de um modo especial. Isso pode ser feito globalmente ou por projeto.

O comando abaixo diz ao git que algumas extensões são imagens.

git config --global core.attributesfile '~/.gitattributes'
cat ~/.gitattributes
*.gif diff=image
*.jpg diff=image
*.png diff=image

Dizer ao git como fazer o diff

O comando abaixo diz ao git qual programa executar para fazer o diff da imagem.

git config --global diff.image.command '~/bin/git-imgdiff'

O programa de diff

cat << 'EOF' > ~/bin/git-imgdiff
#!/bin/sh
# Descomente o modo que desejar

# 3 imagens lado a lado: NOVA | DIFF | ANTIGA
compare "$2" "$1" png:- | montage -geometry +4+4 "$2" - "$1" png:- | display -title "$1" -

# 1 imagem: DIFF
# compare "$2" "$1" png:- | display -title "$1" -
EOF
chmod 755 ~/bin/git-imgdiff

Referências