All of lore.kernel.org
 help / color / mirror / Atom feed
From: Junio C Hamano <gitster@pobox.com>
To: lidongyan <502024330056@smail.nju.edu.cn>
Cc: Patrick Steinhardt <ps@pks.im>,
	 Lidong Yan via GitGitGadget <gitgitgadget@gmail.com>,
	 git@vger.kernel.org
Subject: Re: [PATCH] revision: fix memory leak in prepare_show_merge()
Date: Fri, 06 Jun 2025 09:47:18 -0700	[thread overview]
Message-ID: <xmqqikl83jhl.fsf@gitster.g> (raw)
In-Reply-To: <90FE268F-2309-49F0-9C3B-DFB207CE6F47@smail.nju.edu.cn> (lidongyan's message of "Fri, 6 Jun 2025 15:31:52 +0800")

lidongyan <502024330056@smail.nju.edu.cn> writes:

> I could add this test case into my patch. Though I don’t understand
>> + git rev-parse HEAD >.git/MERGE_HEAD &&

That was not about telling "show --merge" to work on any meaningful
data and to produce any useful output.  I knew the step to prepare
for "show --merge" was leaky, so I gave a very minimum that can tickle
that codepath.  I wasn't of course proud of the direct manipulation
of the filesystem (as recent "git update-ref MERGE_HEAD HEAD" would
not even allow us to do this, sheesh, not very convenient).

If you came up with a sequence that produces a situation to use the
"git show --merge" command in a more realistic way, like below, that
is wonderful.

> If HEAD is equal to MERGE_HEAD. Would git show —merge still
> works as usual? How about something like this
>
> diff --git a/t/t7007-show.sh b/t/t7007-show.sh
> index d6cc69e0f2..f693b6e24b 100755
> --- a/t/t7007-show.sh
> +++ b/t/t7007-show.sh
> @@ -167,4 +167,28 @@ test_expect_success 'show --graph is forbidden' '
>    test_must_fail git show --graph HEAD
>  '
>  
> +test_expect_success 'unmerged index' '
> +       git reset --hard &&
> +
> +       git switch -C base &&
> +       echo "base" > conflicting &&
> +       git add conflicting &&
> +       git commit -m "base" &&
> +
> +       git branch hello &&
> +       git branch goodbye &&
> +
> +       git switch hello &&
> +       echo "hello" > conflicting &&
> +       git commit -am "hello" &&
> +
> +       git switch goodbye &&
> +       echo "goodbye" > conflicting &&
> +       git commit -am "goodbye" &&
> +
> +       git switch hello &&
> +       test_must_fail git merge goodbye &&
> +       git show --merge HEAD
> +'
> +
>  test_done

  reply	other threads:[~2025-06-06 16:47 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-06-04  3:08 [PATCH] revision: fix memory leak in prepare_show_merge() Lidong Yan via GitGitGadget
2025-06-04  7:48 ` Patrick Steinhardt
2025-06-04  7:53   ` lidongyan
2025-06-04  8:06     ` Patrick Steinhardt
2025-06-04 10:25       ` lidongyan
2025-06-05 20:56   ` Junio C Hamano
2025-06-06  7:31     ` lidongyan
2025-06-06 16:47       ` Junio C Hamano [this message]
2025-06-09  3:10         ` lidongyan
2025-06-09  8:16 ` [PATCH v2] " Lidong Yan via GitGitGadget
2025-06-09 20:48   ` Junio C Hamano
2025-06-10  0:37   ` [PATCH v3] " Lidong Yan via GitGitGadget

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=xmqqikl83jhl.fsf@gitster.g \
    --to=gitster@pobox.com \
    --cc=502024330056@smail.nju.edu.cn \
    --cc=git@vger.kernel.org \
    --cc=gitgitgadget@gmail.com \
    --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 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.