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, me@ttaylorr.com,
	Siddharth Asthana <siddharthasthana31@gmail.com>
Subject: [PATCH v7 0/2] Add mailmap mechanism in cat-file options
Date: Tue, 20 Dec 2022 11:31:11 +0530	[thread overview]
Message-ID: <20221220060113.51010-1-siddharthasthana31@gmail.com> (raw)
In-Reply-To: <20220916205946.178925-1-siddharthasthana31@gmail.com>

Thanks a ton Christian and Ævar for the review :) I have made the
suggested changes in v7.

= 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 by `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 v5

- The patch series which improves the documentation for `-s`, `--batch`,
  `--batch-check` and `--batch-command` is again part of this patch
  series with patch 3/3 squashed into patches 1/3 and 2/3 as suggested
  by Junio, Taylor and Christian. The doc patch series was perviously
  sent independently for improving the documentation of git cat-file
  options:
  https://lore.kernel.org/git/20221029092513.73982-1-siddharthasthana31@gmail.com/

- Improve the tests according to run under SHA-256 mode.

= Changes in v6

- Improve the tests so it doesn't break under macOS.

= Changes in v7

- Used `repo_read_object_file` instead of `read_object_file` because we
  have been trying to migrate away from these, and new code should use
  the non-macro variants.
- Improve the documentation of patch series.

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 | 53 +++++++++++++++++++--------
 builtin/cat-file.c             | 28 +++++++++++++++
 t/t4203-mailmap.sh             | 65 ++++++++++++++++++++++++++++++++++
 3 files changed, 132 insertions(+), 14 deletions(-)

Range-diff against v6:
1:  7f20f45183 = 1:  2097544b2d cat-file: add mailmap support to -s option
2:  971f38e064 ! 2:  8305148718 cat-file: add mailmap support to --batch-check option
    @@ Commit message
     
         2. Make one call to `oid_object_info_extended()` to get the type of the
            object. Then, if the object type is either of commit or tag, make a
    -       call to `read_object_file()` to read the contents of the object.
    +       call to `repo_read_object_file()` to read the contents of the object.
     
         I benchmarked the following command with both the above approaches and
         compared against the current implementation where `--use-mailmap`
    @@ Documentation/git-cat-file.txt: OPTIONS
     -	also need to specify the path, separated by whitespace.  See the
     -	section `BATCH OUTPUT` below for details.
     +	on stdin. May not be combined with any other options or arguments
    -+	except --textconv, --filters, or --use-mailmap.
    ++	except `--textconv`, `--filters`, or `--use-mailmap`.
     +	+
     +	* When used with `--textconv` or `--filters`, the input lines
     +	  must specify the path, separated by whitespace. See the section
    @@ Documentation/git-cat-file.txt: OPTIONS
     -	need to specify the path, separated by whitespace.  See the
     -	section `BATCH OUTPUT` below for details.
     +	Print object information for each object provided on stdin. May not be
    -+	combined with any other options or arguments except --textconv, --filters
    -+	or --use-mailmap.
    ++	combined with any other options or arguments except `--textconv`, `--filters`
    ++	or `--use-mailmap`.
     +	+
     +	* When used with `--textconv` or `--filters`, the input lines must
     +	 specify the path, separated by whitespace. See the section
    @@ builtin/cat-file.c: static void batch_object_write(const char *obj_name,
     +			size_t s = data->size;
     +			char *buf = NULL;
     +
    -+			buf = read_object_file(&data->oid, &data->type, &data->size);
    ++			buf = repo_read_object_file(the_repository, &data->oid, &data->type,
    ++						    &data->size);
     +			buf = replace_idents_using_mailmap(buf, &s);
     +			data->size = cast_size_t_to_ulong(s);
     +
-- 
2.39.0.97.g8305148718


  parent reply	other threads:[~2022-12-20  6:01 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 ` [PATCH v3 0/2] Add mailmap mechanism in cat-file options Siddharth Asthana
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 ` Siddharth Asthana [this message]
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=20221220060113.51010-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 \
    --cc=me@ttaylorr.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).