On 2021.10.16 22:50, Junio C Hamano wrote: > Josh Steadmon <steadmon@xxxxxxxxxx> writes: > > > Thanks for the feedback. I've added "--track=direct" and > > "--track=inherit" flags in V3, which I'll send out shortly. I am a bit > > skeptical of the value of having "--track=direct" when just "--track" > > still works, but I'll leave it up to the list to decide. > > Ah, I assumed that with the configuration variable set to inherit, > you'd make a command line --track to use the upstream of the fork > point branch as the upstream of the new branch, but if your > intention is that (1) without --track or --no-track on the command > line, if configuration is set to inherit, the new branch will track > the upstream of the original, and (2) with --track on the command > line, the new branch will track the original without any "inherit" > magic, then I agree that there is no need for a way to explicitly > choose between --track={direct,inherit} from the command line. Yes, I intend for this to be similar to `branch.autoSetupmerge=always` such that users who prefer this behavior can set it in their global configs and then not need to remember to pass --track=inherit on the command line. > The > choice would be, for those with remote.autosetupmerge=inherit, to > use --no-track (to not track anything), --track (to track directly > the original branch), or say nothing (to inherit tracking), and for > those without that, --no-track (to not track) and --track (to track > directly) are the same but there is no way (other than "git -c > var=val") to do "inherited tracking". > > One advantage of allowing to be explicit is that you do not have to > remember (or know --- if you are visiting somebody else's repository > to help them out) how remote.autosetupmerge is configured (or > unconfigured). From the command line, without having to worry about > configured values to interfere, you can control which tracking mode > is used.