From: Brian Henderson <henderson.bj@gmail.com>
To: git@vger.kernel.org
Cc: peff@peff.net, e@80x24.org, gitster@pobox.com,
Brian Henderson <henderson.bj@gmail.com>
Subject: [PATCH v4 3/3] diff-highlight: add support for --graph output.
Date: Mon, 29 Aug 2016 10:33:47 -0700 [thread overview]
Message-ID: <20160829173347.454-4-henderson.bj@gmail.com> (raw)
In-Reply-To: <20160829173347.454-1-henderson.bj@gmail.com>
---
contrib/diff-highlight/diff-highlight | 19 +++++++++++++------
contrib/diff-highlight/t/t9400-diff-highlight.sh | 2 +-
2 files changed, 14 insertions(+), 7 deletions(-)
diff --git a/contrib/diff-highlight/diff-highlight b/contrib/diff-highlight/diff-highlight
index ffefc31..9280c88 100755
--- a/contrib/diff-highlight/diff-highlight
+++ b/contrib/diff-highlight/diff-highlight
@@ -21,6 +21,10 @@ my $RESET = "\x1b[m";
my $COLOR = qr/\x1b\[[0-9;]*m/;
my $BORING = qr/$COLOR|\s/;
+# The patch portion of git log -p --graph should only ever have preceding | and
+# not / or \ as merge history only shows up on the commit line.
+my $GRAPH = qr/$COLOR?\|$COLOR?\s+/;
+
my @removed;
my @added;
my $in_hunk;
@@ -32,12 +36,12 @@ $SIG{PIPE} = 'DEFAULT';
while (<>) {
if (!$in_hunk) {
print;
- $in_hunk = /^$COLOR*\@/;
+ $in_hunk = /^$GRAPH*$COLOR*\@/;
}
- elsif (/^$COLOR*-/) {
+ elsif (/^$GRAPH*$COLOR*-/) {
push @removed, $_;
}
- elsif (/^$COLOR*\+/) {
+ elsif (/^$GRAPH*$COLOR*\+/) {
push @added, $_;
}
else {
@@ -46,7 +50,7 @@ while (<>) {
@added = ();
print;
- $in_hunk = /^$COLOR*[\@ ]/;
+ $in_hunk = /^$GRAPH*$COLOR*[\@ ]/;
}
# Most of the time there is enough output to keep things streaming,
@@ -163,6 +167,9 @@ sub highlight_pair {
}
}
+# we split either by $COLOR or by character. This has the side effect of
+# leaving in graph cruft. It works because the graph cruft does not contain "-"
+# or "+"
sub split_line {
local $_ = shift;
return utf8::decode($_) ?
@@ -211,8 +218,8 @@ sub is_pair_interesting {
my $suffix_a = join('', @$a[($sa+1)..$#$a]);
my $suffix_b = join('', @$b[($sb+1)..$#$b]);
- return $prefix_a !~ /^$COLOR*-$BORING*$/ ||
- $prefix_b !~ /^$COLOR*\+$BORING*$/ ||
+ return $prefix_a !~ /^$GRAPH*$COLOR*-$BORING*$/ ||
+ $prefix_b !~ /^$GRAPH*$COLOR*\+$BORING*$/ ||
$suffix_a !~ /^$BORING*$/ ||
$suffix_b !~ /^$BORING*$/;
}
diff --git a/contrib/diff-highlight/t/t9400-diff-highlight.sh b/contrib/diff-highlight/t/t9400-diff-highlight.sh
index 54e11fe..e42232d 100755
--- a/contrib/diff-highlight/t/t9400-diff-highlight.sh
+++ b/contrib/diff-highlight/t/t9400-diff-highlight.sh
@@ -209,7 +209,7 @@ test_expect_failure 'diff-highlight highlights mismatched hunk size' '
# TODO add multi-byte test
-test_expect_failure 'diff-highlight works with the --graph option' '
+test_expect_success 'diff-highlight works with the --graph option' '
dh_test_setup_history &&
# topo-order so that the order of the commits is the same as with --graph
--
2.9.3
next prev parent reply other threads:[~2016-08-29 17:34 UTC|newest]
Thread overview: 54+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-07-30 15:11 [PATCH 0/3] diff-highlight: add support for git log --graph output Brian Henderson
2016-07-30 15:11 ` [PATCH 1/3] diff-highlight: add some tests Brian Henderson
2016-08-10 8:56 ` Eric Wong
2016-08-15 16:20 ` Brian Henderson
2016-08-15 16:25 ` Junio C Hamano
2016-08-17 15:31 ` [PATCH v2 0/3] diff-highlight: add support for git log --graph output Brian Henderson
2016-08-19 21:19 ` Eric Wong
2016-08-19 21:23 ` Jeff King
2016-08-17 15:31 ` [PATCH v2 1/3] diff-highlight: add some tests Brian Henderson
2016-08-17 19:09 ` Junio C Hamano
2016-08-19 14:42 ` Brian Henderson
2016-08-19 14:51 ` Jeff King
2016-08-19 15:13 ` Brian Henderson
2016-08-19 17:08 ` [PATCH v3 0/3] diff-highlight: add support for git log --graph output Brian Henderson
2016-08-19 17:08 ` [PATCH v3 1/3] diff-highlight: add some tests Brian Henderson
2016-08-19 18:10 ` Junio C Hamano
2016-08-19 19:30 ` Brian Henderson
2016-08-19 20:56 ` Eric Wong
2016-08-19 20:18 ` [PATCH] " Brian Henderson
2016-08-19 20:44 ` Junio C Hamano
2016-08-19 21:04 ` Jeff King
2016-08-19 22:31 ` Junio C Hamano
2016-08-22 15:55 ` Brian Henderson
2016-08-23 4:12 ` Jeff King
2016-08-29 17:33 ` [PATCH v4 0/3] diff-highlight: add support for --graph option Brian Henderson
2016-08-29 17:33 ` [PATCH v4 1/3] diff-highlight: add some tests Brian Henderson
2016-08-29 17:33 ` [PATCH v4 2/3] diff-highlight: add failing test for handling --graph output Brian Henderson
2016-08-29 17:33 ` Brian Henderson [this message]
2016-08-29 21:37 ` [PATCH v4 0/3] diff-highlight: add support for --graph option Junio C Hamano
2016-08-30 14:07 ` Brian Henderson
2016-08-30 14:07 ` [PATCH v4 1/3] diff-highlight: add some tests Brian Henderson
2016-08-30 14:07 ` [PATCH v4 2/3] diff-highlight: add failing test for handling --graph output Brian Henderson
2016-08-30 14:07 ` [PATCH v4 3/3] diff-highlight: add support for " Brian Henderson
2016-08-31 5:02 ` [PATCH v4 0/3] diff-highlight: add support for --graph option Jeff King
2016-08-31 5:02 ` [PATCH 1/3] diff-highlight: ignore test cruft Jeff King
2016-08-31 5:03 ` [PATCH 2/3] diff-highlight: add multi-byte tests Jeff King
2016-08-31 5:05 ` [PATCH 3/3] diff-highlight: avoid highlighting combined diffs Jeff King
2016-08-30 8:11 ` [PATCH v4 0/3] diff-highlight: add support for --graph option Jeff King
2016-08-19 21:05 ` [PATCH] diff-highlight: add some tests Junio C Hamano
2016-08-19 17:08 ` [PATCH v3 2/3] diff-highlight: add failing test for handling --graph output Brian Henderson
2016-08-19 18:25 ` Junio C Hamano
2016-08-19 17:08 ` [PATCH v3 3/3] diff-highlight: add support for " Brian Henderson
2016-08-19 18:27 ` Junio C Hamano
2016-08-17 15:31 ` [PATCH v2 2/3] diff-highlight: add failing test for handling " Brian Henderson
2016-08-17 19:18 ` Junio C Hamano
2016-08-17 15:31 ` [PATCH v2 3/3] diff-highlight: add support for " Brian Henderson
2016-08-19 14:37 ` Jeff King
2016-08-15 16:40 ` [PATCH 1/3] diff-highlight: add some tests Lars Schneider
2016-08-16 20:48 ` Junio C Hamano
2016-08-24 9:38 ` Lars Schneider
2016-07-30 15:11 ` [PATCH 2/3] diff-highlight: add failing test for handling --graph output Brian Henderson
2016-07-30 15:11 ` [PATCH 3/3] diff-highlight: add support for " Brian Henderson
2016-08-01 17:16 ` Junio C Hamano
2016-08-04 15:02 ` [PATCH] diff-highlight: Add comment for our assumption about " Brian Henderson
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=20160829173347.454-4-henderson.bj@gmail.com \
--to=henderson.bj@gmail.com \
--cc=e@80x24.org \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=peff@peff.net \
/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.