git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Siddharth Asthana <siddharthasthana31@gmail.com>
To: git@vger.kernel.org
Cc: christian.couder@gmail.com, gitster@pobox.com,
	johncai86@gmail.com, Johannes.Schindelin@gmx.de,
	avarab@gmail.com,
	Siddharth Asthana <siddharthasthana31@gmail.com>
Subject: [PATCH v3 0/2] Add mailmap mechanism in cat-file options
Date: Sat, 29 Oct 2022 15:54:57 +0530	[thread overview]
Message-ID: <20221029102459.82428-1-siddharthasthana31@gmail.com> (raw)
In-Reply-To: <20220916205946.178925-1-siddharthasthana31@gmail.com>

Thanks a lot Avar for the review :) I have made the suggested changes.

= Description

At present, `git-cat-file` command with `--batch-check` and `-s` options
does not complain when `--use-mailmap` option is given. The latter
option is just ignored. Instead, for commit/tag objects, the command
should compute the size of the object after replacing the idents and
report it. So, this patch series makes `-s` and `--batch-check` options
of `git-cat-file` honor mailmap when used with `--use-mailmap` option.

In this patch series we didn't want to change that '%(objectsize)'
always shows the size of the original object even when `--use-mailmap`
is set because first we have the long term plan to unify how the formats
for `git cat-file` and other commands works. And second existing formats
like the "pretty formats" used bt `git log` have different options for
fields respecting mailmap or not respecting it (%an is for author name
while %aN for author name respecting mailmap).

I would like to thank my mentors, Christian Couder and John Cai, for all
of their help!
Looking forward to the reviews!

= Patch Organization

- The first patch makes `-s` option to return updated size of the
  <commit/tag> object, when combined with `--use-mailmap` option, after
  replacing the idents using the mailmap mechanism.
- The second patch makes `--batch-check` option to return updated size of
  the <commit/tag> object, when combined with `--use-mailmap` option,
  after replacing the idents using the mailmap mechanism.

= Changes in v2:

- The commit messages of both the patches have been improved.
- In the second patch, we were populating the `contentp` field of the
  `object_info` structure when `--batch-check` was combined with
  `--use-mailmap`. Which made us read the contents of tree and blob
  object types as well, which affected the performance. We should only
  be reading the contents for commit or tag object types. The second
  patch has been updated to do just that.

= Changes in v3:

- Make the tests a bit more self documenting by running commands in test
  without using mailmap flag.
- In the first patch added the test for tag objects as well.

Siddharth Asthana (2):
  cat-file: add mailmap support to -s option
  cat-file: add mailmap support to --batch-check option

 Documentation/git-cat-file.txt |  6 +++-
 builtin/cat-file.c             | 27 ++++++++++++++++
 t/t4203-mailmap.sh             | 59 ++++++++++++++++++++++++++++++++++
 3 files changed, 91 insertions(+), 1 deletion(-)

