git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Junio C Hamano <gitster@pobox.com>
To: Philip Oakley <philipoakley@iee.email>
Cc: GitList <git@vger.kernel.org>, Jeff King <peff@peff.net>,
	Pratyush Yadav <me@yadavpratyush.com>
Subject: Re: [PATCH v5] Doc: Bundle file usage
Date: Mon, 21 Oct 2019 11:48:40 +0900	[thread overview]
Message-ID: <xmqq7e4yn793.fsf@gitster-ct.c.googlers.com> (raw)
In-Reply-To: <20191020110306.1714-1-philipoakley@iee.email> (Philip Oakley's message of "Sun, 20 Oct 2019 12:03:06 +0100")

Philip Oakley <philipoakley@iee.email> writes:

> @@ -20,11 +20,14 @@ DESCRIPTION
>  Some workflows require that one or more branches of development on one
>  machine be replicated on another machine, but the two machines cannot
>  be directly connected, and therefore the interactive Git protocols (git,
> +ssh, http) cannot be used.
> +
> +The 'git bundle' command packages objects and references in an archive
> +at the originating machine, which can then be imported into another
> +repository using 'git fetch', 'git pull', or 'git clone',
> +after moving the archive by some means (e.g., by sneakernet).
> +
> +As no
>  direct connection between the repositories exists, the user must specify a
>  basis for the bundle that is held by the destination repository: the
>  bundle assumes that all objects in the basis are already in the

Notice that we use the term `basis` here.  It is referring to the
bottom end(s) of the commit graph.

> +`git clone` can use any bundle created without negative refspecs
> +(e.g., `new`, but not `old..new`).

To be consistent with the phrasing of this particular document we
saw earlier, you would have said "without basis", but I think the
use of `basis` did not spread beyond "git bundle" documentation.  

If we were writing "git bundle" and its documentation from scratch
using more modern lingo, we probably would say "negative revisions"
here.  Note that the word `refspec` has no place in the context of
this sentence; they are to specify the mapping of refs between the
repository in which transferred objects originate and the repository
that accept the objects.  Also note that `basis` discussed in 'git
bundle' is a bit wider concept than `negative revisions`, so mere
mechanical replacements would not be sufficient as a preliminary
modernization/prepation step for this patch.

> +If you want to match `git clone --mirror`, which would include your
> +refs such as `refs/remotes/*`, use `--all`.
> +If you want to provide the same set of refs that a clone directly
> +from the source repository would get, use `--branches --tags` for
> +the `<git-rev-list-args>`.

This is not wrong per-se, but may lead to confusion.  The readers
must be able to learn:

 - "git clone --mirror full.bndl dst/" from a full bundle created
   with "git bundle create full.bndl --all" can mimic creation of a
   full mirror of the original.

 - "git clone full.bndl dst/" from such a bundle does *not* result
   in creation of a mirror.

 - "git clone slim.bndl dst/" from a minimum bundle created wth "git
   bundle create slim.bndl --branches --tags" would be sufficient to
   obtain the same result as the above.

 - "git clone --mirror slim.bndl dst/" from such a minimum bundle
   cannot mimic creation of a full mirror of the original.

I am not sure the second point is conveyed well with the new
paragraph.  That is, "--all" must be used if the resulting bundle is
meant to be usable to "--mirror" clone from, but it can still be
used to clone normally.  If you do not intend to mirror-clone from,
there is not much point in using "--all" to record extra refs.

Not having the new paragraph does not convey anything at all, so it
definitely is an improvement, though ;-)

Thanks.


  reply	other threads:[~2019-10-21  2:48 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-09-18 23:25 [PATCHv2 1/8] Doc: Bundle file usage Philip Oakley
2012-09-18 23:55 ` Junio C Hamano
2019-10-16  9:57   ` [PATCH v2] " Philip Oakley
2019-10-16 10:15     ` Philip Oakley
2019-10-16 21:09     ` Jeff King
2019-10-17  2:54       ` Junio C Hamano
2019-10-18 15:15       ` [PATCH v3] " Philip Oakley
2019-10-18 18:15         ` Pratyush Yadav
2019-10-18 19:58           ` Philip Oakley
2019-10-18 20:30             ` [PATCH v4] " Philip Oakley
2019-10-20  1:10               ` Jeff King
2019-10-20 10:49                 ` Philip Oakley
2019-10-20 11:03                   ` [PATCH v5] " Philip Oakley
2019-10-21  2:48                     ` Junio C Hamano [this message]
2019-10-21  3:16                       ` Jeff King

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

  List information: http://vger.kernel.org/majordomo-info.html

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=xmqq7e4yn793.fsf@gitster-ct.c.googlers.com \
    --to=gitster@pobox.com \
    --cc=git@vger.kernel.org \
    --cc=me@yadavpratyush.com \
    --cc=peff@peff.net \
    --cc=philipoakley@iee.email \
    /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.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

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 read-only IMAP folder(s) and NNTP newsgroup(s).