Re: [RFC] Delete current branch

2013-07-19 Thread Ramkumar Ramachandra
Andreas Schwab wrote:
 Ramkumar Ramachandra artag...@gmail.com writes:

   # er, what was the branch name again?
   $ git checkout -

 You could take a look in the reflog.

Yeah, or use the @{-N} revision to do that for me.  My scripted
version is essentially:

  test true = $(git rev-parse --is-inside-work-tree 2/dev/null) || exit 1
  git checkout master
  git branch -D @{-1}

The main problem is the hard-coding of master: I suppose I could
replace that with @{-1} too.

Not a big deal: I was just wondering if others use it often enough for
it to become `branch -Dc` in core; @{-N} is quite obscure.
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [RFC] Delete current branch

2013-07-19 Thread Andreas Schwab
Ramkumar Ramachandra artag...@gmail.com writes:

   # er, what was the branch name again?
   $ git checkout -

You could take a look in the reflog.

Andreas.

-- 
Andreas Schwab, sch...@linux-m68k.org
GPG Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
And now for something completely different.
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [RFC] Delete current branch

2013-07-19 Thread Junio C Hamano
Ramkumar Ramachandra artag...@gmail.com writes:

 Many of my ideas turn out to be really stupid, and I need to throw
 away my feature branch.  So, I find myself doing this often:

   # on branch menuconfig-jk
   $ git checkout master
   $ git branch -DBACKSAPCE
   # er, what was the branch name again?
   $ git checkout -
   # Ah
   $ git checkout master
   $ git branch -D menuconfig-jk

 So, I scripted it for myself.  Perhaps we should get the functionality
 in core as `git branch -Dc` (c for current; or something)?

What branch will I be on after doing that?  Detached at that branch?

 Also, perhaps a `git describe -` corresponding to `git checkout -`

Did you know that the general way to spell the branch previously you
were on is @{-1} and checkout - is an ugly special case that is
possible only because checkout does not happen to take a - as a
valid argument that means something else (like the more usual read
from standard input)?

Perhaps 

$ git branch -D @{-1}

would have worked without BACKSPACE and everything that follows.


--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [RFC] Delete current branch

2013-07-19 Thread Ramkumar Ramachandra
Junio C Hamano wrote:
 Did you know that the general way to spell the branch previously you
 were on is @{-1} and checkout - is an ugly special case that is
 possible only because checkout does not happen to take a - as a
 valid argument that means something else (like the more usual read
 from standard input)?

I disagree that it is ugly: it's a very commonly used shortcut that I
like.  I love it so much that I have the following in my ~/.zshrc:

function - () {
if test true = $(g rp --is-inside-work-tree 2/dev/null); then
g co -
else
cd - /dev/null
fi
}

So, I just

  $ -

to switch back and forth :)
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [RFC] Delete current branch

2013-07-19 Thread Taylor Hedberg
Junio C Hamano, Fri 2013-07-19 @ 09:48:06-0700:
 But there is a very commonly accepted long tradition for - to mean
 read from the standard input, so we cannot reuse it to mean the
 branch I was previously on for every command without first making
 sure the command will never want to use - for the other common
 purpose.

It may be worth noting that Bash (and probably other shells as well)
allow you to type `cd -` to switch back to the previous working
directory. I always (apparently mistakenly) assumed that
`git checkout -` was deliberately designed to mirror that shortcut. I
think the symmetry gives it some credibility, in any case. This
alternative meaning for - is not totally without precedent.

What would it mean to check out the standard input, anyway? I cannot see
how that could ever make sense, unless `git checkout` gains some
additional capaabilities that are unrelated to its current purpose.
Maybe I am just being myopic, though.


signature.asc
Description: Digital signature


Re: [RFC] Delete current branch

2013-07-19 Thread Junio C Hamano
Ramkumar Ramachandra artag...@gmail.com writes:

 Junio C Hamano wrote:
 Did you know that the general way to spell the branch previously you
 were on is @{-1} and checkout - is an ugly special case that is
 possible only because checkout does not happen to take a - as a
 valid argument that means something else (like the more usual read
 from standard input)?

 I disagree that it is ugly: it's a very commonly used shortcut that I
 like.

It does not matter if you like it or not ;-).

I do agree that checkout - is 100% more pleasing to the eye than
checkout @{-1} from visual prettyness point of view.

But there is a very commonly accepted long tradition for - to mean
read from the standard input, so we cannot reuse it to mean the
branch I was previously on for every command without first making
sure the command will never want to use - for the other common
purpose.

That limits the context we could use - and we cannot consistently
use it everywhere. I find _that_ ugly from the design cleanliness
point of view.
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [RFC] Delete current branch

2013-07-19 Thread Ramkumar Ramachandra
Junio C Hamano wrote:
 That limits the context we could use - and we cannot consistently
 use it everywhere. I find _that_ ugly from the design cleanliness
 point of view.

Right, noted.
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [RFC] Delete current branch

2013-07-19 Thread Junio C Hamano
Taylor Hedberg tmhedb...@gmail.com writes:

 Junio C Hamano, Fri 2013-07-19 @ 09:48:06-0700:
 But there is a very commonly accepted long tradition for - to mean
 read from the standard input, so we cannot reuse it to mean the
 branch I was previously on for every command without first making
 sure the command will never want to use - for the other common
 purpose.
 ...
 What would it mean to check out the standard input, anyway?

That is my point exactly, isn't it?

You have to ask that question What would it mean to do X on the
standard input? for every operation X you might want to use the
short-cut - for.
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [RFC] Delete current branch

2013-07-19 Thread Junio C Hamano
Junio C Hamano gits...@pobox.com writes:

 Ramkumar Ramachandra artag...@gmail.com writes:

 Junio C Hamano wrote:
 Did you know that the general way to spell the branch previously you
 were on is @{-1} and checkout - is an ugly special case that is
 possible only because checkout does not happen to take a - as a
 valid argument that means something else (like the more usual read
 from standard input)?

 I disagree that it is ugly: it's a very commonly used shortcut that I
 like.

 It does not matter if you like it or not ;-).

 I do agree that checkout - is 100% more pleasing to the eye than
 checkout @{-1} from visual prettyness point of view.

 But there is a very commonly accepted long tradition for - to mean
 read from the standard input, so we cannot reuse it to mean the
 branch I was previously on for every command without first making
 sure the command will never want to use - for the other common
 purpose.

 That limits the context we could use - and we cannot consistently
 use it everywhere. I find _that_ ugly from the design cleanliness
 point of view.

Having said all that.

d18ba221 (sha1_name: support @{-N} syntax in get_sha1(), 2009-01-17)
was primarily for the follow-up patch 696acf45 (checkout: implement
- abbreviation, add docs and tests, 2009-01-17).  Two years after
them, we finally did 4e8115ff (merge: allow - as a short-hand for
previous branch, 2011-04-07).

There is no reason we cannot continue.

As long as the addition is carefully prepared so that we know it
will not conflict (or be confused by users) with possible other uses
of -, I do not think we would mind git branch -D - and other
commands to learn - as a synonym for @{-1}.
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html