Hi, On Thu, 15 Jan 2009, Johan Herland wrote: > On Thursday 15 January 2009, Johannes Schindelin wrote: > > > On Thu, 15 Jan 2009, Johannes Sixt wrote: > > > Thomas Rast schrieb: > > > > Let git-checkout save the old branch as a symref in LAST_HEAD, > > > > and make 'git checkout -' switch back to LAST_HEAD, like 'cd -' > > > > does in the shell. > > > > > > /me likes this feature. > > > > > > git rebase (-i or not) calls checkout behind the scenes if the > > > two-argument form is used: > > > > > > git rebase [-i] master topic > > > > > > and 'topic' is not the current branch. You may want to add a test > > > that ensures that rebase sets LAST_HEAD in this case. > > > > > > You must make sure that commits referenced by LAST_HEAD are not > > > garbage-collected. (I don't know if this happens anyway for symrefs > > > in .git.) > > > > Note: if you used reflogs for that feature, the garbage collection > > could not have killed the commit. However, it is quite possible that > > the branch was deleted. > > I also like this feature, but as this is only a _convenience_ feature, I > would prefer if it didn't keep the previous branch/commit alive (if > otherwise unreachable). You misread me: if the information is in HEAD's reflog, the _is_ reachable. From HEAD's reflog. And therefore, the objects will not be gc'ed (yet). > In any case, this new feature will _have_ to handle the case where there > simply is no previous branch/commit (e.g. after a git clone or git > init). > > I suggest that "git checkout -" looks at the reflog, and if there is no > previous entry in the reflog, or that entry is unreachable, then fail > in the same manner as "git checkout garbage" Exactly my thinking. Ciao, Dscho -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html