Hariom verma <hariom18599@xxxxxxxxx> writes: > On Fri, Feb 14, 2020 at 8:33 PM Junio C Hamano <gitster@xxxxxxxxx> wrote: >> If the series is fixing two bugs, perhaps 2/3 can first fix it for a >> primary worktree case by seeing what HEAD symref for the primary >> worktree points at is the target of a push without iterating over >> all the worktrees, have the test change in 2/3 (i.e. "fixing the >> 'unborn' case revealed a wrong expectation in an existing test"), >> and a couple of new tests to see what a push from sideways would do >> to an unborn branch that is checked out in the primary worktree when >> .denyCurrentBranch is and isn't in effect. >> >> Then 3/3 can use the same logic to see if one worktree is OK with >> the proposed ref update by the push used in 2/3 (which no longer >> uses refs_resolve_unsafe()') to check for all worktrees. The new >> tests introduced in 2/3 would be extended to see what happens when >> the unborn branch getting updated by the push happens to be checked >> out in a secondary worktree. > > As far as my understanding goes, what we want is: > 1) fixing `.denyCurrentBranch` for unborn branches in primary worktree. (2/3) > 2) writing test (expect it to fail if `unborn` & 'non-bare' case) (2/3) > 3) making `.denyCurrentBranch` respect all worktrees. (3/3) > 4) extending tests written in step 2 for secondary worktrees. (3/3) > > Correct me if I'm wrong. If the above is what _you_ want, then there is nothing for me to correct ;-) What I suggested was somewhat different, though. 1) get_main_worktree() fix you have as [1/3] in the current round. 2) fix `.denyCurrentBranch` for unborn branches in the primary worktree, new tests for the cases I outlined in the message you are responding to, and adjusting the test (i.e. what you have as [2/3] in the current round). 3) fix `.denyCurrentBranch` to pay attention to HEAD of not just the primary worktree but of all the worktrees, and add tests. Thanks.