All of lore.kernel.org
 help / color / mirror / Atom feed
From: Johan Herland <johan@herland.net>
To: Jonathan Nieder <jrnieder@gmail.com>
Cc: git@vger.kernel.org, bebarino@gmail.com, gitster@pobox.com
Subject: Re: [PATCH 07/18] builtin/notes.c: Split notes ref DWIMmery into a separate function
Date: Thu, 7 Oct 2010 15:56:13 +0200	[thread overview]
Message-ID: <201010071556.14555.johan@herland.net> (raw)
In-Reply-To: <20101005155053.GH12797@burratino>

On Tuesday 5. October 2010 17.50.53 Jonathan Nieder wrote:
> Johan Herland wrote:
> > +static void expand_notes_ref(struct strbuf *sb)
> > +{
> > +	if (!prefixcmp(sb->buf, "refs/notes/"))
> > +		return; /* we're happy */
> > +	else if (!prefixcmp(sb->buf, "notes/"))
> > +		strbuf_insert(sb, 0, "refs/", 5);
> > +	else
> > +		strbuf_insert(sb, 0, "refs/notes/", 11);
> > +}
> 
> Aside: I'm not sure this is the most convenient rule to use after all.

FTR, that rule is not introduced by this patch, the patch merely moves it into 
a separate function.

> Example:
> 
>  $ git log --notes-ref=charon/notes/full
>  fatal: unrecognized argument: --notes-ref=charon/notes/full
>  $ git log --show-notes=charon/notes/full
>  warning: notes ref refs/notes/charon/notes/full is invalid
> ...
>  $ git log --show-notes=remotes/charon/notes/full
>  warning: notes ref refs/notes/remotes/charon/notes/full is invalid
> ...
>  $ git log --show-notes=refs/remotes/charon/notes/full -1
>  commit 16461e8e5fc5b2dbe9176b9a8313c395e1e07304
>  Merge: c3e5a06 79bd09f
>  Author: Junio C Hamano <gitster@pobox.com>
>  Date:   Thu Sep 30 16:02:27 2010 -0700
> 
>      Merge branch 'il/remote-fd-ext' into pu
> 
>      * il/remote-fd-ext:
>        fixup! git-remote-fd
> 
>  Notes (remotes/charon/notes/full):
>      Pu-Overview:
>          What's cooking in git.git (Sep 2010, #07; Wed, 29)
>  $

Indeed, if you keep notes refs outside refs/notes, the current behaviour is 
not very user-friendly. So far, we've required all notes refs to be within 
refs/notes. (See for example init_notes_check() in builtin/notes.c, which 
refuses to work with notes refs outside 'refs/notes/', hence was probably the 
reason for adding the above code in the first place.)

I guess this moves us towards the discussion of how to handle remote notes 
refs and how to synchronize them on fetch/push. In short, if we want to keep 
notes refs outside of refs/notes (e.g. in refs/remotes/foo/notes), we need to 
change this part of the code.

> And now that I think of it, the revision args parser uses its own code
> for this...

I assuming you're talking about the revision args parser's DWIMing of "foo" 
into the first existing ref in the following list:

1. $GIT_DIR/foo
2. refs/foo
3. refs/tags/foo
4. refs/heads/foo
5. refs/remotes/foo
6. refs/remotes/foo/HEAD

If we want to reuse this DWIMery, we obviously want a different list of "auto-
completions". Maybe something like:

1. refs/notes/foo
2. refs/remote-notes/foo (depends on how we organize remote notes refs)
3. ?

> Regardless, this patch is a step in the right direction imho.

Thanks, I expect future patches to change this code in order to deal with 
remote notes refs. For the purposes of the current patch series, I will assume 
that all notes refs live under refs/notes.


...Johan

-- 
Johan Herland, <johan@herland.net>
www.herland.net

  reply	other threads:[~2010-10-07 13:56 UTC|newest]

