web-dev-qa-db-fra.com

Couleur Git diff au HTML

J'aime utiliser git diff --color-words pour voir clairement les mots qui ont changé dans un fichier:

Screenshot

Cependant, je veux partager ce diff avec quelqu'un sans git ou un terminal de couleur d'ailleurs. Alors, est-ce que quelqu'un connaît un outil ou une astuce capable de convertir couleur sortie de terminal échappée en HTML?

58
hendry
wget "http://www.pixelbeat.org/scripts/ansi2html.sh" -O /tmp/ansi2html.sh
chmod +x /tmp/ansi2html.sh
git diff --color-words --no-index orig.txt edited.txt | \
/tmp/ansi2html.sh > 2beshared.html

Ce dont j'avais vraiment besoin, c'était d'un convertisseur HTML _ ANSI . Et j’en ai trouvé un très correct sur http://www.pixelbeat.org/ .

REMARQUE: Il est possible que vous ne voyiez aucune coloration à moins d'inclure --color ou --color-words, probablement parce que la tuyauterie force git diff à exclure les couleurs.

NOTE 2: Vous devrez peut-être installer gnu sed et awk, surtout si vous êtes sur un Mac. Faites-le avec brew install gnu-sed gawk. Vous devrez peut-être également les ajouter à votre chemin manuellement, par exemple. avec ln -s /usr/local/Cellar/gnu-sed/4.2.2/bin/gsed /usr/local/bin/.

80
hendry

téléchargez diff2html, extrayez-le et convertissez-le en HTML avec cette commande:

$ diff2html file1.txt file2.txt > diff-demo1.htm

Il y a plus ... jetez un oeil à this question.

Ou après avoir commencé:

git diff --color-words --no-index orig.txt /tmp/edited.txt > myfile

téléchargez les deux ansifilter depuis this location. et utilisez cette commande pour convertir myfile au format html

ansifilter -i myfile -H -o myfile2.html

alors ... c'est exactement ce que vous voulez;)

11
Michel Gokan

Si vous voulez voir clean diffs avec correspondance de similarité de ligne, meilleure comparaison de mots, syntaxe en surbrillance et plus, consultez diff2html qui est très personnalisable git diff au présentateur HTML.

Pour l'utiliser sur la ligne de commande, vous pouvez vérifier diff2html-cli qui est un simple CLI écrit dans Node.js.

Ainsi, vous pourrez partager vos diffs avec des collègues qu’il intègre à diffy.org .

Découvrez un échantillon de diff ici .

3
rtfpessoa

Je ne connais aucun outil pour faire exactement ce que vous voulez. Mais voici un morceau de code que j’utilise souvent pour produire un diff de couleur au format HTML: simplediff

Il est disponible dans PHP et en Python. La sortie marque les différences à l’aide des balises <del> et <ins> afin que vous puissiez facilement les colorer à l’aide de CSS.

3
slebetman

Vous voudrez peut-être extraire le projet github rmed , qui fournit un outil de ligne de commande, qui génère des différences html partageables statiques à l'aide de vimdiff.

1
rouble

J'ai créé un script Perl pour générer une table html pour le git diff. Pour utiliser ce script, vous devez d'abord collecter le diff en utilisant git diff sha1s ...> diff.file, puis en exécutant diff2html.pl diff.file . Visitez:

http://kernel-demystified.com/forum/index.php/topic,23.msg28.html#new

1
Samir Das

lorsque j'utilise git bash, si vous utilisez git show, il vous suffit de copier et coller ce qui est affiché dans la console pour que les couleurs soient correctement copiées.