snipt

Ctrl+h for KB shortcuts

Bash

human-readable colored git diff for plain text with very long lines

#!/bin/bash

#
# git-fold-wdiff - an external diff wrapper script for git
#
# Does a word-by-word colored word-wrapped diff which is useful for
# plain text files with very long lines.
#
# Usage e.g.: GIT_EXTERNAL_DIFF=git-fold-wdiff git diff
#
# Requires the folddo script, see:
# http://snipt.net/akaihola/human-readable-diff-for-plain-text-with-very-long-lines/
#

RED=$'\e'"[1;31m"
GREEN=$'\e'"[1;32m"
RESET=$'\e'"[0m"
WDIFF_ARGS="-w$RED -x$RESET -y$GREEN -z$RESET -n"
`dirname $0`/folddo wdiff $WDIFF_ARGS "$2" "$5"
https://snipt.net/embed/f49d9f8c9476dbbddb3e7d3e7dc83453/
/raw/f49d9f8c9476dbbddb3e7d3e7dc83453/
f49d9f8c9476dbbddb3e7d3e7dc83453
bash
Bash
20
2019-08-24T02:56:12
True
False
False
/api/public/snipt/6518/
human-readable-git-diff-for-plain-text-with-very-long-lines
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><a href="#L-1"> 1</a> <a href="#L-2"> 2</a> <a href="#L-3"> 3</a> <a href="#L-4"> 4</a> <a href="#L-5"> 5</a> <a href="#L-6"> 6</a> <a href="#L-7"> 7</a> <a href="#L-8"> 8</a> <a href="#L-9"> 9</a> <a href="#L-10">10</a> <a href="#L-11">11</a> <a href="#L-12">12</a> <a href="#L-13">13</a> <a href="#L-14">14</a> <a href="#L-15">15</a> <a href="#L-16">16</a> <a href="#L-17">17</a> <a href="#L-18">18</a> <a href="#L-19">19</a></pre></div></td><td class="code"><div class="highlight"><pre><span></span><span id="L-1"><a name="L-1"></a><span class="ch">#!/bin/bash</span> </span><span id="L-2"><a name="L-2"></a> </span><span id="L-3"><a name="L-3"></a><span class="c1">#</span> </span><span id="L-4"><a name="L-4"></a><span class="c1"># git-fold-wdiff - an external diff wrapper script for git</span> </span><span id="L-5"><a name="L-5"></a><span class="c1">#</span> </span><span id="L-6"><a name="L-6"></a><span class="c1"># Does a word-by-word colored word-wrapped diff which is useful for</span> </span><span id="L-7"><a name="L-7"></a><span class="c1"># plain text files with very long lines.</span> </span><span id="L-8"><a name="L-8"></a><span class="c1">#</span> </span><span id="L-9"><a name="L-9"></a><span class="c1"># Usage e.g.: GIT_EXTERNAL_DIFF=git-fold-wdiff git diff</span> </span><span id="L-10"><a name="L-10"></a><span class="c1">#</span> </span><span id="L-11"><a name="L-11"></a><span class="c1"># Requires the folddo script, see:</span> </span><span id="L-12"><a name="L-12"></a><span class="c1"># http://snipt.net/akaihola/human-readable-diff-for-plain-text-with-very-long-lines/</span> </span><span id="L-13"><a name="L-13"></a><span class="c1">#</span> </span><span id="L-14"><a name="L-14"></a> </span><span id="L-15"><a name="L-15"></a><span class="nv">RED</span><span class="o">=</span><span class="s1">$&#39;\e&#39;</span><span class="s2">&quot;[1;31m&quot;</span> </span><span id="L-16"><a name="L-16"></a><span class="nv">GREEN</span><span class="o">=</span><span class="s1">$&#39;\e&#39;</span><span class="s2">&quot;[1;32m&quot;</span> </span><span id="L-17"><a name="L-17"></a><span class="nv">RESET</span><span class="o">=</span><span class="s1">$&#39;\e&#39;</span><span class="s2">&quot;[0m&quot;</span> </span><span id="L-18"><a name="L-18"></a><span class="nv">WDIFF_ARGS</span><span class="o">=</span><span class="s2">&quot;-w</span><span class="nv">$RED</span><span class="s2"> -x</span><span class="nv">$RESET</span><span class="s2"> -y</span><span class="nv">$GREEN</span><span class="s2"> -z</span><span class="nv">$RESET</span><span class="s2"> -n&quot;</span> </span><span id="L-19"><a name="L-19"></a><span class="sb">`</span>dirname <span class="nv">$0</span><span class="sb">`</span>/folddo wdiff <span class="nv">$WDIFF_ARGS</span> <span class="s2">&quot;</span><span class="nv">$2</span><span class="s2">&quot;</span> <span class="s2">&quot;</span><span class="nv">$5</span><span class="s2">&quot;</span> </span></pre></div> </td></tr></table>
bash, color, diff, git, plaintext, wdiff, wordwrap