diff
small changes (and long lines!) by character
4. August 2020
I recently had to work with some test fixtures containing extremely long lines.
Using a traditional line-based diff
on these to ensure only the smallest
changes necessary were made and committed was difficult,
and so I delved into the depths of the git-diff
man page to see if there was a
better way.
Combining two options, --word-diff-regex
and --word-diff
, it’s possible to
see changes inline, side-by-side. For example, changing AaA
to BbB
will show
as ABabAB
.
--word-diff-regex
allows you to specify a regular expression to determine what
a word is. This specific use case is even called out on the manpage, which
notes: --word-diff-regex=. will treat each character as a word
and, correspondingly, show differences character by character.
--word-diff
forces the diff to be shown using only colors, without any +
, -
, or
bracket characters demarcating changes.
Hopefully this saves you some squinting.