On 02/03/18 16:09, Junio C Hamano wrote: > SZEDER Gábor <szeder.dev@xxxxxxxxx> writes: > >>> +diff_cmp () { >>> + for x >>> + do >>> + sed -e '/^index/s/[0-9a-f]*[1-9a-f][0-9a-f]*\.\./1234567../' \ >>> + -e '/^index/s/\.\.[0-9a-f]*[1-9a-f][0-9a-f]*/..9abcdef/' \ >>> + -e '/^index/s/ 00*\.\./ 0000000../' \ >>> + -e '/^index/s/\.\.00*$/..0000000/' \ >>> + -e '/^index/s/\.\.00* /..0000000 /' \ >>> + "$x" >"$x.filtered" >>> + done >>> + test_cmp "$1.filtered" "$2.filtered" >>> +} >> >> t3701 is not the only test script comparing diffs, many other >> tests do so: >> >> $ git grep 'diff --git' t/ |wc -l >> 835 >> >> It's totally inaccurate, but a good ballpark figure. >> >> I think this function should be a widely available test helper >> function in 'test-lib-functions.sh', perhaps renamed to >> 'test_cmp_diff', so those other tests could use it as well. > > I am on the fence. > > The above does not redact enough (e.g. rename/copy score should be > redacted while comparing) to serve as a generic filter. > > We could certainly extend it when we make code in other tests use > the helper, but then we can do the moving to test-lib-functions when > that happens, too. > > Those who will be writing new tests that need to compare two diff > outputs are either (1) people who are careful and try to find > existing tests that do the same, to locate the helper we already > have to be reused in theirs, or (2) people who don't and roll their > own. The latter camp cannot be helped either way, but the former > will run "git grep 'diff --git' t/" and find the helper whether it > is in this script or in test-lib-functions, I would think. > > So, I certainly do not mind a reroll to move it to a more generic > place, but I do not think I would terribly mind if we leave it in > its current place, later to be moved by the first new caller that > wants to use it from outside this script. > I did wonder about putting this function in a library when I first wrote it but decided to wait and see if it is useful instead. As Junio points out it would need to be improved to act as a generic filter, so I'll take the easy option and leave it where it is at the moment. Best Wishes Phillip