Range-diff against v2:
-:  ---------- > 1:  4b0231504b cat-file: add mailmap support to -s option
1:  0e142beb2b ! 2:  2e87897fbb cat-file: add mailmap support to --batch-check option
    @@ builtin/cat-file.c: static void batch_object_write(const char *obj_name,
      	strbuf_reset(scratch);
     
      ## t/t4203-mailmap.sh ##
    -@@ t/t4203-mailmap.sh: test_expect_success 'git cat-file -s returns correct size with --use-mailmap' '
    +@@ t/t4203-mailmap.sh: test_expect_success 'git cat-file -s returns correct size with --use-mailmap for
      	test_cmp expect actual
      '
      
     +test_expect_success 'git cat-file --batch-check returns correct size with --use-mailmap' '
     +	test_when_finished "rm .mailmap" &&
    -+	cat >.mailmap <<-EOF &&
    ++	cat >.mailmap <<-\EOF &&
     +	C O Mitter <committer@example.com> Orig <orig@example.com>
     +	EOF
    -+	echo "92d99959b011b1cd69fe7be5315d6732fe302575 commit 220" >expect &&
    ++	cat >expect <<-\EOF &&
    ++	92d99959b011b1cd69fe7be5315d6732fe302575 commit 209
    ++	92d99959b011b1cd69fe7be5315d6732fe302575 commit 220
    ++	EOF
     +	echo "HEAD" >in &&
    -+	git cat-file --use-mailmap --batch-check <in >actual &&
    ++	git cat-file --batch-check <in >actual &&
    ++	git cat-file --use-mailmap --batch-check <in >>actual &&
     +	test_cmp expect actual
     +'
     +
     +test_expect_success 'git cat-file --batch-command returns correct size with --use-mailmap' '
     +	test_when_finished "rm .mailmap" &&
    -+	cat >.mailmap <<-EOF &&
    ++	cat >.mailmap <<-\EOF &&
     +	C O Mitter <committer@example.com> Orig <orig@example.com>
     +	EOF
    -+	echo "92d99959b011b1cd69fe7be5315d6732fe302575 commit 220" >expect &&
    ++	cat >expect <<-\EOF &&
    ++	92d99959b011b1cd69fe7be5315d6732fe302575 commit 209
    ++	92d99959b011b1cd69fe7be5315d6732fe302575 commit 220
    ++	EOF
     +	echo "info HEAD" >in &&
    -+	git cat-file --use-mailmap --batch-command <in >actual &&
    ++	git cat-file --batch-command <in >actual &&
    ++	git cat-file --use-mailmap --batch-command <in >>actual &&
     +	test_cmp expect actual
     +'
     +
2:  e95cbd7932 < -:  ---------- Add Test
-- 
2.38.1.282.g2e87897fbb


  parent reply	other threads:[~2022-10-29 10:25 UTC|newest]

Thread overview: 44+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-09-16 20:59 [PATCH 0/3] Add mailmap mechanism in --batch-check options Siddharth Asthana
2022-09-16 20:59 ` [PATCH 1/3] doc/cat-file: allow --use-mailmap for --batch options Siddharth Asthana
2022-09-16 22:02   ` Junio C Hamano
2022-09-16 20:59 ` [PATCH 2/3] cat-file: add mailmap support to -s option Siddharth Asthana
2022-09-16 22:22   ` Junio C Hamano
2022-09-16 20:59 ` [PATCH 3/3] cat-file: add mailmap support to --batch-check option Siddharth Asthana
2022-09-16 22:35   ` Junio C Hamano
2022-09-26 10:53 ` [PATCH v2 0/2] Add mailmap mechanism in cat-file options Siddharth Asthana
2022-09-26 10:53   ` [PATCH v2 1/2] cat-file: add mailmap support to -s option Siddharth Asthana
2022-09-26 13:16     ` Ævar Arnfjörð Bjarmason
2022-09-26 13:25     ` Ævar Arnfjörð Bjarmason
2022-09-26 10:53   ` [PATCH v2 2/2] cat-file: add mailmap support to --batch-check option Siddharth Asthana
2022-10-29 10:24 ` Siddharth Asthana [this message]
2022-10-29 10:24   ` [PATCH v3 1/2] cat-file: add mailmap support to -s option Siddharth Asthana
2022-10-31 11:49     ` Christian Couder
2022-10-29 10:24   ` [PATCH v3 2/2] cat-file: add mailmap support to --batch-check option Siddharth Asthana
2022-10-31 11:43     ` Christian Couder
2022-10-29 18:00   ` [PATCH v3 0/2] Add mailmap mechanism in cat-file options Taylor Blau
2022-11-13 21:28 ` [PATCH v4 0/3] " Siddharth Asthana
2022-11-13 21:28   ` [PATCH v4 1/3] cat-file: add mailmap support to -s option Siddharth Asthana
2022-11-13 21:28   ` [PATCH v4 2/3] cat-file: add mailmap support to --batch-check option Siddharth Asthana
2022-11-15 21:40     ` Taylor Blau
2022-11-13 21:28   ` [PATCH v4 3/3] doc/cat-file: allow --use-mailmap for --batch options Siddharth Asthana
2022-11-14 17:48   ` [PATCH v4 0/3] Add mailmap mechanism in cat-file options Christian Couder
2022-11-14 22:30     ` Taylor Blau
2022-11-20  7:42     ` Siddharth Asthana
2022-11-20  7:48 ` [PATCH v5 0/2] " Siddharth Asthana
2022-11-20  7:48   ` [PATCH v5 1/2] cat-file: add mailmap support to -s option Siddharth Asthana
2022-11-21  7:27     ` Junio C Hamano
2022-11-21  9:40       ` Christian Couder
2022-11-21  9:45         ` Junio C Hamano
2022-11-21 11:27         ` Ævar Arnfjörð Bjarmason
2022-11-20  7:48   ` [PATCH v5 2/2] cat-file: add mailmap support to --batch-check option Siddharth Asthana
2022-11-21  7:38     ` Junio C Hamano
2022-11-30  9:19       ` Junio C Hamano
2022-12-01 15:55 ` [PATCH v6 0/2] Add mailmap mechanism in cat-file options Siddharth Asthana
2022-12-01 15:55   ` [PATCH v6 1/2] cat-file: add mailmap support to -s option Siddharth Asthana
2022-12-01 15:55   ` [PATCH v6 2/2] cat-file: add mailmap support to --batch-check option Siddharth Asthana
2022-12-14 11:27     ` Ævar Arnfjörð Bjarmason
2022-12-14 14:04     ` Christian Couder
2022-12-20  6:01 ` [PATCH v7 0/2] Add mailmap mechanism in cat-file options Siddharth Asthana
2022-12-20  6:01   ` [PATCH v7 1/2] cat-file: add mailmap support to -s option Siddharth Asthana
2022-12-20  6:01   ` [PATCH v7 2/2] cat-file: add mailmap support to --batch-check option Siddharth Asthana
2022-12-20 13:02   ` [PATCH v7 0/2] Add mailmap mechanism in cat-file options Ævar Arnfjörð Bjarmason

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=20221029102459.82428-1-siddharthasthana31@gmail.com \
    --to=siddharthasthana31@gmail.com \
    --cc=Johannes.Schindelin@gmx.de \
    --cc=avarab@gmail.com \
    --cc=christian.couder@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=johncai86@gmail.com \
    /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).