+mr (0.37) UNRELEASED; urgency=low
+
+ * Add git-remote file to lib.
+ This adds a special type of git repository, where the .git directory
+ is stored on a file server, to avoid wasting space with it on the client.
+
+ -- Joey Hess <joeyh@debian.org> Thu, 15 Jan 2009 22:47:48 -0500
+
mr (0.36) unstable; urgency=low
* Add webcheckout command. See <http://kitenet.net/~joey/rfc/rel-vcs/>
--- /dev/null
+# This adds a special type of git repository, where the .git directory
+# is stored on a file server, to avoid wasting space with it on the client.
+# One example use is storing a music collection in git, where you can spare
+# the extra space needed for .git on your file server, but not on your
+# laptop. This fills basically the same niche as unison.
+#
+# To make mr use this file, add a line like this inside the [DEFAULT]
+# section of your ~/.mrconfig
+#include = cat /usr/share/mr/git-remote
+#
+# And an example repo using it would look something like:
+#[lib/sound]
+#checkout = git_remote_checkout turtle /media/turtle/home/joey/lib sound
+#
+# In this example, the file server's hostname is "turtle",
+# and it's mounted on /media/turtle. The file server contains a sound.git
+# repository in the specified directory under that mount point.
+# When mr checks out that repository, it will create a sound.hostname
+# directory on the server, containing just the .git directory, and symlink
+# the client's .git directory to it. After checkout, normal git and mr
+# commands can be used, as long as the file server is available.
+
+lib =
+
+ git_remote_checkout() {
+ server="$1"
+ remotebase="$2"
+ dir="$3"
+ hostname="$(hostname)"
+ if [ "$hostname" = "$server" ]; then
+ git clone "$dir.git" "$dir"
+ else
+ if [ ! -d "$remotebase/$dir.$hostname" ]; then
+ git clone --no-checkout "$remotebase/$dir.git" "$remotebase/$dir.$hostname"
+ fi
+ mkdir -p $dir
+ cd $dir
+ ln -sf $remotebase/$dir/.git
+ git checkout .
+ fi
+ }
override these rcs specific actions. To add a new revision control system,
you can just add rcs specific actions for it.
+=head1 EXTENSIONS
+
+mr can be extended to support things such as unison and remote git
+checkout. Some files providing such extensions are available in
+/usr/share/mr/. See the documentation in the files for details about using
+them.
+
=head1 AUTHOR
Copyright 2007 Joey Hess <joey@kitenet.net>