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

From: Alain Kalker <[email-masked]>
Date: Sat, 16 Feb 2013 00:03:58 +0000 (UTC)

On Fri, 15 Feb 2013 22:25:47 +0000, Alain Kalker wrote:

> 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.

After trying to bisect this using `bisect start; bisect good v1.5.1; git 
bisect bad HEAD; git bisect run ..test.sh`:

---test.sh---
#!/bin/sh

make clean
make || return 125
GIT=$(pwd)/git

cd /tmp
rm -rf testrepo
mkdir testrepo
cd testrepo
$GIT init
echo test > test.txt
$GIT add test.txt
$GIT commit -m "Add test.txt"
$GIT bundle create ../testrepo.bundle master || return 125
cd ..

rm -rf testrepofrombundle
$GIT clone testrepo.bundle testrepofrombundle || return 1
---
I was unable to find a bad revision.
After a lot more searching I found that I had `git` aliased to `hub`, a 
tool used to make Github actions easier.
Eliminating `hub` from the equation resolved most problems.
The only ones remaining are the confusing error message from `git bundle 
create` and the "missing HEAD" (you can interpret that in different 
ways) ;-)

P.S. I hereby promise to _never_ _ever_ alias `git` to something else and 
then post a Git bug about that "something else" on this ML.

Sorry to have wasted your time,

Alain