From: Junio C Hamano <junkio@cox.net>
To: Linus Torvalds <torvalds@osdl.org>
Cc: git@vger.kernel.org
Subject: Re: What's in git.git (stable)
Date: Mon, 18 Dec 2006 14:04:38 -0800 [thread overview]
Message-ID: <7vzm9kvp1l.fsf@assigned-by-dhcp.cox.net> (raw)
In-Reply-To: <Pine.LNX.4.64.0612181012280.3479@woody.osdl.org> (Linus Torvalds's message of "Mon, 18 Dec 2006 10:16:12 -0800 (PST)")
Linus Torvalds <torvalds@osdl.org> writes:
> On Sun, 17 Dec 2006, Junio C Hamano wrote:
>>
>> - blame A..B's output shows lines attributed to the boundary
>> commit with commit SHA-1 prefixed with '^';
>
> I wonder if it would make sense to have a flag or mode or something where
> boundary commit attributions are simply left unattributed (ie just leave
> that _empty_).
How about this?
-- >8 --
blame: -b (blame.blankboundary) and --root (blame.showroot)
When blame.blankboundary is set (or -b option is given), commit
object names are blanked out in the "human readable" output
format for boundary commits.
When blame.showroot is not set (or --root is not given), the
root commits are treated as boundary commits. The code still
attributes the lines to them, but with -b their object names are
not shown.
Signed-off-by: Junio C Hamano <junkio@cox.net>
---
builtin-blame.c | 33 +++++++++++++++++++++++++++++++--
1 files changed, 31 insertions(+), 2 deletions(-)
diff --git a/builtin-blame.c b/builtin-blame.c
index a250724..211bdb3 100644
--- a/builtin-blame.c
+++ b/builtin-blame.c
@@ -22,7 +22,9 @@
static char blame_usage[] =
"git-blame [-c] [-l] [-t] [-f] [-n] [-p] [-L n,m] [-S <revs-file>] [-M] [-C] [-C] [commit] [--] file\n"
" -c, --compatibility Use the same output mode as git-annotate (Default: off)\n"
+" -b Show blank SHA-1 for boundary commits (Default: off)\n"
" -l, --long Show long commit SHA1 (Default: off)\n"
+" --root Do not treat root commits as boundaries (Default: off)\n"
" -t, --time Show raw timestamp (Default: off)\n"
" -f, --show-name Show original filename (Default: auto)\n"
" -n, --show-number Show original linenumber (Default: off)\n"
@@ -36,6 +38,8 @@ static int longest_author;
static int max_orig_digits;
static int max_digits;
static int max_score_digits;
+static int show_root;
+static int blank_boundary;
#ifndef DEBUG
#define DEBUG 0
@@ -1095,6 +1099,9 @@ static void assign_blame(struct scoreboard *sb, struct rev_info *revs, int opt)
if (commit->object.parsed)
mark_parents_uninteresting(commit);
}
+ /* treat root commit as boundary */
+ if (!commit->parents && !show_root)
+ commit->object.flags |= UNINTERESTING;
/* Take responsibility for the remaining entries */
for (ent = sb->ent; ent; ent = ent->next)
@@ -1318,8 +1325,12 @@ static void emit_other(struct scoreboard *sb, struct blame_entry *ent, int opt)
int length = (opt & OUTPUT_LONG_OBJECT_NAME) ? 40 : 8;
if (suspect->commit->object.flags & UNINTERESTING) {
- length--;
- putchar('^');
+ if (!blank_boundary) {
+ length--;
+ putchar('^');
+ }
+ else
+ memset(hex, ' ', length);
}
printf("%.*s", length, hex);
@@ -1639,6 +1650,19 @@ static void prepare_blame_range(struct scoreboard *sb,
usage(blame_usage);
}
+static int git_blame_config(const char *var, const char *value)
+{
+ if (!strcmp(var, "blame.showroot")) {
+ show_root = git_config_bool(var, value);
+ return 0;
+ }
+ if (!strcmp(var, "blame.blankboundary")) {
+ blank_boundary = git_config_bool(var, value);
+ return 0;
+ }
+ return git_default_config(var, value);
+}
+
int cmd_blame(int argc, const char **argv, const char *prefix)
{
struct rev_info revs;
@@ -1654,6 +1678,7 @@ int cmd_blame(int argc, const char **argv, const char *prefix)
char type[10];
const char *bottomtop = NULL;
+ git_config(git_blame_config);
save_commit_buffer = 0;
opt = 0;
@@ -1662,6 +1687,10 @@ int cmd_blame(int argc, const char **argv, const char *prefix)
const char *arg = argv[i];
if (*arg != '-')
break;
+ else if (!strcmp("-b", arg))
+ blank_boundary = 1;
+ else if (!strcmp("--root", arg))
+ show_root = 1;
else if (!strcmp("-c", arg))
output_option |= OUTPUT_ANNOTATE_COMPAT;
else if (!strcmp("-t", arg))
next prev parent reply other threads:[~2006-12-18 22:04 UTC|newest]
Thread overview: 262+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-12-18 7:26 What's in git.git (stable) Junio C Hamano
[not found] ` <Pine.LNX.4.64.0612181012280.3479@woody.osdl.org>
2006-12-18 22:04 ` Junio C Hamano [this message]
-- strict thread matches above, loose matches on Subject: below --
2008-07-21 7:09 Junio C Hamano
2008-04-09 6:51 [ANNOUNCE] GIT 1.5.5 Junio C Hamano
2008-04-09 9:44 ` What's in git.git (stable) Junio C Hamano
2008-04-14 7:00 ` Junio C Hamano
2008-04-19 8:18 ` Junio C Hamano
2008-04-27 6:04 ` Junio C Hamano
2008-05-06 6:38 ` Junio C Hamano
2008-05-14 22:35 ` Junio C Hamano
2008-05-24 1:32 ` Junio C Hamano
2008-05-30 20:43 ` Junio C Hamano
2008-06-02 8:01 ` Junio C Hamano
2008-06-13 10:10 ` Junio C Hamano
2008-06-18 7:32 ` Junio C Hamano
2008-06-18 10:59 ` Jeff King
2008-06-21 10:06 ` Junio C Hamano
2008-06-23 7:25 ` Junio C Hamano
2008-06-25 9:34 ` Junio C Hamano
2008-07-02 6:28 ` Junio C Hamano
2008-07-06 10:04 ` Junio C Hamano
2008-07-08 2:46 ` Junio C Hamano
2008-07-14 5:33 ` Junio C Hamano
2008-07-16 3:33 ` Junio C Hamano
2008-07-20 1:59 ` Junio C Hamano
2008-07-20 11:20 ` Lars Noschinski
2008-07-20 18:27 ` Junio C Hamano
2008-01-30 8:32 What's in git.git (stable frozen) Junio C Hamano
2008-02-12 7:25 ` What's in git.git Junio C Hamano
2008-02-17 3:56 ` What's in git.git (stable) Junio C Hamano
2008-02-17 13:39 ` Jakub Narebski
2008-02-17 20:45 ` Junio C Hamano
2008-02-17 20:51 ` Johannes Schindelin
2008-02-18 1:31 ` Junio C Hamano
2008-02-18 1:34 ` Johannes Schindelin
2008-02-18 1:43 ` Jeff King
2008-02-18 2:05 ` Johannes Schindelin
2008-02-18 3:12 ` Junio C Hamano
2008-02-18 11:15 ` Jeff King
2008-02-21 4:16 ` Junio C Hamano
2008-02-25 8:42 ` Junio C Hamano
2008-02-28 0:43 ` Junio C Hamano
2008-03-03 2:06 ` Junio C Hamano
2008-03-06 6:02 ` Junio C Hamano
2008-03-08 10:08 ` Junio C Hamano
2008-03-09 10:46 ` Junio C Hamano
2008-03-14 9:11 ` Junio C Hamano
2008-03-23 10:08 ` Junio C Hamano
2008-03-28 1:45 ` Junio C Hamano
2008-03-31 8:39 ` Junio C Hamano
2008-04-04 18:24 ` Junio C Hamano
2008-04-05 3:13 ` Shawn O. Pearce
2008-01-14 1:53 Junio C Hamano
2007-10-22 6:11 What's in git/spearce.git (stable) Shawn O. Pearce
2007-11-01 5:39 ` What's in git.git (stable) Junio C Hamano
2007-11-04 3:52 ` Junio C Hamano
2007-11-08 8:06 ` Junio C Hamano
2007-11-08 11:38 ` Pierre Habouzit
2007-11-12 7:06 ` Junio C Hamano
2007-11-15 0:20 ` Junio C Hamano
2007-11-17 21:00 ` Junio C Hamano
2007-11-25 20:45 ` Junio C Hamano
2007-12-01 2:05 ` Junio C Hamano
2007-12-04 8:43 ` Junio C Hamano
2007-12-05 10:57 ` Junio C Hamano
2007-12-07 9:50 ` Junio C Hamano
2007-12-09 10:32 ` Junio C Hamano
2007-09-06 8:52 Junio C Hamano
[not found] ` <7v3axhd0lr.fsf@gitster.siamese.dyndns.org>
2007-09-26 20:05 ` Junio C Hamano
2007-10-02 5:52 ` Junio C Hamano
2007-08-23 0:37 Junio C Hamano
2007-08-24 0:28 ` Jakub Narebski
2007-08-11 8:41 Junio C Hamano
2007-08-11 9:32 ` David Kastrup
2007-08-16 5:02 ` Junio C Hamano
2007-05-13 22:30 Junio C Hamano
2007-05-17 0:21 ` Junio C Hamano
2007-05-19 5:24 ` Junio C Hamano
2007-05-23 21:46 ` Junio C Hamano
2007-05-29 10:12 ` Junio C Hamano
2007-06-02 21:09 ` Junio C Hamano
2007-06-07 2:08 ` Junio C Hamano
2007-06-13 20:11 ` Junio C Hamano
2007-06-13 22:31 ` Johannes Schindelin
2007-06-14 7:12 ` Johannes Sixt
2007-06-21 7:21 ` Junio C Hamano
2007-06-25 9:43 ` Junio C Hamano
2007-07-02 0:16 ` Junio C Hamano
2007-07-13 6:06 ` What's in git.git Junio C Hamano
2007-07-28 8:47 ` What's in git.git (stable) Junio C Hamano
2007-07-28 8:56 ` David Kastrup
2007-07-28 9:02 ` Junio C Hamano
2007-07-28 9:35 ` David Kastrup
2007-07-29 3:16 ` Theodore Tso
2007-07-29 9:05 ` David Kastrup
2007-07-29 16:40 ` Theodore Tso
2007-07-29 11:27 ` Johannes Schindelin
2007-07-28 12:28 ` Thomas Glanzmann
2007-08-07 6:22 ` Junio C Hamano
2007-05-09 8:46 Junio C Hamano
2007-04-16 1:27 Junio C Hamano
2007-04-18 23:58 ` Junio C Hamano
2007-04-22 6:22 ` Junio C Hamano
2007-04-23 7:04 ` Junio C Hamano
2007-04-27 8:34 ` Junio C Hamano
2007-04-27 9:19 ` Andy Parkins
2007-04-27 14:01 ` Nicolas Pitre
2007-04-27 15:21 ` Andy Parkins
2007-04-27 17:11 ` Linus Torvalds
2007-04-27 18:03 ` Andy Parkins
2007-04-27 18:12 ` Linus Torvalds
2007-04-29 18:33 ` Junio C Hamano
2007-04-30 4:15 ` J. Bruce Fields
2007-04-30 5:12 ` Junio C Hamano
2007-05-01 3:36 ` J. Bruce Fields
2007-05-06 8:53 ` Junio C Hamano
2007-05-07 0:59 ` Jakub Narebski
2007-05-07 13:33 ` Frank Lichtenheld
2007-04-09 8:17 Junio C Hamano
2007-03-31 9:34 Junio C Hamano
2007-03-31 11:54 ` Alex Riesen
2007-04-05 6:44 ` Junio C Hamano
2007-02-20 7:32 Junio C Hamano
2007-02-23 8:33 ` Junio C Hamano
2007-03-04 10:32 ` Junio C Hamano
2007-03-13 8:49 ` Junio C Hamano
2007-03-13 9:26 ` Junio C Hamano
2007-03-22 17:08 ` Steven Grimm
2007-03-22 21:30 ` Junio C Hamano
2007-03-25 8:32 ` Junio C Hamano
2007-02-14 23:54 Junio C Hamano
2007-02-07 23:21 [ANNOUNCE] GIT 1.5.0-rc4 Junio C Hamano
2007-02-13 5:15 ` What's in git.git (stable) Junio C Hamano
2007-02-13 10:15 ` Johannes Schindelin
2007-02-13 17:33 ` Junio C Hamano
2007-02-13 18:21 ` Randal L. Schwartz
2007-02-13 18:37 ` Johannes Schindelin
2007-02-13 22:02 ` Jimmy Tang
2007-02-13 23:31 ` Linus Torvalds
2007-02-13 13:56 ` Matthias Lederhofer
2007-02-13 16:58 ` Junio C Hamano
2007-02-13 14:33 ` Bill Lear
2007-02-13 14:37 ` Bill Lear
2007-02-13 17:18 ` Randal L. Schwartz
2007-02-01 0:26 [ANNOUNCE] GIT 1.5.0-rc3 Junio C Hamano
2007-02-04 9:36 ` What's in git.git (stable) Junio C Hamano
2007-02-04 18:51 ` Jeff King
2007-02-04 19:12 ` Linus Torvalds
2007-02-04 20:58 ` Theodore Tso
2007-02-04 21:34 ` Jakub Narebski
2007-02-04 22:25 ` David Kågedal
2007-01-27 8:05 Junio C Hamano
2007-01-27 8:59 ` Aneesh Kumar K.V
2007-01-27 18:06 ` J. Bruce Fields
2007-01-27 22:00 ` Junio C Hamano
2007-01-27 17:56 ` J. Bruce Fields
2007-01-28 19:34 ` Bill Lear
2007-01-28 20:06 ` Junio C Hamano
2007-01-10 8:24 Junio C Hamano
2007-01-10 8:23 Junio C Hamano
2007-01-02 0:07 Junio C Hamano
2007-01-07 7:43 ` Junio C Hamano
2006-12-31 8:07 Junio C Hamano
2006-12-26 3:22 What's in git.git (stable) and announcing GIT 1.5.0 preview Junio C Hamano
2006-12-29 5:44 ` What's in git.git (stable) Junio C Hamano
2006-12-22 9:25 Junio C Hamano
2006-12-22 17:15 ` Randal L. Schwartz
2006-12-22 17:19 ` Randal L. Schwartz
2006-12-22 18:09 ` Johannes Schindelin
2006-12-22 18:12 ` Randal L. Schwartz
2006-12-22 18:21 ` Randal L. Schwartz
2006-12-22 19:21 ` Johannes Schindelin
2006-12-22 20:13 ` Junio C Hamano
2006-12-22 20:44 ` Johannes Schindelin
2006-12-22 21:44 ` Junio C Hamano
2006-12-26 20:25 ` Luben Tuikov
2006-12-26 23:54 ` Junio C Hamano
2006-12-27 1:19 ` Luben Tuikov
2006-12-27 2:14 ` Junio C Hamano
2006-12-22 18:58 ` Junio C Hamano
2006-12-22 20:04 ` Jakub Narebski
2006-12-22 20:16 ` Junio C Hamano
2006-12-22 20:56 ` Jakub Narebski
2006-12-22 21:49 ` Junio C Hamano
2006-12-22 20:21 ` Quy Tonthat
2006-12-16 23:10 Junio C Hamano
2006-12-13 21:35 Junio C Hamano
2006-12-13 22:37 ` Andy Parkins
2006-12-13 22:48 ` Jakub Narebski
2006-12-14 9:27 ` Andy Parkins
2006-12-14 9:36 ` Shawn Pearce
2006-12-14 10:03 ` Andy Parkins
2006-12-14 17:06 ` Nicolas Pitre
2006-12-15 14:28 ` Jakub Narebski
2006-12-13 23:31 ` Junio C Hamano
2006-12-13 23:52 ` Peter Baumann
2006-12-14 0:16 ` Johannes Schindelin
2006-12-14 3:32 ` Nicolas Pitre
2006-12-14 6:29 ` Junio C Hamano
2006-12-14 8:28 ` Andreas Ericsson
2006-12-15 14:39 ` Jakub Narebski
2006-12-14 9:59 ` Andy Parkins
2006-12-14 10:21 ` Junio C Hamano
2006-12-14 11:36 ` Andy Parkins
2006-12-14 11:45 ` Shawn Pearce
2006-12-14 11:58 ` Carl Worth
2006-12-14 12:05 ` Shawn Pearce
2006-12-14 18:06 ` Nicolas Pitre
2006-12-14 19:52 ` Junio C Hamano
2006-12-14 20:02 ` Shawn Pearce
2006-12-14 20:22 ` Nicolas Pitre
2006-12-14 20:35 ` Junio C Hamano
2006-12-14 22:44 ` Shawn Pearce
2006-12-14 21:55 ` Andreas Ericsson
2006-12-15 21:55 ` Junio C Hamano
2006-12-16 2:54 ` Shawn Pearce
2006-12-14 20:17 ` Nicolas Pitre
2006-12-14 20:50 ` Junio C Hamano
2006-12-14 17:47 ` Nicolas Pitre
2006-12-14 21:58 ` Junio C Hamano
2006-12-14 22:50 ` Andy Parkins
2006-12-15 15:38 ` Jakub Narebski
2006-12-15 15:26 ` Jakub Narebski
2006-12-15 15:30 ` Nicolas Pitre
2006-12-15 15:48 ` Andreas Ericsson
2006-12-15 16:08 ` Nicolas Pitre
2006-12-15 16:12 ` Shawn Pearce
2006-12-15 16:13 ` Andreas Ericsson
2006-12-15 23:22 ` Johannes Schindelin
2006-12-15 4:07 ` Nicolas Pitre
2006-12-14 21:22 ` Junio C Hamano
2006-12-14 22:55 ` Andy Parkins
2006-12-14 23:46 ` Junio C Hamano
2006-12-15 8:58 ` Andy Parkins
2006-12-15 9:55 ` Raimund Bauer
2006-12-15 21:55 ` Junio C Hamano
2006-12-15 22:54 ` Carl Worth
2006-12-14 23:53 ` Johannes Schindelin
2006-12-14 23:52 ` Horst H. von Brand
2006-12-15 10:53 ` Jakub Narebski
2006-12-14 0:22 ` Johannes Schindelin
2006-12-14 10:21 ` Andy Parkins
2006-12-14 10:51 ` Johannes Schindelin
2006-12-14 11:23 ` Andy Parkins
2006-12-14 11:27 ` Johannes Schindelin
2006-12-14 12:00 ` Andy Parkins
2006-12-14 12:10 ` Shawn Pearce
2006-12-14 13:20 ` Andy Parkins
2006-12-15 0:15 ` Horst H. von Brand
2006-12-15 0:23 ` Johannes Schindelin
2006-12-14 17:23 ` Nicolas Pitre
2006-12-14 21:02 ` Andy Parkins
2006-12-14 23:03 ` Shawn Pearce
2006-12-15 16:16 ` Jakub Narebski
2006-12-15 21:55 ` Junio C Hamano
2006-12-15 22:48 ` Jakub Narebski
2006-12-15 23:25 ` Johannes Schindelin
2006-12-15 23:45 ` Junio C Hamano
2006-12-16 0:14 ` Johannes Schindelin
2006-12-16 0:30 ` Junio C Hamano
2006-12-16 17:12 ` Steven Grimm
2006-12-16 19:57 ` Junio C Hamano
2006-12-15 23:42 ` Junio C Hamano
2006-12-16 9:58 ` Junio C Hamano
2006-12-16 13:59 ` Jakub Narebski
2006-12-16 22:04 ` Junio C Hamano
2006-12-06 21:18 Junio C Hamano
2006-12-08 15:36 ` Jakub Narebski
2006-12-09 20:44 ` Tilman Sauerbeck
2006-12-09 21:10 ` Junio C Hamano
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
List information: http://vger.kernel.org/majordomo-info.html
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=7vzm9kvp1l.fsf@assigned-by-dhcp.cox.net \
--to=junkio@cox.net \
--cc=git@vger.kernel.org \
--cc=torvalds@osdl.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.
Code repositories for project(s) associated with this public inbox
https://80x24.org/mirrors/git.git
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 read-only IMAP folder(s) and NNTP newsgroup(s).