Subject: Re: [PATCH] revision: fix --left/right-only use with unrelated histories

From: [email-masked]
Date: Wed, 2 Apr 2025 14:12:07 +0100

Hi Matt

On 30/03/2025 11:54, Matt Hunter wrote:
> On Sun Mar 30, 2025 at 6:11 AM EDT, Phillip Wood wrote:
>> Thank you for adding a test. We have a helper function test_line_count
>> which provides a helpful debugging message if the comparison fails.
>> Using that and avoiding process substitutions we'd write
>>
>> 	sort head >sorted_head &&
>> 	sort cmp >sorted_cmp &&
>> 	comm -12 sorted_head sorted_cmp >actual &&
>> 	test_line_count = 0 actual
> Thanks for that helper tip.  I was just about to send a v2 when your
> message came in, so I'm getting that incorporated now.
> 
> By the way, I had originally wanted to write test assertions that
> checked the actual number of commit ids returned from each of the two
> calls to rev-list - something like:
> 
>      git rev-list --X-only HEAD...cmp >file &&
>      test_line_count = N file
> 
> But since I'm not very familiar with this test harness yet, I couldn't
> actually figure the correct value for N.  It's not 1 (the commit made in
> my test body), and it's not 2 (that commit, plus the one from the setup
> case at the top of the file).  Any appropriate higher value wasn't
> obvious.

Each test in a given file runs in the same repository (this is a 
performance optimization) so the number of commits will depend on what 
the previous tests have done. Usually there is a setup test at the start 
of the file which creates some commits with tags. Individual tests can 
then use those tags to establish a known state.

Best Wishes

Phillip

> So I switched to what you saw in my v1.  Maybe this "no commit ids in
> common" test is actually the stronger assertion?