git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: Bad refspec messes up bundle.

From
Junio C Hamano <gitster@pobox.com>
Date
Mar 19, 2018, 17:36 UTC
Message-ID
<xmqq370wvugk.fsf@gitster-ct.c.googlers.com>
In-Reply-To
<CAO+-ZX_-COVpzqoAZLRGu4mvLMkLYiR3y7rkCtwmnvJ8kA7txQ@mail.gmail.com>
Luciano Joublanc <ljoublanc@dinogroup.eu> writes:
Show 32 quoted lines
> Yesterday I created a git bundle as best as I can remember like this
>
> git bundle save chunk chunk.bundle --all master
>
> Note the 'master' I added accidentally at the end - this was a user
> error but still the bundle was created.
>
> When I tried to clone this, I get
>
> ~\local\src> git clone 'G:\My Drive\chunk.bundle' fs2-columns
> Cloning into 'fs2-columns'...
> Receiving objects: 100% (31/31), done.
> Resolving deltas: 100% (5/5), done.
> fatal: multiple updates for ref 'refs/remotes/origin/master' not allowed.
> ~\local\src> git bundle verify chunk.bundle
> The bundle contains these 3 refs:
> 3c804437a5f8537db1bfb5d09b7bff4f9950605e refs/heads/master
> 3c804437a5f8537db1bfb5d09b7bff4f9950605e HEAD
> 3c804437a5f8537db1bfb5d09b7bff4f9950605e refs/heads/master
> The bundle records a complete history.
> chunk.bundle is okay
>
> After trying a couple of things, I finally managed to clone it using
>
> ~\local\src> git clone -b master --single-branch .\chunk.bundle fs2-columns
>
> i.e. the '--single-branch' option saved me.
>
> Is this a bug? Should bundle allow providing multiple refspecs when
> `--all` is provided? I admit this was clearly a case of 'caveat
> emptor', but shouldn't this be disallowed (i.e. is there any situation
> when this is useful?)
Thanks for a report.

Just like a remote repository that reports the same ref more than once in its initial advertisement (i.e. "git ls-remote $remote" gives duplicate entries), a bundle file that records the same ref more than once *is* a bug, I would think.

A "git bundle create" command that creates such a bundle file shouldn't. It is not very useful to diagnose it as an error; it probably makes more sense to dedup the refs instead when writing the bundle file. Of course, we should abort with an error *if* the code ever tries to store the same ref twice with different object name (i.e. attempt to dedup, in vain).

Also, "git clone" from such a bundle file (or for that matter, a remote repository that advertises the same ref twice) probably should do a similar deduping, with a warning message.

Previous: Luciano JoublancNext: Johannes Schindelin
Message 2 of 7 in “Bad refspec messes up bundle.”
  1. Luciano JoublancMar 19, 2018
  2. Junio C HamanoMar 19, 2018
  3. Johannes SchindelinMar 30, 2018
  4. Junio C HamanoMar 30, 2018
  5. Johannes SchindelinMar 30, 2018
  6. Luciano JoublancMar 31, 2018
  7. Johannes SchindelinApr 3, 2018

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.