Re: Bad refspec messes up bundle.
From: Junio C Hamano <hidden>
Date: 2018-03-19 17:36:22
Luciano Joublanc [off-list ref] writes:
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.