git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Using "-" for "previous branch" failing with rebase
@ 2014-03-15 20:29 Tim Chase
  2014-03-17  6:37 ` Junio C Hamano
  0 siblings, 1 reply; 4+ messages in thread
From: Tim Chase @ 2014-03-15 20:29 UTC (permalink / raw)
  To: Git

I recently learned that there are several places where git allows use
of "-" to refer to the previous branch, e.g.

  git checkout -b dev
  # hack, hack
  git checkout master
  git merge -
  git checkout -

However, it doesn't seem to understand "-" in the context of a rebase:

  git checkout branch_a
  # hack
  git commit -a
  git checkout branch_b
  # hack
  git commit -a
  git rebase -         # I'd expect to rebase onto branch_a

but I get

  fatal: Needed a single revision
  invalid upstream -

Issuing

  git rebase branch_a

does exactly what I'd expect (as "git checkout -" puts me on
"branch_a").

Is this just an interface inconsistency or is there a some technical
reason this doesn't work (or, has it been addressed/fixed, and just
not pulled into Debian Stable's 1.7.10.4 version of git)?

Thanks,

-tkc

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Using "-" for "previous branch" failing with rebase
  2014-03-15 20:29 Using "-" for "previous branch" failing with rebase Tim Chase
@ 2014-03-17  6:37 ` Junio C Hamano
  2014-03-18  1:47   ` Tim Chase
  0 siblings, 1 reply; 4+ messages in thread
From: Junio C Hamano @ 2014-03-17  6:37 UTC (permalink / raw)
  To: Tim Chase; +Cc: Git

Tim Chase <git@tim.thechases.com> writes:

> Is this just an interface inconsistency or is there a some technical
> reason this doesn't work (or, has it been addressed/fixed, and just
> not pulled into Debian Stable's 1.7.10.4 version of git)?

It is merely that nobody thought "rebase" would benefit from such a
short-hand, I think.

    Teach more commands that operate on branch names about "-"
    shorthand for "the branch we were previously on", like we did
    for "git merge -" sometime after we introduced "git checkout -"

has been sitting in my "leftover bits" list at

    http://git-blame.blogspot.com/p/leftover-bits.html

for quite some time.  Hint, hint...

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Using "-" for "previous branch" failing with rebase
  2014-03-17  6:37 ` Junio C Hamano
@ 2014-03-18  1:47   ` Tim Chase
  2014-03-18 18:59     ` Junio C Hamano
  0 siblings, 1 reply; 4+ messages in thread
From: Tim Chase @ 2014-03-18  1:47 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: Git

On 2014-03-16 23:37, Junio C Hamano wrote:
> Tim Chase <git@tim.thechases.com> writes:
> 
> > Is this just an interface inconsistency or is there a some
> > technical reason this doesn't work (or, has it been
> > addressed/fixed, and just not pulled into Debian Stable's
> > 1.7.10.4 version of git)?
> 
> It is merely that nobody thought "rebase" would benefit from such a
> short-hand, I think.
> 
>     Teach more commands that operate on branch names about "-"
>     shorthand for "the branch we were previously on", like we did
>     for "git merge -" sometime after we introduced "git checkout -"
> 
> has been sitting in my "leftover bits" list at
> 
>     http://git-blame.blogspot.com/p/leftover-bits.html
> 
> for quite some time.  Hint, hint...

Not sure if the "Hint, hint" was intended for me, as I'm not exactly
a git hacker.  I did find another place where I reached for it
instinctively (now that I use it regularly with checkout/merge):
git-diff.

  git checkout some_branch
  #hack
  git commit -m "..."
  git checkout other_branch
  # hmm...what's different between these branches?
  git diff -

which I would have expected to act something like

  git diff some_branch..other_branch

Just for the archives.

-tkc




(or possibly the reverse)

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Using "-" for "previous branch" failing with rebase
  2014-03-18  1:47   ` Tim Chase
@ 2014-03-18 18:59     ` Junio C Hamano
  0 siblings, 0 replies; 4+ messages in thread
From: Junio C Hamano @ 2014-03-18 18:59 UTC (permalink / raw)
  To: Tim Chase; +Cc: Git

Tim Chase <git@tim.thechases.com> writes:

> On 2014-03-16 23:37, Junio C Hamano wrote:
>> Tim Chase <git@tim.thechases.com> writes:
>> 
>> > Is this just an interface inconsistency or is there a some
>> > technical reason this doesn't work (or, has it been
>> > addressed/fixed, and just not pulled into Debian Stable's
>> > 1.7.10.4 version of git)?
>> 
>> It is merely that nobody thought "rebase" would benefit from such a
>> short-hand, I think.
>> 
>>     Teach more commands that operate on branch names about "-"
>>     shorthand for "the branch we were previously on", like we did
>>     for "git merge -" sometime after we introduced "git checkout -"
>> 
>> has been sitting in my "leftover bits" list at
>> 
>>     http://git-blame.blogspot.com/p/leftover-bits.html
>> 
>> for quite some time.  Hint, hint...
>
> Not sure if the "Hint, hint" was intended for me,...

No.  It is primarily a search-engine bait ;-) and is secondarily a
hint to any aspiring Git hackers on the list.

In general, I am not very enthused to see the single letter "-" used
where you name any commit object (like "diff").  It is a short-hand
for the @{-1} notation that names the branch name, and it is OK in
general to add support for it to the places where we expect a branch
name and not just any commit object name (e.g. "checkout -"), but
maybe it is just me who was heavily involved in the original design.

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2014-03-18 18:59 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-03-15 20:29 Using "-" for "previous branch" failing with rebase Tim Chase
2014-03-17  6:37 ` Junio C Hamano
2014-03-18  1:47   ` Tim Chase
2014-03-18 18:59     ` Junio C Hamano

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).