Re: on pulling/cloning git notes

Christian MICHON venit, vidit, dixit 24.06.2010 10:22:

> Hi list,
>
> I've been playing recently with git notes and figured out how to push
> my notes to my central gitolite server, tweaking .git/config in this
> way (adding a push section):
>
> [remote "gitolite"]
> url = gitolite:daat
> fetch = +refs/heads/*:refs/remotes/gitolite/*
> push = +refs/notes/*:refs/notes/*
>
> When trying to to a 'git clone --mirror' from that same gitolite
> server, I was expecting to get back refs/notes, but I did not.
>
> Did I miss something or git notes are actually not meant to be cloned/pulled?
>

As you can see from the default "fetch" line above, "refs/heads" are
fetched by default (when cloning, fetching etc.), but nothing else
(well, besides some tags). You can set up an additional fetch refspec to
get the notes also.

It's not done by default because it's up to you decide what to do with
the notes. Sometimes, you want them to end up in "refs/notes" so that
they are displayed by default. But maybe you want them in
"refs/notes/remotes/gitolites" e.g. and display them only on request
(--show-notes=remotes/gitolite), or merge them into your own notes.

Re: on pulling/cloning git notes

On Thu, Jun 24, 2010 at 11:48 AM, Michael J Gruber
<[hidden email]> wrote:
> As you can see from the default "fetch" line above, "refs/heads" are
> fetched by default (when cloning, fetching etc.), but nothing else
> (well, besides some tags). You can set up an additional fetch refspec to
> get the notes also.

I was expecting to grab everything from the remote refs, as in this
case my .git/config will look like this:
[remote "origin"]
fetch = +refs/*:refs/*
mirror = true
url = gitolite:daat

> It's not done by default because it's up to you decide what to do with
> the notes. Sometimes, you want them to end up in "refs/notes" so that
> they are displayed by default. But maybe you want them in
> "refs/notes/remotes/gitolites" e.g. and display them only on request
> (--show-notes=remotes/gitolite), or merge them into your own notes.
>

So the * in .git/config was misleading me. Instead I changed the fetch
to this after the original clone, then performed an incremental fetch
and it worked.

Hmmh. I have notes in the standard "refs/notes/commits", push them into
that same ref on the remote side (using an additional push refspec).
When I "clone --mirror" that I do get them back in "refs/notes/commits"
in the (bare) mirror repo.

yes I did... "When trying to to a 'git clone --mirror' from that same
gitolite"...

>
>>
>> I was expecting to grab everything from the remote refs, as in this
>> case my .git/config will look like this:
>> [remote "origin"]
>> fetch = +refs/*:refs/*
>> mirror = true
>> url = gitolite:daat
>
> Hmmh. I have notes in the standard "refs/notes/commits", push them into
> that same ref on the remote side (using an additional push refspec).
> When I "clone --mirror" that I do get them back in "refs/notes/commits"
> in the (bare) mirror repo.
>
>> [remote "origin"]
>> fetch = +refs/heads/*:refs/notes/*
>> mirror = true
>> url = gitolite:daat
>>
>> Thanks for the hint, Michael!
>>
>
> I'm glad it helped though I don't know why...
>
> Did you push the notes into head refs?

yes apparently I did. I thought it did help, I must have pushed the
wrong way originally.