diff options
author | Junio C Hamano <gitster@pobox.com> | 2007-08-28 00:38:48 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2007-08-28 00:38:48 -0700 |
commit | 8a1d076e21810f5bc7e9ef10d84f7ca9637b89af (patch) | |
tree | 02044913746de08e73295921df2053306eb5236c /builtin-log.c | |
parent | 170c04383bca07fb5a32227474dfd58f29258d25 (diff) | |
download | git-8a1d076e21810f5bc7e9ef10d84f7ca9637b89af.tar.gz |
"format-patch --root rev" is the way to show everything.
We used to trigger the special case "things not in origin"
semantics only when one and only one positive ref is given, and
no number (e.g. "git format-patch -4 origin") was specified, and
used the general revision range semantics for everything else.
This narrows the special case a bit more, by making:
git format-patch --root this_version
to show everything that leads to the named commit.
More importantly, document the two different semantics better.
The generic revision range semantics came later and bolted on
without being clearly documented.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'builtin-log.c')
-rw-r--r-- | builtin-log.c | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/builtin-log.c b/builtin-log.c index a381c75f3c..fa81c25920 100644 --- a/builtin-log.c +++ b/builtin-log.c @@ -585,12 +585,19 @@ int cmd_format_patch(int argc, const char **argv, const char *prefix) } if (rev.pending.nr == 1) { - if (rev.max_count < 0) { + if (rev.max_count < 0 && !rev.show_root_diff) { + /* + * This is traditional behaviour of "git format-patch + * origin" that prepares what the origin side still + * does not have. + */ rev.pending.objects[0].item->flags |= UNINTERESTING; add_head(&rev); } - /* Otherwise, it is "format-patch -22 HEAD", and - * get_revision() would return only the specified count. + /* + * Otherwise, it is "format-patch -22 HEAD", and/or + * "format-patch --root HEAD". The user wants + * get_revision() to do the usual traversal. */ } |