From: Elijah Newren <newren@gmail.com>
To: John Cai <johncai86@gmail.com>
Cc: phillip.wood@dunelm.org.uk,
"Ævar Arnfjörð Bjarmason" <avarab@gmail.com>,
"John Cai via GitGitGadget" <gitgitgadget@gmail.com>,
git@vger.kernel.org, "Patrick Steinhardt" <ps@pks.im>
Subject: Re: [PATCH 2/2] diff: teach diff to read gitattribute diff-algorithm
Date: Thu, 9 Feb 2023 01:09:30 -0800 [thread overview]
Message-ID: <CABPp-BHhhUhRqn=kKcDiV3EMckBSk2EE8TKZ-PoeqTsKWuvAng@mail.gmail.com> (raw)
In-Reply-To: <65129323-326F-4E4A-B6F8-06DC3BBE7B58@gmail.com>
Hi John and Phillip,
On Tue, Feb 7, 2023 at 9:05 AM John Cai <johncai86@gmail.com> wrote:
>
[...]
> > Perhaps I'm over simplifying but having read the issue you linked to I couldn't help feeling that the majority of users might be satisfied by just changing gitlab to use the patience algorithm when generating diffs.
>
> Right, I recognize this is a judgment call that may be best left up to the list.
>
> We don't have a way in GitLab to change the diff algorithm currently. Of course
> that can be implemented outside of Git,
Well, the below doesn't allow users to make diffs better for
*individual* files of interest, but if you agree with me that we
should just make diffs better for all users automatically, it's a
two-line change in git.git that I'd love to eventually convince the
project to take (though obviously doing that would also require some
documentation changes and some good messaging in release notes and
whatnot). I've used it for a good long while, and had a few dozen
users using this patch too, all without complaint:
diff --git a/diff.c b/diff.c
index 329eebf16a..77a46d5b7d 100644
--- a/diff.c
+++ b/diff.c
@@ -55,7 +55,7 @@ static int diff_relative;
static int diff_stat_graph_width;
static int diff_dirstat_permille_default = 30;
static struct diff_options default_diff_options;
-static long diff_algorithm;
+static long diff_algorithm = XDF_HISTOGRAM_DIFF;
static unsigned ws_error_highlight_default = WSEH_NEW;
static char diff_colors[][COLOR_MAXLEN] = {
diff --git a/t/t4015-diff-whitespace.sh b/t/t4015-diff-whitespace.sh
index b298f220e0..2f663eab72 100755
--- a/t/t4015-diff-whitespace.sh
+++ b/t/t4015-diff-whitespace.sh
@@ -1549,7 +1549,7 @@ test_expect_success 'short lines of opposite
sign do not get marked as moved' '
this line should be marked as oldMoved newMoved
unchanged 4
EOF
- test_expect_code 1 git diff --no-index --color --color-moved=zebra \
+ test_expect_code 1 git diff --diff-algorithm=myers --no-index
--color --color-moved=zebra \
old.txt new.txt >output && cat output &&
grep -v index output | test_decode_color >actual &&
cat >expect <<-\EOF &&
I used histogram above rather than patience, since (a) it's what git's
merge backend uses, (b) it produces roughly similar results to
patience from a user perspective, (c) past testing has shown it to be
somewhat faster than patience, and (d) we've potentially got some
leads in how to speed up our histogram implementation from the README
over at https://github.com/pascalkuthe/imara-diff. But, if you really
wanted to use patience as the default, it'd also be an easy tweak.
Anyway, just some food for thought.
next prev parent reply other threads:[~2023-02-09 9:09 UTC|newest]
Thread overview: 78+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-02-05 3:46 [PATCH 0/2] Teach diff to honor diff algorithms set through git attributes John Cai via GitGitGadget
2023-02-05 3:46 ` [PATCH 1/2] diff: consolidate diff algorithm option parsing John Cai via GitGitGadget
2023-02-06 16:20 ` Phillip Wood
2023-02-05 3:46 ` [PATCH 2/2] diff: teach diff to read gitattribute diff-algorithm John Cai via GitGitGadget
2023-02-05 17:50 ` Eric Sunshine
2023-02-06 13:10 ` John Cai
2023-02-06 16:27 ` Phillip Wood
2023-02-06 18:14 ` Eric Sunshine
2023-02-06 19:50 ` John Cai
2023-02-09 8:26 ` Elijah Newren
2023-02-09 10:31 ` "bad" diffs (was: [PATCH 2/2] diff: teach diff to read gitattribute diff-algorithm) Ævar Arnfjörð Bjarmason
2023-02-09 16:37 ` [PATCH 2/2] diff: teach diff to read gitattribute diff-algorithm John Cai
2023-02-06 16:39 ` Ævar Arnfjörð Bjarmason
2023-02-06 20:37 ` John Cai
2023-02-07 14:55 ` Phillip Wood
2023-02-07 17:00 ` John Cai
2023-02-09 9:09 ` Elijah Newren [this message]
2023-02-09 14:44 ` Phillip Wood
2023-02-10 9:57 ` Elijah Newren
2023-02-11 17:39 ` Phillip Wood
2023-02-11 1:59 ` Jeff King
2023-02-15 2:35 ` Elijah Newren
2023-02-15 4:21 ` Jeff King
2023-02-15 5:20 ` Junio C Hamano
2023-02-15 14:44 ` Phillip Wood
2023-02-15 15:00 ` Jeff King
2023-02-07 17:27 ` Ævar Arnfjörð Bjarmason
2023-02-15 14:47 ` Phillip Wood
2023-02-09 8:44 ` Elijah Newren
2023-02-14 21:16 ` John Cai
2023-02-15 3:41 ` Elijah Newren
2023-02-09 7:50 ` Elijah Newren
2023-02-09 9:41 ` Ævar Arnfjörð Bjarmason
2023-02-11 2:04 ` Jeff King
2023-02-07 17:56 ` Jeff King
2023-02-07 20:18 ` Ævar Arnfjörð Bjarmason
2023-02-07 20:47 ` Junio C Hamano
2023-02-07 21:05 ` Ævar Arnfjörð Bjarmason
2023-02-07 21:28 ` Junio C Hamano
2023-02-07 21:44 ` Ævar Arnfjörð Bjarmason
2023-02-09 16:34 ` John Cai
2023-02-11 1:39 ` Jeff King
2023-02-14 21:40 ` [PATCH v2 0/2] Teach diff to honor diff algorithms set through git attributes John Cai via GitGitGadget
2023-02-14 21:40 ` [PATCH v2 1/2] diff: consolidate diff algorithm option parsing John Cai via GitGitGadget
2023-02-15 2:38 ` Junio C Hamano
2023-02-15 23:34 ` John Cai
2023-02-15 23:42 ` Junio C Hamano
2023-02-16 2:14 ` Jeff King
2023-02-16 2:57 ` Junio C Hamano
2023-02-16 20:34 ` John Cai
2023-02-14 21:40 ` [PATCH v2 2/2] diff: teach diff to read gitattribute diff-algorithm John Cai via GitGitGadget
2023-02-15 2:56 ` Junio C Hamano
2023-02-15 3:20 ` Junio C Hamano
2023-02-16 20:37 ` John Cai
2023-02-17 20:21 ` [PATCH v3 0/2] Teach diff to honor diff algorithms set through git attributes John Cai via GitGitGadget
2023-02-17 20:21 ` [PATCH v3 1/2] diff: consolidate diff algorithm option parsing John Cai via GitGitGadget
2023-02-17 21:27 ` Junio C Hamano
2023-02-18 1:36 ` Elijah Newren
2023-02-17 20:21 ` [PATCH v3 2/2] diff: teach diff to read algorithm from diff driver John Cai via GitGitGadget
2023-02-17 21:50 ` Junio C Hamano
2023-02-18 2:56 ` Elijah Newren
2023-02-20 15:32 ` John Cai
2023-02-20 16:21 ` Elijah Newren
2023-02-20 16:49 ` John Cai
2023-02-20 17:32 ` Elijah Newren
2023-02-20 20:53 ` John Cai
2023-02-22 19:47 ` Jeff King
2023-02-24 17:44 ` John Cai
2023-02-18 1:16 ` [PATCH v3 0/2] Teach diff to honor diff algorithms set through git attributes Elijah Newren
2023-02-20 13:37 ` John Cai
2023-02-20 21:04 ` [PATCH v4 " John Cai via GitGitGadget
2023-02-20 21:04 ` [PATCH v4 1/2] diff: consolidate diff algorithm option parsing John Cai via GitGitGadget
2023-02-20 21:04 ` [PATCH v4 2/2] diff: teach diff to read algorithm from diff driver John Cai via GitGitGadget
2023-02-21 17:34 ` [PATCH v4 0/2] Teach diff to honor diff algorithms set through git attributes Junio C Hamano
2023-02-21 18:05 ` Elijah Newren
2023-02-21 18:51 ` Junio C Hamano
2023-02-21 19:36 ` John Cai
2023-02-21 20:16 ` Elijah Newren
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='CABPp-BHhhUhRqn=kKcDiV3EMckBSk2EE8TKZ-PoeqTsKWuvAng@mail.gmail.com' \
--to=newren@gmail.com \
--cc=avarab@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitgitgadget@gmail.com \
--cc=johncai86@gmail.com \
--cc=phillip.wood@dunelm.org.uk \
--cc=ps@pks.im \
/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).