From: Jakub Narebski Date: Mon, 12 May 2008 19:57:55 GMT Subject: Re: [PATCH v2 4/5] Make boundary characters for --color-words configurable Message-ID: <200805122157.57366.jnareb@gmail.com> In-Reply-To: <7vve1jxrg9.fsf@gitster.siamese.dyndns.org> Junio C Hamano wrote: > Jakub Narebski writes: >> "Ping Yin" writes: >>> >>> To achieve the best, we have to find the pairs of lines (one minus and >>> one plus for each pair) which most match each other, and then do the >>> word diff for each pair. >> >> Wouldn't be enough to treat run of plus/minus lines as a single block, >> tokenize, do token-based (as opposed to line-based) diff, then show it >> using linebreaks of the destination file (pluses line)? > > I tried the "using linebreaks" but I discarded it because I did not think > it would work. If we rewrite the last three lines above with this single > line: > >> Wouldn't be enough to use magic? > > and apply that algorithm between the two, then we would get a long single > line that has words painted in red, two lines worth, followed by green "to > use magic?" and finally an end-of-line. It looks then like inserting (retaining?) newlines in word/token based --color-words output isn't simple. It would have to produce readable output both for the case you stated/mentioned, and for the opposite case (replacing single line by multiple lines). What's even more difficult, it should produce clear output for a simple case of rewrapping output, e.g. the following as replacement. >> Wouldn't be enough to treat run of plus/minus lines as a single >> block, tokenize, do token-based (as opposed to line-based) diff, >> then show it using linebreaks of the destination file (pluses >> line)? Gaahh... I don't think this (word diff/token diff) is something computer science has worked on? -- Jakub Narebski Poland