On Tue, 12 Jul 2005, Petr Baudis wrote:
> 
> Could we please have the branch name written to .git/head-name in case
> we switch the branch?

I wouldn't mind per se, but on the other hand I really _hate_ having 
"parallel" information that can get out of sync. If you have two places 
holding the same information, they had better match. And this is something 
that sounds like it could very easily start to not match, and then we're 
screwed.

So I'd _much_ rather see instead:

 - .git/head-name is a cogito-specific thing that is only active while 
   cogito is _seeking_. So then "cg-unseek" ends up being pretty much 
   equivalent to

        [ -e .git/head-name ] || die "You weren't seeking"
        git checkout $(cat .git/head-name)
        rm .git/head-name

   This way "head-name" is really never even supposed to be "in sync" with 
   .git/HEAD, and there are no synchronization issues. 

 - in order for a "git checkout" to not get confused and possibly throwing 
   a cogito temporary head away (and so that git-fsck-cache is happy 
   during a seek), would it be possible to make "seek" use a real 
   temporary branch instead? Ie, "cg-seek" would be something like

        [ -e .git/head-name ] && die "You are already seeking"
        readlink .git/HEAD > .git/head-name
        echo $seekpoint > .git/refs/heads/cg-seek-point
        git checkout -f cg-seek-point

   or similar?

Then "cg-seek" and "cg-unseek" would continue to work, but the core git 
layer would never be confused because they're really using normal 
branches?

                Linus
-
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to