threads / discuss / 45859

Cloning a custom refspec does not work as expected

Subject: Cloning a custom refspec does not work as expected

## tl;dr

3 messages between May 3, 2017 and May 3, 2017.

replies: 2people: 3as markdown or json

Sebastian Schuberth· May 3, 2017, 12:16 UTC · lore
Hi,

I'm trying to clone a custom ref, avoiding the need to init && fetch manually. From reading [1] which says:

"Set a configuration variable in the newly-created repository; this takes effect immediately after the repository is initialized, but before the remote history is fetched or any files checked out. [...] This makes it safe, for example, to add additional fetch refspecs to the origin remote."

I'd assume that this would work:

$ git clone -c remote.origin.fetch=+refs/changes/*:refs/remotes/origin/changes/* https://gerrit.googlesource.com/git-repo

In fact, this *does* add the custom refs correct to .git/config, but they are not fetched during the clone. I can manually fix that by doing

$ cd git-repo $ git fetch

afterwards, but the whole point is to avoid exactly that separate step.
Is this a code bug or documentation bug?
I'm using git version 2.12.2.windows.2.
[1] https://git-scm.com/docs/git-clone#git-clone---configltkeygtltvaluegt
-- 
Sebastian Schuberth
Stefan Beller· May 3, 2017, 18:27 UTC · re: Sebastian Schuberth · lore

Re: Cloning a custom refspec does not work as expected

On Wed, May 3, 2017 at 5:16 AM, Sebastian Schuberth <sschuberth@gmail.com> wrote:

Show 26 quoted lines
> Hi,
>
> I'm trying to clone a custom ref, avoiding the need to init && fetch
> manually. From reading [1] which says:
>
> "Set a configuration variable in the newly-created repository; this
> takes effect immediately after the repository is initialized, but
> before the remote history is fetched or any files checked out. [...]
> This makes it safe, for example, to add additional fetch refspecs to
> the origin remote."
>
> I'd assume that this would work:
>
> $ git clone -c remote.origin.fetch=+refs/changes/*:refs/remotes/origin/changes/*
> https://gerrit.googlesource.com/git-repo
>
> In fact, this *does* add the custom refs correct to .git/config, but
> they are not fetched during the clone. I can manually fix that by
> doing
>
> $ cd git-repo
> $ git fetch
>
> afterwards, but the whole point is to avoid exactly that separate step.
>
> Is this a code bug or documentation bug?

I would blame the code to be buggy, as it first writes out the config and then doesn't read the config, but blindly performs some magic to come up with the refspec to fetch and performs that fetch.

Thanks, Stefan

Show 7 quoted lines
>
> I'm using git version 2.12.2.windows.2.
>
> [1] https://git-scm.com/docs/git-clone#git-clone---configltkeygtltvaluegt
>
> --
> Sebastian Schuberth
Jeff King· May 3, 2017, 20:03 UTC · re: Sebastian Schuberth · lore

Re: Cloning a custom refspec does not work as expected

On Wed, May 03, 2017 at 02:16:47PM +0200, Sebastian Schuberth wrote:
Show 15 quoted lines
> I'd assume that this would work:
> 
> $ git clone -c remote.origin.fetch=+refs/changes/*:refs/remotes/origin/changes/*
> https://gerrit.googlesource.com/git-repo
> 
> In fact, this *does* add the custom refs correct to .git/config, but
> they are not fetched during the clone. I can manually fix that by
> doing
> 
> $ cd git-repo
> $ git fetch
> 
> afterwards, but the whole point is to avoid exactly that separate step.
> 
> Is this a code bug or documentation bug?
I think it's a code bug. More discussion in:
  http://public-inbox.org/git/robbat2-20170225T185056-448272755Z@orbis-terrarum.net/
-Peff

← back to recent threads