From: Taylor Blau <me@ttaylorr.com>
To: Junio C Hamano <gitster@pobox.com>
Cc: "Jeff King" <peff@peff.net>, "Patrick Steinhardt" <ps@pks.im>,
git@vger.kernel.org, "SZEDER Gábor" <szeder.dev@gmail.com>
Subject: Re: [PATCH v4] refs: implement reference transaction hook
Date: Fri, 23 Oct 2020 18:07:14 -0400 [thread overview]
Message-ID: <X5NUEtS0S30iZY0A@nand.local> (raw)
In-Reply-To: <X5M1oe4lfkUy9lAh@nand.local>
On Fri, Oct 23, 2020 at 03:57:21PM -0400, Taylor Blau wrote:
> It should be possible to keep track of the old and new OIDs via a
> non-copied pointer, but I have to untangle this code a little bit more
> before I can be sure.
This may be both easier and harder than I was imagining ;-). In the
easier direction, the following patch is sufficient to get the tests
passing again:
diff --git a/refs/files-backend.c b/refs/files-backend.c
index 04e85e7002..744c93b7ff 100644
--- a/refs/files-backend.c
+++ b/refs/files-backend.c
@@ -2311,12 +2311,11 @@ static int split_symref_update(struct ref_update *update,
new_update->parent_update = update;
/*
- * Change the symbolic ref update to log only. Also, it
- * doesn't need to check its old OID value, as that will be
- * done when new_update is processed.
+ * Change the symbolic ref update to log only. Though we don't
+ * need to check its old OID value, leave REF_HAVE_OLD alone so
+ * we can propagate it to the ref transaction hook.
*/
update->flags |= REF_LOG_ONLY | REF_NO_DEREF;
- update->flags &= ~REF_HAVE_OLD;
/*
* Add the referent. This insertion is O(N) in the transaction
But, it also means that we're now needlessly re-verifying the before
state of symrefs (or so I think, I haven't yet proved it one way or the
other).
So, I need to look into that before deciding if this is a good direction
to go.
Thanks,
Taylor
next prev parent reply other threads:[~2020-10-23 22:07 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-06-02 8:25 [PATCH] refs: implement reference transaction hooks Patrick Steinhardt
2020-06-02 17:47 ` Junio C Hamano
2020-06-03 11:26 ` Patrick Steinhardt
2020-06-07 20:12 ` SZEDER Gábor
2020-06-08 5:36 ` Patrick Steinhardt
2020-06-02 18:09 ` SZEDER Gábor
2020-06-03 9:46 ` Patrick Steinhardt
2020-06-03 12:27 ` [PATCH v2] refs: implement reference transaction hook Patrick Steinhardt
2020-06-03 16:51 ` Taylor Blau
2020-06-04 7:36 ` Patrick Steinhardt
2020-06-15 16:46 ` Taylor Blau
2020-06-16 5:45 ` Patrick Steinhardt
2020-06-03 17:44 ` Han-Wen Nienhuys
2020-06-03 18:03 ` Junio C Hamano
2020-06-18 10:27 ` [PATCH v3] " Patrick Steinhardt
2020-06-18 22:23 ` Junio C Hamano
2020-06-19 6:56 ` [PATCH v4] " Patrick Steinhardt
2020-10-23 1:03 ` Jeff King
2020-10-23 3:59 ` Junio C Hamano
2020-10-23 19:57 ` Taylor Blau
2020-10-23 22:07 ` Taylor Blau [this message]
2020-10-26 7:43 ` Patrick Steinhardt
2020-10-26 23:52 ` Taylor Blau
2020-10-27 5:37 ` Jeff King
2020-10-28 18:22 ` Patrick Steinhardt
2020-10-23 20:00 ` Taylor Blau
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=X5NUEtS0S30iZY0A@nand.local \
--to=me@ttaylorr.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=peff@peff.net \
--cc=ps@pks.im \
--cc=szeder.dev@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).