On Wed, Dec 08 2021, Derrick Stolee wrote: > On 12/8/2021 1:36 PM, Elijah Newren wrote: >> On Wed, Dec 8, 2021 at 10:23 AM Derrick Stolee <stolee@xxxxxxxxx> wrote: >>> >>> On 12/8/2021 12:04 PM, Elijah Newren wrote: >>>> >>>> This actually looks quite nice, though the magic '16' is kind of >>>> annoying. Could we get rid of that -- perhaps using something to rip >>>> out the diff header, or using comm instead? >>> >>> What I really want is "remove the first two lines of this file" >> >> Is `tail -n +3` portable? Looks like we have five uses of tail -n +N >> in the testsuite, so it should be okay to use. > > Ah, that's the magic incantation. Sounds good. > >>> but perhaps "tail -n $(wc -l expect)" would suffice to avoid a >>> magic number? >> >> That works too. > > If the "-n +X" syntax works, then I'll opt for that. I think it should be per https://pubs.opengroup.org/onlinepubs/009695299/utilities/tail.html But isn't that "diff -u" non-portable, per GIT_TEST_CMP. I.e. sometimes we'll fall back on "cmp" etc. Just pre-munging both "a" and "b" and doing a: test_cmp a b Should work around that & make it portable. I realize that's also a problem with my initial example, usually we'd compare expected/actual, not the diff between the two. But if that's more readable we could also just use "git diff --no-index a b >actual" and "test_cmp" that v.s. "expected".