From: Junio C Hamano <gitster@pobox.com>
To: Owen Taylor <otaylor@redhat.com>
Cc: Daniel Barkalow <barkalow@iabervon.org>, git@vger.kernel.org
Subject: Re: Patches for git-push --confirm and --show-subjects
Date: Mon, 14 Sep 2009 22:50:23 -0700 [thread overview]
Message-ID: <7v1vm892ow.fsf@alter.siamese.dyndns.org> (raw)
In-Reply-To: <1252982329.11581.111.camel@localhost.localdomain> (Owen Taylor's message of "Mon\, 14 Sep 2009 22\:38\:49 -0400")
Owen Taylor <otaylor@redhat.com> writes:
> On Mon, 2009-09-14 at 17:46 -0700, Junio C Hamano wrote:
>> Owen Taylor <otaylor@redhat.com> writes:
>>
>> > If I can figure out the rest of it, I'll look at adding a hook on top as
>> > a sweetener :-)
>>
>> Please don't.
>>
>> I seriously suggest you start from, and stick to, nothing but a hook.
>>
>> The pre-push codepath is conceptually very simple --- something needs to
>> inspect a list of <ref, old, new> and say yes or no. But what the users
>> want needs great customizability (e.g. Daniel's sign-off validation
>> example). It's the prime example of codepath that should have a hook and
>> no built-in policy logic.
>
> Let me back up on this a little bit.
>
> Is confirmation a general need?
If you limit it to the confirmation alone, the answer is probably "not
necessarily". But a mechanism to allow validation logic to be plugged in
probably is.
You might not see a "policy" in your approach, but it makes some troubling
hardcoded policy decisions. Here are a few examples of what your patch
decides, and makes it harder for other people to build on (rather, "around):
- We support only interactive validation (confirmation). If you want to
have an unattended validation scheme, there is no way to enhance the
mechanism this patch adds to do so. You instead need to add yet
another command line option and hook into the same place as this patch
touches.
- We assume "git push" is run from terminal, and the only kind of
interactive validation we support is via typed confirmation from a line
terminal "[Y/n]?" If you want to run "git push" from a GUI frontend
and have the user interact with a dialog window popped up separately,
you are also out of luck.
- We assume it is good enough to have various built-in presentations of
supporting information while asking for confirmations; there is no way
for casual end users to customize and enhance it.
I honestly do not want to be a part of "We" in the above bullet points.
I do not object to having a good default presentation and default
interaction (assuming for a while that we limit ourselves only to
"interactive confirmation"). But that is a very different matter from
closing the door for other possibilities, which is essentially what the
approach to use built-in policy logic that is configurable with unbounded
number of future command line options to "git push" is.
> Providing a gnome-contributor-git-setup.sh is generally an approach of
> last resort.
No question about that. We do not have any complex built-in policy code
that is triggered at post-receive time at all, but many people use the
sample post-receive-email hook we ship unmodified in their repositories,
because the script is written in a highly configurable way. I do not see
why pre-push has to be any different.
In any case, this topic won't be part of 1.6.5, and we have plenty of time
to prototype and polish it before it goes to the end user.
next prev parent reply other threads:[~2009-09-15 5:50 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-09-13 23:31 Patches for git-push --confirm and --show-subjects Owen Taylor
2009-09-13 23:31 ` [PATCH 1/4] push: add --confirm option to ask before sending updates Owen Taylor
2009-09-13 23:31 ` [PATCH 2/4] push: allow configuring default for --confirm Owen Taylor
2009-09-13 23:31 ` [PATCH 3/4] push: add --show-subjects option to show commit synopsis Owen Taylor
2009-09-13 23:31 ` [PATCH 4/4] push: allow configuring default for --show-subjects Owen Taylor
2009-09-14 0:47 ` Patches for git-push --confirm and --show-subjects Junio C Hamano
2009-09-14 0:53 ` Junio C Hamano
2009-09-14 2:35 ` Owen Taylor
2009-09-14 22:21 ` Daniel Barkalow
2009-09-14 23:18 ` Owen Taylor
2009-09-15 0:46 ` Junio C Hamano
2009-09-15 2:38 ` Owen Taylor
2009-09-15 5:50 ` Junio C Hamano [this message]
2009-09-15 11:50 ` Owen Taylor
2009-09-15 0:55 ` Daniel Barkalow
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=7v1vm892ow.fsf@alter.siamese.dyndns.org \
--to=gitster@pobox.com \
--cc=barkalow@iabervon.org \
--cc=git@vger.kernel.org \
--cc=otaylor@redhat.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).