From: "René Scharfe" <l.s.r@web.de>
To: Dongcan Jiang <dongcan.jiang@gmail.com>, git@vger.kernel.org
Subject: Re: [PATCH] [GSoC][MICRO] Forbid "log --graph --no-walk"
Date: Fri, 06 Mar 2015 11:07:00 +0100 [thread overview]
Message-ID: <54F97C44.8070204@web.de> (raw)
In-Reply-To: <1425632110-31863-1-git-send-email-dongcan.jiang@gmail.com>
Am 06.03.2015 um 09:55 schrieb Dongcan Jiang:
> Because --graph is about connected history while --no-walk is about discrete points.
>
> revision.c: Judge whether --graph and --no-walk come together when running git-log.
> buildin/log.c: Set git-log cmd flag.
> Documentation/rev-list-options.txt: Add specification on the forbidden usage.
>
> Signed-off-by: Dongcan Jiang <dongcan.jiang@gmail.com>
> ---
> Documentation/rev-list-options.txt | 2 ++
> builtin/log.c | 1 +
> revision.c | 4 ++++
> revision.h | 3 +++
> 4 files changed, 10 insertions(+)
>
> diff --git a/Documentation/rev-list-options.txt b/Documentation/rev-list-options.txt
> index 4ed8587..eea2c0a 100644
> --- a/Documentation/rev-list-options.txt
> +++ b/Documentation/rev-list-options.txt
> @@ -679,6 +679,7 @@ endif::git-rev-list[]
> given on the command line. Otherwise (if `sorted` or no argument
> was given), the commits are shown in reverse chronological order
> by commit time.
> + Cannot be combined with `--graph` when running git-log.
>
> --do-walk::
> Overrides a previous `--no-walk`.
> @@ -781,6 +782,7 @@ you would get an output like this:
> on the left hand side of the output. This may cause extra lines
> to be printed in between commits, in order for the graph history
> to be drawn properly.
> + Cannot be combined with `--no-walk` when running git-log.
> +
> This enables parent rewriting, see 'History Simplification' below.
> +
> diff --git a/builtin/log.c b/builtin/log.c
> index dd8f3fc..7bf5adb 100644
> --- a/builtin/log.c
> +++ b/builtin/log.c
> @@ -627,6 +627,7 @@ int cmd_log(int argc, const char **argv, const char *prefix)
> git_config(git_log_config, NULL);
>
> init_revisions(&rev, prefix);
> + rev.cmd_is_log = 1;
> rev.always_show_header = 1;
> memset(&opt, 0, sizeof(opt));
> opt.def = "HEAD";
> diff --git a/revision.c b/revision.c
> index 66520c6..5f62c89 100644
> --- a/revision.c
> +++ b/revision.c
> @@ -1399,6 +1399,8 @@ void init_revisions(struct rev_info *revs, const char *prefix)
>
> revs->commit_format = CMIT_FMT_DEFAULT;
>
> + revs->cmd_is_log = 0;
> +
> init_grep_defaults();
> grep_init(&revs->grep_filter, prefix);
> revs->grep_filter.status_only = 1;
> @@ -2339,6 +2341,8 @@ int setup_revisions(int argc, const char **argv, struct rev_info *revs, struct s
>
> if (revs->reflog_info && revs->graph)
> die("cannot combine --walk-reflogs with --graph");
> + if (revs->no_walk && revs->graph && revs->cmd_is_log)
> + die("cannot combine --no-walk with --graph when running git-log");
Why only for git log? Doesn't the justification given in the commit
message above apply in general?
> if (!revs->reflog_info && revs->grep_filter.use_reflog_filter)
> die("cannot use --grep-reflog without --walk-reflogs");
>
> diff --git a/revision.h b/revision.h
> index 0ea8b4e..255982a 100644
> --- a/revision.h
> +++ b/revision.h
> @@ -146,6 +146,9 @@ struct rev_info {
> track_first_time:1,
> linear:1;
>
> + /* cmd type */
> + unsigned int cmd_is_log:1;
> +
> enum date_mode date_mode;
>
> unsigned int abbrev;
>
next prev parent reply other threads:[~2015-03-06 10:07 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-03-06 8:55 [PATCH] [GSoC][MICRO] Forbid "log --graph --no-walk" Dongcan Jiang
2015-03-06 9:56 ` Eric Sunshine
2015-03-06 13:13 ` Dongcan Jiang
2015-03-06 18:51 ` Junio C Hamano
2015-03-06 10:07 ` René Scharfe [this message]
2015-03-07 4:56 ` [PATCH v2/GSoC/MICRO] revision: forbid combining --graph and --no-walk Dongcan Jiang
2015-03-08 19:40 ` Junio C Hamano
2015-03-09 4:09 ` [PATCH v3/GSoC/MICRO] " Dongcan Jiang
2015-03-10 21:39 ` Junio C Hamano
2015-03-11 2:13 ` [PATCH v4/GSoC/MICRO] " Dongcan Jiang
2015-03-17 23:18 ` Junio C Hamano
2015-03-17 23:24 ` Eric Sunshine
2015-03-18 5:34 ` [PATCH v5/GSoC/MICRO] " Dongcan Jiang
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=54F97C44.8070204@web.de \
--to=l.s.r@web.de \
--cc=dongcan.jiang@gmail.com \
--cc=git@vger.kernel.org \
/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.