git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: David Turner <dturner@twopensource.com>
To: Johan Herland <johan@herland.net>
Cc: Git mailing list <git@vger.kernel.org>,
	Eric Sunshine <sunshine@sunshineco.com>
Subject: Re: [PATCH v4 2/2] notes: handle multiple worktrees
Date: Mon, 03 Aug 2015 14:46:23 -0400	[thread overview]
Message-ID: <1438627583.4439.11.camel@twopensource.com> (raw)
In-Reply-To: <CALKQrgcrpQ2j2J-65RJhN7owwmSzhqyGinGjUbicFbY=m82tNA@mail.gmail.com>

On Sat, 2015-08-01 at 15:51 +0200, Johan Herland wrote:
> On Sat, Aug 1, 2015 at 12:11 AM, David Turner <dturner@twopensource.com> wrote:
> > Before creating NOTES_MERGE_REF, check NOTES_MERGE_REF using
> > find_shared_symref and die if we find one.  This prevents simultaneous
> > merges to the same notes branch from different worktrees.
> >
> > Signed-off-by: David Turner <dturner@twopensource.com>
> > ---
> >  builtin/notes.c                  |  5 +++
> >  t/t3320-notes-merge-worktrees.sh | 72 ++++++++++++++++++++++++++++++++++++++++
> >  2 files changed, 77 insertions(+)
> >  create mode 100755 t/t3320-notes-merge-worktrees.sh
> >
> > diff --git a/builtin/notes.c b/builtin/notes.c
> > index 63f95fc..e4dda79 100644
> > --- a/builtin/notes.c
> > +++ b/builtin/notes.c
> > @@ -19,6 +19,7 @@
> >  #include "string-list.h"
> >  #include "notes-merge.h"
> >  #include "notes-utils.h"
> > +#include "branch.h"
> >
> >  static const char * const git_notes_usage[] = {
> >         N_("git notes [--ref <notes-ref>] [list [<object>]]"),
> > @@ -825,10 +826,14 @@ static int merge(int argc, const char **argv, const char *prefix)
> >                 update_ref(msg.buf, default_notes_ref(), result_sha1, NULL,
> >                            0, UPDATE_REFS_DIE_ON_ERR);
> >         else { /* Merge has unresolved conflicts */
> > +               char *existing;
> >                 /* Update .git/NOTES_MERGE_PARTIAL with partial merge result */
> >                 update_ref(msg.buf, "NOTES_MERGE_PARTIAL", result_sha1, NULL,
> >                            0, UPDATE_REFS_DIE_ON_ERR);
> >                 /* Store ref-to-be-updated into .git/NOTES_MERGE_REF */
> > +               existing = find_shared_symref("NOTES_MERGE_REF", default_notes_ref());
> 
> Please confirm my assumption here: existing originally comes from a
> strbuf_detach(), so it's the caller's (i.e. our) responsibility to
> free() it, but we don't care, as we just die()d anyway. Correct?

Confirmed.

 I will fix the other issues you reported.

  reply	other threads:[~2015-08-03 18:46 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-07-31 22:11 [PATCH v4 1/2] worktrees: add find_shared_symref David Turner
2015-07-31 22:11 ` [PATCH v4 2/2] notes: handle multiple worktrees David Turner
2015-08-01 13:51   ` Johan Herland
2015-08-03 18:46     ` David Turner [this message]
2015-07-31 22:20 ` [PATCH v4 1/2] worktrees: add find_shared_symref Eric Sunshine

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=1438627583.4439.11.camel@twopensource.com \
    --to=dturner@twopensource.com \
    --cc=git@vger.kernel.org \
    --cc=johan@herland.net \
    --cc=sunshine@sunshineco.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.
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).