From: Junio C Hamano <gitster@pobox.com>
To: Tuncer Ayaz <tuncer.ayaz@gmail.com>
Cc: git@vger.kernel.org
Subject: Re: [PATCH] Teach/Fix pull/fetch -q/-v options
Date: Sun, 19 Oct 2008 14:26:03 -0700 [thread overview]
Message-ID: <7vy70k5las.fsf@gitster.siamese.dyndns.org> (raw)
In-Reply-To: <1224445691-1366-1-git-send-email-tuncer.ayaz@gmail.com> (Tuncer Ayaz's message of "Sun, 19 Oct 2008 21:48:11 +0200")
Tuncer Ayaz <tuncer.ayaz@gmail.com> writes:
> 2) my adaption of the following two lines from
> builtin-fetch.c to the new verbosity option:
> if (verbosity == VERBOSE)
> transport->verbose = 1;
> if (verbosity == QUIET)
> transport->verbose = -1;
Hmm, what's wrong with it? Looks Ok to me...
> static struct option builtin_fetch_options[] = {
> - OPT__QUIET(&quiet),
> - OPT__VERBOSE(&verbose),
> + { OPTION_CALLBACK, 'q', "quiet", NULL, NULL,
> + "operate quietly",
> + PARSE_OPT_NOARG, option_parse_quiet },
> + { OPTION_CALLBACK, 'v', "verbose", NULL, NULL,
> + "be verbose",
> + PARSE_OPT_NOARG, option_parse_verbose },
Isn't there a OPTION_FOO that assigns a constant to the given variable?
> @@ -192,7 +211,6 @@ static int s_update_ref(const char *action,
>
> static int update_local_ref(struct ref *ref,
> const char *remote,
> - int verbose,
> char *display)
> {
> struct commit *current = NULL, *updated;
> ...
> @@ -366,18 +384,19 @@ static int store_updated_refs(const char *url, const char *remote_name,
> note);
>
> if (ref)
> - rc |= update_local_ref(ref, what, verbose, note);
> + rc |= update_local_ref(ref, what, note);
Hmph, in the existing code, do_fetch()->fetch_refs()->store_updated_refs()
callchain relies on the "verbose" to be global anyway, so losing the
ability to call update_local_ref() with verbosity as parameter is not a
huge deal.
I however think it would be more beneficial in the longer term to keep
"verbosity" as parameter so the caller can tweak what the callee does, and
making large part of what cmd_fetch() does callable from outside. That
would involve making the builtin_fetch_options[] on-stack, and passing
verbosity (and possibly other variables currently used as file-scope
global) as parameters, which is outside of the scope of your patch, but it
is something to keep in mind.
> diff --git a/git-pull.sh b/git-pull.sh
> index 75c3610..dc613db 100755
> --- a/git-pull.sh
> +++ b/git-pull.sh
> @@ -16,6 +16,7 @@ cd_to_toplevel
> test -z "$(git ls-files -u)" ||
> die "You are in the middle of a conflicted merge."
>
> +verbosity=
> strategy_args= no_stat= no_commit= squash= no_ff= log_arg=
> curr_branch=$(git symbolic-ref -q HEAD)
> curr_branch_short=$(echo "$curr_branch" | sed "s|refs/heads/||")
It would fit at the end of the next line just fine, wouldn't it?
> @@ -23,6 +24,10 @@ rebase=$(git config --bool branch.$curr_branch_short.rebase)
> while :
> do
> case "$1" in
> + -q|--quiet)
> + verbosity="$verbosity -q" ;;
> + -v|--verbose)
> + verbosity="$verbosity -v" ;;
You know verbosity flags (-q and -v) are "the last one wins", so I do not
see much point in this concatenation.
next prev parent reply other threads:[~2008-10-19 21:27 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-10-19 19:48 [PATCH] Teach/Fix pull/fetch -q/-v options Tuncer Ayaz
2008-10-19 21:26 ` Junio C Hamano [this message]
2008-10-20 16:35 ` Tuncer Ayaz
2008-10-20 23:54 ` Junio C Hamano
2008-10-21 16:25 ` Tuncer Ayaz
-- strict thread matches above, loose matches on Subject: below --
2008-10-20 16:28 Tuncer Ayaz
2008-10-21 16:30 Tuncer Ayaz
2008-10-27 10:08 ` Nanako Shiraishi
2008-10-28 3:21 ` Junio C Hamano
2008-11-01 17:23 ` Tuncer Ayaz
2008-11-07 3:26 ` Tuncer Ayaz
2008-11-07 3:26 Tuncer Ayaz
2008-11-10 23:43 ` Tuncer Ayaz
2008-11-12 20:47 ` Junio C Hamano
2008-11-15 0:09 ` Tuncer Ayaz
2008-11-15 0:14 Tuncer Ayaz
2008-11-15 1:15 ` Junio C Hamano
2008-11-15 1:53 ` Tuncer Ayaz
2008-11-15 3:10 ` Junio C Hamano
2008-11-15 17:28 ` Tuncer Ayaz
2008-11-15 17:42 ` Tuncer Ayaz
2008-11-15 19:16 ` Tuncer Ayaz
2008-11-15 19:23 Tuncer Ayaz
2008-11-17 10:37 ` Tuncer Ayaz
2008-11-17 10:51 ` Junio C Hamano
2008-11-17 10:55 ` Tuncer Ayaz
2008-11-17 11:03 ` Constantine Plotnikov
2008-11-17 22:24 ` Tuncer Ayaz
2008-11-17 22:08 ` Tuncer Ayaz
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=7vy70k5las.fsf@gitster.siamese.dyndns.org \
--to=gitster@pobox.com \
--cc=git@vger.kernel.org \
--cc=tuncer.ayaz@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 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).