From: phillip.wood123@gmail.com Date: Wed, 02 Apr 2025 13:12:07 GMT Subject: Re: [PATCH] revision: fix --left/right-only use with unrelated histories Message-ID: <63e79534-db09-444f-8e82-8e01d914182d@gmail.com> In-Reply-To: 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?