Free Software programmer
This blog existed before my current employment, and obviously reflects my own opinions and not theirs.
This work is licensed under a Creative Commons Attribution 2.1 Australia License.
Mon, 07 Jan 2008
I don't like to whinge about software; that's what bug reporting is for. But it might be instructive to see how I spent the last 20 minutes.
Went to clone my copy of the kvm repo onto my Ubuntu test machine (debussy). Decided to clone my linux-2.6 tree first: might as well have it there. After installing git, then realizing my mistake, removing it and installing git-core, I was ready.
First I rsync'ed the linux-2.6 tree from my laptop, but then:
rusty@debussy:~$ git clone --reference=linux-2.6 git://git.kernel.org/pub/scm/linux/kernel/git/avi/kvm.git error: object directory /home/rusty/devel/cvs/kvm/kvm.git/kvm/.git/objects does not exist; check .git/objects/info/alternates. error: refs/reference-tmp/refs/remotes/origin/HEAD points nowhere! ...
Clearly, I'd made my laptop linux-2.6 tree with references to my laptop kvm tree (saving bandwidth and disk space). OK, my bad. I should use 'git clone' to do the transfer rather than rsync.
First attempt was dumb: 'git clone linux-2.6 debussy:' took a while, and only when I looked on debussy did I realize I'd just cloned into a 'debussy:' dir on my laptop. OK, proper url:
rusty@vivaldi:~/devel/kernel$ git clone linux-2.6 ssh://debussy/ Initialized empty Git repository in /home/rusty/devel/kernel/ssh:/debussy/.git/ remote: Generating pack...
Err, OK, clone doesn't understand destination URLs. Remove the 'ssh:' dir it just created, ssh into debussy and try to clone from there:
rusty@debussy:~$ git clone ssh://192.168.5.3/devel/kernel/linux-2.6 email@example.com's password: fatal: '/devel/kernel/linux-2.6': unable to chdir or not a git archive fatal: unexpected EOF fetch-pack from 'ssh://192.168.5.3/devel/kernel/linux-2.6' failed.
Err, that's not the dir I asked for. OK, use full pathname:
rusty@debussy:~$ git clone ssh://192.168.5.3/home/rusty/devel/kernel/linux-2.6 firstname.lastname@example.org's password: Connection closed by 192.168.5.3 fatal: unexpected EOF fetch-pack from 'ssh://192.168.5.3/home/rusty/devel/kernel/linux-2.6' failed.
Um, what happened there? No idea. So, I go back to my laptop to create a "clean" dir with no references, so I can just use rsync.
rusty@vivaldi:~/devel/kernel$ rm -rf tmp; git clone linux-2.6 tmp ... rusty@vivaldi:~/devel/kernel$ rsync -avz tmp debussy:linux-2.6 ... rusty@vivaldi:~/devel/kernel$ rm -rf tmp
Back to debussy:
git clone --reference=linux-2.6 git://git.kernel.org/pub/scm/linux/kernel/git/avi/kvm.git tar: refs: Cannot stat: No such file or directory tar: Error exit delayed from previous errors error: object directory /home/rusty/linux-2.6/objects does not exist; check .git/objects/info/alternates. remote: Generating pack... remote: Counting objects: 6651 ^C
Poke around: I forgot the / in rsync, so it's created a linux-2.6/tmp dir. Git spat some cryptic complaints (not "that's not a git repo"), then seemed ready to pull everything (precisely what I try to avoid on my 3G-per-month satellite connection). OK, move that dir up one...
git clone --reference=linux-2.6 git://git.kernel.org/pub/scm/linux/kernel/git/avi/kvm.git error: refs/reference-tmp/refs/remotes/origin/HEAD points nowhere! ...
No idea what that error is, so I'm ignoring it. Git seems to. And after all that, what directory does git create? Not "kvm.git", but "kvm", which appeared nowhere on that commandline. Confusing, because I had an old kvm.git dir there, too...
You can see I'm no git poweruser, and inevitably git will get easier as I memorize the various arcana. But for Rusty today, git is the slowest of the modern version control systems. And that's not counting the time it takes to blog out my frustrations after using it... :)
[/tech] permanent link