Subject: Re: Git bundles for backup and cloning: the Zaphod Beeblebrox thread

From: Alain Kalker <[email-masked]>
Date: Sun, 17 Feb 2013 19:51:10 +0000 (UTC)

On Sun, 17 Feb 2013 19:28:33 +0000, Alain Kalker wrote:

> From the current documentation for git-bundle(1), it may not be clear
> for users unfamilliar with Git, how to create a bundle which can be used
> for backup purposes, or, more generally, to clone to a completely new
> repository.
> 
> Philip Oakley has posted a documentation patch some time ago, but Junio
> has pointed out several concerns.
> Ref: http://thread.gmane.org/gmane.comp.version-control.git/205887/
> focus=205897
> 
> Here's my attempt to summarize the concerns, adding some of my own, and
> a possible solution.
> 
> 1. "Missing HEAD syndrome"
> $ git bundle create <bundle> master -or-
> $ git bundle create <bundle> <branchname...>
> -or-
> $ git bundle create <bundle> --branches -then-
> $ git clone <bundle> <dir>
> 
> will be unable to checkout any files due to a missing ref for HEAD.
> Though this can be fixed by going into <dir> and doing `git checkout
> <ref>`, this is not very user-friendly.
> 
> 2. "Detached HEAD syndrome"
> $ git bundle create <bundle> HEAD $ git clone <bundle> <dir>
> will checkout files alright, but leaves one in a "detached HEAD" state.
>  
> 3. "Exploding HEAD syndrome"
> $ git bundle create <bundle> --all will add the HEAD, but will add refs
from refs/*, including all remotes,
> which is not desirable when cloning, unless one
> sets up all the remotes 
as well.
> 
> Finally, my solution for backing up only the local branches of a
> repository:
$ git bundle create <bundle> --branches HEAD # for backup purposes
-or-
$ git bundle create <bundle> master HEAD # for hosting or redistribution
> but this may not be very
> easy for new users to figure out on their own unless well documented
> (perhaps a new flag?)
> 
> Any comments or suggestions (including HHGTTG references!) are very
> welcome.
> 
> -Alain