Re: [PATCH v4 6/6] Make --color-words work well with --graph
From: Junio C Hamano <hidden>
Date: 2016-06-15 22:48:52
Bo Yang [off-list ref] writes:
'--color-words' algorithm can be described as: 1. collect a the minus/plus lines of a diff hunk, divided into minus-lines and plus-lines; 2. break both minus-lines and plus-lines into words and place them into two mmfile_t with one word for each line; 3. use xdiff to run diff on the two mmfile_t to get the words level diff;
Please wrap lines at reasonable length, and indent bulleted lists like this a bit from the left, with a blank line between each item, like this: |'--color-words' algorithm can be described as: | | 1. collect a the minus/plus lines of a diff hunk, divided into | minus-lines and plus-lines; | | 2. break both minus-lines and plus-lines into words and place them | into two mmfile_t with one word for each line; | | 3. use xdiff to run diff on the two mmfile_t to get the words level | diff; | |And for the common parts of the both file, we output the plus side... | ... |For '--graph' to work with '--color-words', we need to output the |graph prefix on each line of color words output. Generally, there are |two conditions on which we should output the prefix. | | 1. diff_words->last_minus == 0 && | diff_words->current_plus == diff_words->plus.text.ptr | | that is: the plus text must start as a new line, and if there is | no minus word printed, a graph prefix must be printed. | | 2. diff_words->current_plus > diff_words->plus.text.ptr && | *(diff_words->current_plus - 1) == '\n' | | that is: a graph prefix must be printed following a '\n'. Same thing for the in-code comments; it would probably be easier to read if you made a small helper function (that a compiler would inline for you) that decides if you would want to show the line_prefix, and make that big comment a comment to that helper function.