Thread overview: 46+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-09-29  0:23 [PATCH 00/18] git notes merge Johan Herland
2010-09-29  0:23 ` [PATCH 01/18] (trivial) notes.h: Minor documentation fixes to copy_notes() Johan Herland
2010-10-05 14:55   ` Jonathan Nieder
2010-10-05 15:22     ` Johan Herland
2010-10-05 15:26       ` Jonathan Nieder
2010-09-29  0:23 ` [PATCH 02/18] notes.h: Make default_notes_ref() available in notes API Johan Herland
2010-09-29  0:23 ` [PATCH 03/18] notes.h/c: Clarify the handling of notes objects that are == null_sha1 Johan Herland
2010-10-05 15:21   ` Jonathan Nieder
2010-10-05 22:30     ` Johan Herland
2010-09-29  0:23 ` [PATCH 04/18] notes.h/c: Propagate combine_notes_fn return value to add_note() and beyond Johan Herland
2010-10-05 15:38   ` Jonathan Nieder
2010-10-06 19:40     ` Johan Herland
2010-09-29  0:23 ` [PATCH 05/18] (trivial) t3303: Indent with tabs instead of spaces for consistency Johan Herland
2010-09-29  0:23 ` [PATCH 06/18] notes.c: Use two newlines (instead of one) when concatenating notes Johan Herland
2010-09-29  0:23 ` [PATCH 07/18] builtin/notes.c: Split notes ref DWIMmery into a separate function Johan Herland
2010-10-05 15:50   ` Jonathan Nieder
2010-10-07 13:56     ` Johan Herland [this message]
2010-09-29  0:23 ` [PATCH 08/18] git notes merge: Initial implementation handling trivial merges only Johan Herland
2010-10-07  4:37   ` Test script style (Re: [PATCH 08/18] git notes merge: Initial implementation handling trivial merges only) Jonathan Nieder
2010-10-07  4:57     ` Junio C Hamano
2010-10-07  6:24   ` [PATCH 08/18] git notes merge: Initial implementation handling trivial merges only Jonathan Nieder
2010-10-08 23:55     ` Johan Herland
2010-10-09 17:29       ` Jonathan Nieder
2010-10-21  2:12         ` Johan Herland
2010-09-29  0:23 ` [PATCH 09/18] builtin/notes.c: Refactor creation of notes commits Johan Herland
2010-09-29  0:23 ` [PATCH 10/18] git notes merge: Handle real, non-conflicting notes merges Johan Herland
2010-09-29 16:20   ` Ævar Arnfjörð Bjarmason
2010-09-29 23:25     ` Johan Herland
2010-09-29  0:23 ` [PATCH 11/18] git notes merge: Add automatic conflict resolvers (ours, theirs, union) Johan Herland
2010-10-02  9:14   ` Stephen Boyd
2010-10-04 15:10     ` Johan Herland
2010-09-29  0:23 ` [PATCH 12/18] Documentation: Preliminary docs on 'git notes merge' Johan Herland
2010-10-02  8:55   ` Stephen Boyd
2010-10-04 15:15     ` Johan Herland
2010-09-29  0:23 ` [PATCH 13/18] git notes merge: Manual conflict resolution, part 1/2 Johan Herland
2010-09-29  0:23 ` [PATCH 14/18] git notes merge: Manual conflict resolution, part 2/2 Johan Herland
2010-09-29 16:19   ` Ævar Arnfjörð Bjarmason
2010-09-29 23:37     ` Johan Herland
2010-09-29  0:23 ` [PATCH 15/18] git notes merge: List conflicting notes in notes merge commit message Johan Herland
2010-09-29  0:23 ` [PATCH 16/18] git notes merge: --commit should fail if underlying notes ref has moved Johan Herland
2010-09-29  0:23 ` [PATCH 17/18] git notes merge: Add another auto-resolving strategy: "cat_sort_uniq" Johan Herland
2010-09-29  0:23 ` [PATCH 18/18] git notes merge: Add testcases for merging notes trees at different fanouts Johan Herland
2010-09-29 14:56 ` [PATCH 00/18] git notes merge Sverre Rabbelier
2010-09-29 15:16   ` Johan Herland
2010-09-29 15:20     ` Sverre Rabbelier
2010-09-29 16:04       ` Johan Herland

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=201010071556.14555.johan@herland.net \
    --to=johan@herland.net \
    --cc=bebarino@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=jrnieder@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.
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.