git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [BUG?] git rebase not accepting :/ syntax
@ 2012-09-07 13:08 Yann Dirson
  2012-09-07 13:54 ` Andreas Schwab
  0 siblings, 1 reply; 5+ messages in thread
From: Yann Dirson @ 2012-09-07 13:08 UTC (permalink / raw)
  To: git list

In 1.7.10.3, "git rebase -i :/Merge" will complain with:

fatal: Needed a single revision
invalid upstream :/Merge

... whereas "git rev-parse :/Merge" has no problem resolving
to a single revision.  OTOH, "git rebase -i HEAD^{/Merge}" does
work, and rev-parse resolves it to the same commit.

Is that due in some way to the semantic differences between the two
revspecs, or is that just a bug ?
-- 
Yann Dirson - Bertin Technologies

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

* Re: [BUG?] git rebase not accepting :/ syntax
  2012-09-07 13:08 [BUG?] git rebase not accepting :/ syntax Yann Dirson
@ 2012-09-07 13:54 ` Andreas Schwab
  2012-09-10  7:12   ` Yann Dirson
  0 siblings, 1 reply; 5+ messages in thread
From: Andreas Schwab @ 2012-09-07 13:54 UTC (permalink / raw)
  To: Yann Dirson; +Cc: git list

Yann Dirson <dirson@bertin.fr> writes:

> In 1.7.10.3, "git rebase -i :/Merge" will complain with:
>
> fatal: Needed a single revision
> invalid upstream :/Merge
>
> ... whereas "git rev-parse :/Merge" has no problem resolving
> to a single revision.

git rebase actually calls "git rev-parse :/Merge^0", which due to the
unlimited nature of :/ doesn't work.

> OTOH, "git rebase -i HEAD^{/Merge}" does work, and rev-parse resolves
> it to the same commit.

OTOH, "git rev-parse HEAD^{/Merge}^0" works as expected.

Andreas.

-- 
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."

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

* Re: [BUG?] git rebase not accepting :/ syntax
  2012-09-07 13:54 ` Andreas Schwab
@ 2012-09-10  7:12   ` Yann Dirson
  2012-09-10  8:29     ` Joachim Schmitz
  2012-09-10 16:19     ` Junio C Hamano
  0 siblings, 2 replies; 5+ messages in thread
From: Yann Dirson @ 2012-09-10  7:12 UTC (permalink / raw)
  To: Andreas Schwab; +Cc: git list

On Fri, 07 Sep 2012 15:54:49 +0200
Andreas Schwab <schwab@linux-m68k.org> wrote:

> Yann Dirson <dirson@bertin.fr> writes:
> 
> > In 1.7.10.3, "git rebase -i :/Merge" will complain with:
> >
> > fatal: Needed a single revision
> > invalid upstream :/Merge
> >
> > ... whereas "git rev-parse :/Merge" has no problem resolving
> > to a single revision.
> 
> git rebase actually calls "git rev-parse :/Merge^0", which due to the
> unlimited nature of :/ doesn't work.

Hm.  But then, git rev-parse $(git rev-parse :/Merge}^0 does work, a trivial
patch would appear to make things better.

BTW, git-rebase.sh seems to be quite inconsistent on the use of $() vs. ``,
not to mention the clear preference stated in CodingGuidelines.

I guess I'll find a moment for a couple of patches...

> > OTOH, "git rebase -i HEAD^{/Merge}" does work, and rev-parse resolves
> > it to the same commit.
> 
> OTOH, "git rev-parse HEAD^{/Merge}^0" works as expected.
> 
> Andreas.
> 


-- 
Yann Dirson - Bertin Technologies

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

* Re: [BUG?] git rebase not accepting :/ syntax
  2012-09-10  7:12   ` Yann Dirson
@ 2012-09-10  8:29     ` Joachim Schmitz
  2012-09-10 16:19     ` Junio C Hamano
  1 sibling, 0 replies; 5+ messages in thread
From: Joachim Schmitz @ 2012-09-10  8:29 UTC (permalink / raw)
  To: git

Yann Dirson wrote:
> On Fri, 07 Sep 2012 15:54:49 +0200
...
> BTW, git-rebase.sh seems to be quite inconsistent on the use of $()
> vs. ``, not to mention the clear preference stated in
> CodingGuidelines.

There are still quite a few more places in *.sh where `cmd`is used instead 
of $(cmd):

check-builtins.sh, git-am.sh, git-merge-one-file.sh, git-pull.sh, 
git-rebase--merge.sh, git-repack.sh, git-stash.sh, 
git-web--browse.sh,test-sha1.sh, unimplemented.sh

> I guess I'll find a moment for a couple of patches...

Might wanna fix them all in one go?

Bye, Jojo 

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

* Re: [BUG?] git rebase not accepting :/ syntax
  2012-09-10  7:12   ` Yann Dirson
  2012-09-10  8:29     ` Joachim Schmitz
@ 2012-09-10 16:19     ` Junio C Hamano
  1 sibling, 0 replies; 5+ messages in thread
From: Junio C Hamano @ 2012-09-10 16:19 UTC (permalink / raw)
  To: Yann Dirson; +Cc: Andreas Schwab, git list

Yann Dirson <dirson@bertin.fr> writes:

> Hm.  But then, git rev-parse $(git rev-parse :/Merge}^0 does work, a trivial
> patch would appear to make things better.

That, if done unconditionally, smells like a bad hack that wastes an
extra fork for a corner case that appears only very rarely.

I guess something like this

	upstream=$(
        	git rev-parse --verify -q "$upstream_name"^0 ||
                git rev-parse --verify -q $(git rev-parse --verify "$upstream_name")^0
	) ||
	die "$(eval_gettext 'invalid upstream $upstream_name')"

may be an acceptable usability workaround, but I wonder if we can do
the same fallback inside the revision argument parser, so that

	git <cmd> ":/Merge^0"

first looks for a commit that has string "Merge^0" in it and if it
fails then it looks for a commit that has string "Merge" and then
apply "^0" to it.

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

end of thread, other threads:[~2012-09-10 16:20 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-09-07 13:08 [BUG?] git rebase not accepting :/ syntax Yann Dirson
2012-09-07 13:54 ` Andreas Schwab
2012-09-10  7:12   ` Yann Dirson
2012-09-10  8:29     ` Joachim Schmitz
2012-09-10 16:19     ` 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).