Re: [PATCH] NEWS: Document the recent 'nmbug clone' and @{upstream} changes

Subject: Re: [PATCH] NEWS: Document the recent 'nmbug clone' and @{upstream} changes

Date: Wed, 9 Apr 2014 14:01:08 -0700

To: David Bremner

Cc: notmuch

From: W. Trevor King


On Wed, Apr 09, 2014 at 08:22:26AM -0300, David Bremner wrote:
> W. Trevor King writes:
> 
> > The changes just landed with c200167 (nmbug: Add 'clone' and replace
> > FETCH_HEAD with @{upstream}, 2014-03-09).
> >
> > The preferred markup language for NEWS seems to be Markdown, which is
> > parsed by devel/news2wiki.pl into Markdown chunks for rendering by
> > ikiwiki [1].
> >
> > [1]: http://notmuchmail.org/news/
> > ---
> >  NEWS | 20 ++++++++++++++++++++
> >  1 file changed, 20 insertions(+)
> >
> > diff --git a/NEWS b/NEWS
> > index d4f4ea4..e26fa0a 100644
> > --- a/NEWS
> > +++ b/NEWS
> > @@ -20,6 +20,26 @@ Bug fix for saved searches with newlines in them.
> >    Split lines confuse `notmuch count --batch`, so we remove embedded
> >    newlines before calling notmuch count.
> >  
> > +nmbug
> > +-----
> > +
> > +nmbug adds a `clone` command for setting up the initial repository and
> > +uses `@{upstream}` instead of `FETCH_HEAD` to track upstream changes.
> > +
> > +  The `@{upstream}` change reduces ambiguity when fetching multiple
> > +  branches, but requires existing users update their bare `NMBGIT`
> > +  repository (usually `~/.nmbug`) to a non-bare repository.  The
> > +  easiest way to do this is:
> 
> That bit about non-bare seems to be untrue/misleading?

The old repositories were bare [1]:

  git clone --bare http://nmbug.tethera.net/git/nmbug-tags.git $HOME/.nmbug

the new repositories are not [2]:

    system ('git', 'clone', '--no-checkout', '--separate-git-dir', $NMBGIT,
            $repository, $tempwork) == 0

We need non-bare repositories to have remote-tracking branches
(distinct from local branches) [3], and we need remote-tracking
branches to have working @{upstream}.

I think that's reasonable support for my claim (and most of it is in
the original c200167 commit message), but maybe not?

> As a step 0, I guess commit any tag changes to nmbug?
> > +
> > +  1. Push any local commits to a remote repository.
> > +  2. Remove your `NMBGIT` repository (e.g. `mv .nmbug .nmbug.bak`).
> > +  3. Use the new `clone` command to create a fresh clone:
> > +
> > +        nmbug clone nmbug@nmbug.tethera.net:nmbug-tags
> > +
> 
> Jani mentioned on IRC that some people might track nmbug in a read only
> way via git://

Sure.  The current docs suggest HTTP [1], so I'm fine changing this to
the HTTP URL (or the Git URL).  I think folks will get the idea
regardless.  I can resubmit v2 with this update, or you can just
squash it in if/when this patch lands in master, whatever is easiest.

> > +  4. If you had local commits in step 1, add a remote for that
> > +     repository and fetch them into the new repository.
> 
> Is the "remote repository" in step 1 meant to be the central repo? or
> just a backup?

The backup.  If you have nothing to backup, you already got everything
back after cloning the central repo.

Cheers,
Trevor

[1]: http://notmuchmail.org/nmbug/
[2]: http://git.notmuchmail.org/git/notmuch/blob/c20016742681e1ed48c83de32639e10507ffa14d:/devel/nmbug/nmbug#l133
[3]: http://git.kernel.org/cgit/git/git.git/tree/Documentation/git-clone.txt     
  --bare::
        Make a 'bare' Git repository…
        Also the branch heads at the remote are copied directly
        to corresponding local branch heads, without mapping
        them to `refs/remotes/origin/`.  When this option is
        used, neither remote-tracking branches nor the related
        configuration variables are created.


-- 
This email may be signed or encrypted with GnuPG (http://www.gnupg.org).
For more information, see http://en.wikipedia.org/wiki/Pretty_Good_Privacy
signature.asc (application/pgp-signature)

Thread: