From: Johan Herland <johan@herland.net>
To: dirson@bertin.fr
Cc: git@vger.kernel.org
Subject: Re: Commit notes workflow
Date: Tue, 14 Jun 2011 16:41:13 +0200 [thread overview]
Message-ID: <201106141641.14257.johan@herland.net> (raw)
In-Reply-To: <f81891b81d39.4df76a5c@bertin.fr>
On Tuesday 14. June 2011, dirson@bertin.fr wrote:
> > > Do we really want to "git notes" to ignore everything not in
> > > refs/notes/ ? I can think of 2 possibilities out of this
> > > situation:
> > >
> > > * remove that limitation
> > > * decide on a naming convention for remote notes, and teach "git
> > > notes" not to ignore it
> >
> > The naming convention I have proposed (in the discussion for
> > [1]) is
> >
> > refs/notes/*:refs/remotes/$remote/notes/*
> >
> > (but it obviously depends on reorganizing the entire remote refs
> > hierarchy)
> >
> > > A (minor) problem with the second possibility is that this naming
> > > convention could evolve, eg. if we end up with something like was
> > > proposed in [1] for 1.8.0. Is there any real drawback with the
> > > first suggestion ?
> > >
> > > [1] http://marc.info/?l=git&m=129661334011986&w=4
> >
> > My gut feeling is to keep some sort of limit notes refs, and
> > if/when we get around to implementing my proposal in [1] (or some
> > variation thereof), we will of course extend the limit to put
> > "refs/remotes/$remote/notes/*" (or whatever is decided) in the
> > same category as "refs/notes/*".
> >
> > In the meantime, I'm unsure if it's a good idea to remove the
> > limitation altogether (allowing notes refs everywhere), since
> > re- introducing a limit at a later point will then be MUCH
> > harder...
>
> So we could introduce something like refs/remote-notes/<remote>/*
> today to start working, and eventually phase it out when
> refs/remotes/ gets restructured.
Yes, if you can't wait for the refs/remotes/ restructuring, then I guess
you'll have to do that.
> Then the next point will be how best to provide git-pull-like support
> for notes refs. We have a number of alternatives, like:
>
> * having "git pull" run "git notes merge" on all notes refs with a
> tracking-branch set to the repo from which we pull
> * do the same for a configured set of notes refs only
> * only have "git pull" and "git status" notify about notes refs being
> not uptodate, and add an explicit "git notes pull" command of some
> sort (maybe just "git notes merge" without an argument, which would
> be consistent with latest "git merge") * surely others
I guess there are a lot of different possibilities here, and there will
probably be disagreement on what's the best default, so I'd suggest the
following guidelines:
* make it as configurable as possible.
* follow the existing conventions of pull/merge w.r.t. branches, but
only so far as it makes sense for notes.
* leave the defaults conservative (e.g. don't do any merging by default,
but make pull/status notify about update-able notes refs).
My idea so far, is to model the notes configuration on the current
branch configuration, e.g. something like this:
[remote "origin"]
...
fetch = +refs/notes/*:refs/remotes/origin/notes/*
...
[notes "commits"]
remote = origin
merge = refs/notes/commits
[notes "bugs"]
remote = origin
merge = refs/notes/bugs
mergeoptions = --strategy=cat_sort_uniq
automerge = true
Except for the "automerge" option, everything is analogous to current
branch.<name>.* options. The above configuration sets up a default
tracking ref for "refs/notes/commits", making
git notes --ref commits merge
equivalent to
git notes --ref commits merge refs/remotes/origin/notes/commits
This notes merge would not happen automatically.
The last section, however, would presumably trigger an automatic notes
merge (on fetch? pull?) because of notes.bugs.automerge being enabled.
In this case, the
git notes --ref bugs merge
command would be issued, which would be equivalent to
git notes --ref bugs merge --strategy=cat_sort_uniq \
refs/remotes/origin/notes/bugs
This is just a suggestion, and we might want to impose additional
restrictions not mentioned above. For example, enabling "automerge"
without enabling a non-"manual" notes merge strategy is probably unwise,
because it can force the user to resolve conflicts from a notes merge
that the user did not explicitly initiate.
Have fun! :)
...Johan
--
Johan Herland, <johan@herland.net>
www.herland.net
next prev parent reply other threads:[~2011-06-14 14:41 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-06-13 7:09 Commit notes workflow Yann Dirson
2011-06-14 10:15 ` Johan Herland
[not found] ` <f81891b81d39.4df76a5c@bertin.fr>
2011-06-14 14:41 ` Johan Herland [this message]
2011-06-15 9:20 ` ydirson
2011-06-15 9:37 ` Johan Herland
2011-06-15 9:57 ` ydirson
2011-06-15 10:53 ` Johan Herland
2011-06-18 21:06 ` [PATCH 0/6] Small notes usability improvements Yann Dirson
2011-06-18 21:06 ` [PATCH 1/6] Bring notes.c template handling in line with commit.c Yann Dirson
2011-06-19 21:23 ` Johan Herland
2011-06-19 22:50 ` Junio C Hamano
2011-06-20 7:41 ` Johan Herland
2011-06-20 18:48 ` Yann Dirson
2011-06-21 19:39 ` Yann Dirson
2011-06-18 21:06 ` [PATCH 2/6] Factorize shortening of notes refname for display Yann Dirson
2011-06-19 21:25 ` Johan Herland
2011-06-19 22:51 ` Junio C Hamano
2011-06-20 18:49 ` Yann Dirson
2011-06-18 21:06 ` [PATCH 3/6] Include name of notes ref in template when creating/editing notes Yann Dirson
2011-06-18 21:06 ` [PATCH 4/6] Allow "git notes merge" to use refs/remote-notes/ as a source Yann Dirson
2011-06-19 21:45 ` Johan Herland
2011-06-18 21:06 ` [PATCH 5/6] Assume a note ref starting with refs must not be prepended refs/notes/ Yann Dirson
2011-06-18 21:06 ` [PATCH 6/6] RFC - Notes merge: die when asked to merge a non-existent ref Yann Dirson
2011-06-19 22:03 ` Johan Herland
2011-06-20 7:16 ` Jeff King
2011-06-20 7:29 ` Johan Herland
2011-06-19 22:06 ` [PATCH 0/6] Small notes usability improvements Johan Herland
-- strict thread matches above, loose matches on Subject: below --
2011-06-14 14:21 Commit notes workflow ydirson
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=201106141641.14257.johan@herland.net \
--to=johan@herland.net \
--cc=dirson@bertin.fr \
--cc=git@vger.kernel.org \
/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).