Subject: Re: [PATCH 3/3] Teach "git branch" about --new-workdir

From: "Shawn O. Pearce" <[email-masked]>
Date: Sun, 22 Jul 2007 23:56:44 -0400

Johannes Schindelin <[email-masked]> wrote:
> On Sun, 22 Jul 2007, Julian Phillips wrote:
> 
> > On Sun, 22 Jul 2007, Johannes Schindelin wrote:
> > 
> > > Well, I am really not interested in shooting myself in the foot, and 
> > > having that option in checkout would make that much more likely.  So I 
> > > really, really want to have this in git-branch.
> > 
> > Fair enough.  Your patch - so you get to choose.  I don't have any 
> > strong objections (and no power to express any if I did :P) - just 
> > airing my POV ;)
> 
> In related news, you got me convinced that my "solution" is not 
> sufficient.  So I guess this patch has to wait until after 1.5.3 _and_ 
> after we convinced Junio to put his BASE index extension in again.

The last time we had that thing in Git it really screwed with git-gui.
I'm not looking forward to it coming back.

But anyway, I think there's something else that needs to be fixed
before this symlink workdir thing is fully in core git.  Right now we
delete the .git/config and .git/packed-refs files when we edit them.
This means it is *very* unsafe to run `git-config` or `git-tag -d`
in a symlinked workdir, as the workdir will get its own config or
packed-refs file and the real repository directory won't be affected.

Now .git/config switching from symlink to real file is maybe almost
a feature.

But .git/packed-refs switching from symlink to real file is *not*
a feature.  Its a massive bug.

I live by new-workdir.  I do everything with it.  And today I just
spent over an hour sorting out cases where my many, many workdirs
have different refs than their base repositories, because their
packed-refs files are different.  Grrrrrrrrrrrrrrrrrr.

So we really need to make anyone that edits packed-refs (and
maybe also config) resolve the symlink and do the edit in the
target directory.  Then we can consider adding this workdir thing
to core git.

Yes, I know, stop whining and submit a patch.  I'll get around to
it soon if nobody else beats me.  I just want to voice yet another
reason why this shouldn't be in 1.5.3.

-- 
Shawn.