Re: [PATCH 3/3] Teach "git branch" about --new-workdir
- From
Shawn O. Pearce <spearce@spearce.org>
- Date
- Jul 23, 2007, 03:56 UTC
- Message-ID
- <20070723035644.GC32566@spearce.org>
- In-Reply-To
- <Pine.LNX.4.64.0707230000020.14781@racer.site>
Johannes Schindelin <Johannes.Schindelin@gmx.de> wrote:
Show 15 quoted lines
> 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.