git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH v4 2/2] notes: handle multiple worktrees

From
David Turner <dturner@twopensource.com>
Date
Aug 3, 2015, 18:46 UTC
Message-ID
<1438627583.4439.11.camel@twopensource.com>
In-Reply-To
<CALKQrgcrpQ2j2J-65RJhN7owwmSzhqyGinGjUbicFbY=m82tNA@mail.gmail.com>
On Sat, 2015-08-01 at 15:51 +0200, Johan Herland wrote:
Show 38 quoted lines
> 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.
Previous: Johan HerlandNext: Eric Sunshine
Message 4 of 5 in “worktrees: add find_shared_symref”
  1. 1/2 worktrees: add find_shared_symrefDavid Turner, Jul 31, 2015
  2. 2/2 notes: handle multiple worktreesDavid Turner, Jul 31, 2015
  3. Johan HerlandAug 1, 2015
  4. David TurnerAug 3, 2015
  5. Eric SunshineJul 31, 2015

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.