From: Larry D'Anna <larry@elder-gods.org>
To: Junio C Hamano <gitster@pobox.com>
Cc: git@vger.kernel.org
Subject: Re: [PATCH v3 3/3] git-push: make git push --dry-run --porcelain exit with status 0 even if updates will be rejected
Date: Mon, 8 Feb 2010 16:49:39 -0500 [thread overview]
Message-ID: <20100208214939.GA11355@cthulhu> (raw)
In-Reply-To: <7vpr4figv3.fsf@alter.siamese.dyndns.org>
* Junio C Hamano (gitster@pobox.com) [100208 15:59]:
> Larry D'Anna <larry@elder-gods.org> writes:
>
> > The script calling git push --dry-run --porcelain can see clearly from the
> > output that the updates will be rejected. However, it will probably need to
> > distinguish this condition from the push failing for other reasons, such as the
> > remote not being reachable.
>
> I am not sure about this reasoning. If you are telling the script writers
> to decide what happened by reading from the output, shouldn't the program
> say "I fail because I cannot reach the other side" to its standard output
> so that the script can read it as well?
Wouldn't that just complicate life for the script writer? If you send such
messages to the standard output, the script would have to include logic to
distinguish error messages from the rest of the output. If you send them to the
standard error then the script knows exactly where to find them.
> Having said that, I don't think it matters either way. If a script wants
> to know if push would fully succeed or not, it will run without
> --porcelain (perhaps while discarding the standard error) and check the
> status. Even without this patch, if a script runs with --porcelain and
> gets non-zero status, it can inspect the output and if it got rejection,
> that is a sure sign that it at least reached the other end to get enough
> information to decide that it will be rejected, no?
Yes, it's a sure sign that it reached the other side, but how does the script
know nothing else went wrong? What if a malloc failed? OK that's a bit far
fetched, but it's really, really nice to be able to get an unambiguous status
bit out of a command so you know if the requested operation succeeded or not.
Without this patch, a script calling git push --porcelain --dry-run has no way
of distinguishing these two situations
1) "git push" would try to push a ref that would get rejected, but everything
else is fine.
2) "git push" would try to push a ref that would get rejected, and also some
unknown type of error occurred that this script has no idea how to handle.
--larry
next prev parent reply other threads:[~2010-02-08 21:49 UTC|newest]
Thread overview: 72+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-02-05 0:41 [PATCH] fix an error message in git-push so it goes to stderr Larry D'Anna
2010-02-05 15:06 ` Jeff King
2010-02-05 19:34 ` [PATCH 1/3] " Larry D'Anna
2010-02-05 19:34 ` [PATCH 2/3] silence human readable info messages going to stderr from git push --porcelain Larry D'Anna
2010-02-05 20:20 ` Junio C Hamano
2010-02-05 20:30 ` Larry D'Anna
2010-02-05 20:49 ` [PATCH v2 0/3] Larry D'Anna
2010-02-05 20:49 ` [PATCH v2 1/3] fix an error message in git-push so it goes to stderr Larry D'Anna
2010-02-05 20:49 ` [PATCH v2 2/3] clean up some of the output from git push --porcelain Larry D'Anna
2010-02-05 21:07 ` Junio C Hamano
2010-02-05 20:49 ` [PATCH v2 3/3] make git push --dry-run --porcelain exit with status 0 even if updates will be rejected Larry D'Anna
2010-02-05 23:50 ` Tay Ray Chuan
2010-02-08 20:19 ` Larry D'Anna
2010-02-08 20:31 ` [PATCH v3 1/3] git-push: fix an error message so it goes to stderr Larry D'Anna
2010-02-08 20:45 ` Junio C Hamano
2010-02-08 20:31 ` [PATCH v3 2/3] git-push: clean up some of the output from git push --porcelain Larry D'Anna
2010-02-08 20:51 ` Junio C Hamano
2010-02-08 21:13 ` Junio C Hamano
2010-02-08 21:32 ` Jeff King
2010-02-08 22:15 ` Larry D'Anna
2010-02-08 22:21 ` Junio C Hamano
2010-02-08 22:31 ` Larry D'Anna
2010-02-08 22:33 ` [PATCH] git-push: clean up some of the output from git push Larry D'Anna
2010-02-08 22:48 ` [PATCH v3 2/3] git-push: clean up some of the output from git push --porcelain Junio C Hamano
2010-02-08 23:10 ` Larry D'Anna
2010-02-08 23:11 ` Junio C Hamano
2010-02-08 23:44 ` [PATCH] git-push: fix the documentation to explain all the status flags Larry D'Anna
2010-02-09 0:23 ` Junio C Hamano
2010-02-09 0:30 ` Junio C Hamano
2010-02-09 0:45 ` Junio C Hamano
2010-02-09 0:56 ` Larry D'Anna
2010-02-09 1:00 ` Junio C Hamano
2010-02-09 0:54 ` Larry D'Anna
2010-02-09 4:54 ` [PATCH v3 2/3] git-push: clean up some of the output from git push --porcelain Larry D'Anna
2010-02-09 7:31 ` Junio C Hamano
2010-02-09 16:21 ` Larry D'Anna
2010-02-09 17:51 ` t5401-update-hooks test failure Shawn O. Pearce
2010-02-09 19:20 ` Nicolas Pitre
2010-02-09 19:26 ` Shawn O. Pearce
2010-02-09 22:44 ` Junio C Hamano
2010-02-09 23:16 ` Junio C Hamano
2010-02-10 1:29 ` Shawn O. Pearce
2010-02-09 5:48 ` [PATCH v3 2/3] git-push: clean up some of the output from git push --porcelain Larry D'Anna
2010-02-09 5:53 ` [PATCH 1/4] git-push: fix an error message so it goes to stderr Larry D'Anna
2010-02-09 5:54 ` [PATCH 2/4] git-push: squelch advice message if in --porcelain mode Larry D'Anna
2010-02-09 5:54 ` [PATCH 3/4] git-push: send "To <remoteurl>" messages to the standard output " Larry D'Anna
2010-02-11 22:54 ` Tay Ray Chuan
2010-02-11 23:19 ` Junio C Hamano
2010-02-09 5:54 ` [PATCH 4/4] git-push: make git push --dry-run --porcelain exit with status 0 even if updates will be rejected Larry D'Anna
2010-02-10 5:39 ` [PATCH v3 2/3] git-push: clean up some of the output from git push --porcelain Jeff King
2010-02-10 5:55 ` Larry D'Anna
2010-02-10 10:43 ` Tay Ray Chuan
2010-02-08 22:59 ` Junio C Hamano
2010-02-10 5:49 ` Jeff King
2010-02-11 23:23 ` Junio C Hamano
2010-02-12 0:03 ` Jeff King
2010-02-08 20:31 ` [PATCH v3 3/3] git-push: make git push --dry-run --porcelain exit with status 0 even if updates will be rejected Larry D'Anna
2010-02-08 20:59 ` Junio C Hamano
2010-02-08 21:49 ` Larry D'Anna [this message]
2010-02-09 22:25 ` Junio C Hamano
2010-02-10 4:13 ` Larry D'Anna
2010-02-10 4:51 ` [PATCH 4/4] " Larry D'Anna
2010-02-15 17:40 ` [PATCH v3 3/3] " Larry D'Anna
2010-02-15 20:42 ` Junio C Hamano
2010-02-05 19:34 ` [PATCH 3/3] " Larry D'Anna
2010-02-05 19:56 ` Jeff King
2010-02-05 20:05 ` Larry D'Anna
2010-02-05 20:13 ` Jeff King
2010-02-05 19:39 ` [PATCH] fix an error message in git-push so it goes to stderr Larry D'Anna
2010-02-05 19:48 ` Jeff King
2010-02-05 19:50 ` Larry D'Anna
2010-02-05 19:50 ` Jeff King
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=20100208214939.GA11355@cthulhu \
--to=larry@elder-gods.org \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.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 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).