Subject: Re: [BUG] Git clone of a bundle fails, but works (somewhat) when run with strace

From: Alain Kalker <[email-masked]>
Date: Fri, 15 Feb 2013 22:25:47 +0000 (UTC)

On Fri, 15 Feb 2013 20:33:24 +0100, Alain Kalker wrote:

> tl;dr:
> 
> - `git bundle create` without <git-rev-list-args> gives git rev-list
> help, then dies.
>    Should point out missing <git-rev-list-args> instead.
> - `git clone <bundle> <dir> gives "ERROR: Repository not found."
> - `strace ... git clone <bundle> <dir>` (magically) appears to work but
>    cannot checkout files b/c of nonexistent ref.
> - Heisenbug? Race condition?
> - Zaphod Beeblebrox has left the building, sulking.
> 
> Full description:
> 
> When I try to clone from a bundle created from a local repository, `git
> clone <bundle> <dir>` fails with: "ERROR: Repository not found. fatal:
> Could not read from remote repository." unless I run it with strace.
> 
> OS: Arch Linux (rolling release)
> Git versions: 1.8.1.3 and git://github.com/git.git master@02339dd
> 
> Steps to reproduce:

For those who like to "save the trees" (source code or otherwise), here 
is a much simplified test case:

$ # Create test repository with a single commit in it
$ mkdir testrepo
$ cd testrepo
$ git init
$ echo Test > test.txt
$ git add test.txt
$ git commit -m "Add test.txt"

$ # Create bundle
$ git bundle create ../testrepo.bundle master

$ # Try to clone from bundle
$ cd ..
$ git clone testrepo.bundle testrepofrombundle

$ # Clone from bundle, wrapped with strace
$ strace -f -o /dev/null git clone testrepo.bundle testrepofrombundle

$ # Examine cloned repository
$ cd testrepofrombundle
$ ls
$ git branch -av
$ git checkout master
$ git branch -av
$ # Where's my HEAD?

> Kind regards,
> Alain Kalker