From: Jeff King <peff@peff.net>
To: Johan Herland <johan@herland.net>
Cc: git@vger.kernel.org, Jacob Helwig <jacob.helwig@gmail.com>,
Ping Yin <pkufranky@gmail.com>
Subject: Re: [PATCH] submodule summary: Don't barf when invoked in an empty repo
Date: Wed, 17 Feb 2010 01:10:05 -0500 [thread overview]
Message-ID: <20100217061005.GA520@coredump.intra.peff.net> (raw)
In-Reply-To: <201002161121.14613.johan@herland.net>
On Tue, Feb 16, 2010 at 11:21:14AM +0100, Johan Herland wrote:
> I'm working from the simple test case in the below patch, I get the
> following output with your proposed fix:
>
> [...]
> trace: built-in: git 'rev-parse' '-q' '--verify' '^0'
> [...]
> trace: built-in: git 'diff-index' '--raw' 'HEAD' '--'
> fatal: bad revision 'HEAD'
> [...]
>
> I.e. your fix doesn't work because $1 is empty (not "HEAD") at this point.
Ah, right. I was testing "git status" which calls "git submodule summary
HEAD", but your test uses the assumed HEAD. And both need fixing.
> My alternative patch (below) does pass my test case (and all the other
> tests as well)
>
> I'd still like an ACK from the original author (Ping Yin) as well, as I'm
> not sure if I overlooked something by removing the "$1^0".
Your patch looks correct to me. I don't really see how dropping the "^0"
will have any effect. rev-parse --verify already prefers revisions to
files, and diff-index should peel if needed.
Which, btw, seems like a mini-bug here. The point of this code is to say
"if we have an argument, is it a revision? If so, shift it off.
Otherwise, put it (and any other arguments) after the -- as a file
limiter".
Usually if I have a branch "master" and a file "master", git will
complain about the ambiguity unless I use an explicit "--" separator.
But here it always takes it as a revision, no questions asked. Or if I
am in "--files" mode, that argument is simply removed and ignored (see
just below where we unset $head).
Probably it should be re-ordered as
if test -n "$files"; then
...
else
if rev=$(git rev-parse -q --verify --default HEAD "$1")
...
fi
It just doesn't come up much because usually having branch names and
filenames the same is sufficiently annoying that nobody does it.
-Peff
prev parent reply other threads:[~2010-02-17 6:10 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-02-16 4:19 Fatal error running status in new repo Jacob Helwig
2010-02-16 6:05 ` Jeff King
2010-02-16 6:24 ` Jacob Helwig
2010-02-16 6:47 ` Jeff King
2010-02-16 7:03 ` [PATCH] dwim_ref: fix dangling symref warning Jeff King
2010-02-16 7:21 ` Fatal error running status in new repo Jeff King
2010-02-16 10:21 ` [PATCH] submodule summary: Don't barf when invoked in an empty repo Johan Herland
2010-02-17 6:10 ` Jeff King [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20100217061005.GA520@coredump.intra.peff.net \
--to=peff@peff.net \
--cc=git@vger.kernel.org \
--cc=jacob.helwig@gmail.com \
--cc=johan@herland.net \
--cc=pkufranky@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.