Thread (35 messages) 35 messages, 8 authors, 2016-06-15

Re: [PATCH v2] checkout: implement "-" shortcut name for last branch

From: Johan Herland <hidden>
Date: 2016-06-15 22:45:57

On Thursday 15 January 2009, Johannes Schindelin wrote:
Hi,

On Thu, 15 Jan 2009, Johannes Sixt wrote:
quoted
Thomas Rast schrieb:
quoted
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). 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"


Have fun! :)

...Johan

-- 
Johan Herland, [off-list ref]
www.herland.net
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help