4 I tend to choose <tt>/srv/git</tt>, other typical places could include <tt>/usr/local/git</tt>, <tt>/home/git</tt> or <tt>/var/lib/git</tt>. The location isn't important, find a place that fits your preference or OS recommendations, but make sure you have a couple of GB free (as of 2009). It is a good idea to use a top-level <tt>git</tt>-folder, so you can mirror multiple DragonFly sub-projects in hierarchy. This is a pre-requisite for running the <tt>update-repo</tt> shell-script (more about that in a bit).

17 As you can see <tt>df-webtool</tt> is not named with ".git"-extention, this is because the update-repo script mirrors <tt>/srv/git/*.git</tt>, and I do not want to mirror <tt>df-webtool</tt>, because it has no origin. The <tt>run</tt> and <tt>supervise</tt> files are special files that are created by <tt>daemon-tools</tt>. Daemon-tools (and many others like it), keeps the git-daemon running, and is not necessary for running a git mirror.

20 After creating a git-user to run the git mirror (I use 'gitlog', which came with the git-package under Debian), login as this user, and perform a checkout. To find a suitable git-server to clone from ( <tt>$MASTER_GIT_SERVER</tt> ), look at [[the list of mirrors|/mirrors]]. This system should be a system user, and does not need to have a homedirectory or valid shell.

64 The update-repo script uses lockf(1), if this tool is not available to you, but you have lockfile(1), you can pull my workaround for lockfile(1). I say workaround, because it is not elegant - but it's the best I could think of at the time. To get this script, pull branch <tt>debian/linux</tt> from <tt>git://blazefire.danielbond.org/update-repo.git</tt>.