From: matthew@giassa.net Date: Wed, 22 Mar 2017 19:47:51 GMT Subject: Re: Question: xdiff and "pretty" (human readable) diff output Message-ID: <20170322194751.tpzsnnuaxgt7jyvt@darkstar> In-Reply-To: * Stefan Beller [2017-03-22 12:43:41 -0700]: >On Wed, Mar 22, 2017 at 12:23 PM, wrote: >> Good day, >> >> I have a question with respect to how git generates "pretty" (ie: human >> readable) unified diffs. It's to my understanding that git uses its own >> (simplified/minimized) fork of libxdiff, simply referred to as "xdiff" >> [1]. > >correct. > >> Which tool/library is used to take the xdiff output and generate >> the human-readable equivalent that is rendered to the console? > >Git itself. Have a look at diff.c (it's only 5k lines of code ;) > >Maybe start with fn_out_consume which is a callback (for xdiff) >that is responsible for pretty printing the output, i.e. transforming the >output of xdiff according to Gits configuration. > >> I have a >> program that I'm maintaining that currently tracks changes to a couple >> of "sandboxed" files, and I wanted to add a simple console UI that >> periodically shows the changes to the files over time and/or dumps the >> "pretty diff" to syslog. > >> over time > >So you could use cron for that? > >> "pretty diff" to syslog. > >So you want to modify the "pretty diff"? >Maybe that can be archived by a custom format >(see the git *log* man page) and doesn't require hacking. > >Thanks, >Stefan Thank you Stefan. This provides me with everything I need. Cheers! -- Matthew Giassa e: matthew@giassa.net