On Sat, 2015-08-01 at 15:51 +0200, Johan Herland wrote: > On Sat, Aug 1, 2015 at 12:11 AM, David Turner <dturner@xxxxxxxxxxxxxxxx> 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@xxxxxxxxxxxxxxxx> > > --- > > 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. -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html