Phillip Wood <phillip.wood@xxxxxxxxxxxx> writes: > On 08/03/18 17:53, Junio C Hamano wrote: >> Phillip Wood <phillip.wood@xxxxxxxxxxxx> writes: >> >>> and use a leading '-' for inversion. I'm tempted to keep supporting 'n-' >>> to mean everything from 'n' to the last line though. >> >> Thanks for double checking. It would be a better endgame to follow >> up with an update to existing "range selection" code to also support >> "n-", if you go that route. >> > I'm afraid I'm not sure exactly what you're suggesting. At the moment > the range selection code is in the first patch and supports incomplete > ranges. Are you suggesting that support for incomplete ranges should be > in a separate patch or have I misunderstood? My observation of the situation behind my reasoning is: - There is an existing UI that uses "-X" to mean "exclude what matches X" and that was the reason why you decided to follow suit instead of using "^X" for inversion of X. - Such an existing UI would not have used "-X" to mean "the first possible choice thru X". You will lose that from your new thing and you accepted that. - It is likely (I did not check, though) that the existing UI would not have used "Y-" to mean "starting from Y all the possible choices thru to the end", but that is merely for symmetry with the lack (inability to use) of "-X". There is no fundamental reason why "Y-" cannot mean that, and you are tempted to allow do so in your new thing for the same reason. So if we are going to have "N-" to mean "everything from N to the last line", then the same "Starting at N to the end of the all the possible choices" should be allowed in the existing UI (i.e. the one that forced you to give up "^X" for the sake of consistency) for the same consistency reasons, no? For that, if you want to keep the "n-" you did in your first patch, the most logical thing is to have a preparatory enhancement to teach "N-" to list_and_choose(), and then build your series on top. Or you can do without such a change to list_and_choose() in your series, in which case, you drop "n-" support and then at the very end after the series settles, add "n-" support to the new code in this series and to list_and_choose() at the same time in a follow-up patch.