mkogg.py: Fix 'self.get_mp4_metadata(self, source)'
[blog.git] / posts / One-off_Git_daemon.mdwn
index 5ebbf60af1d0ebd791efd947f8e49f8acb8d83e6..3bbaa348ff4d261491927c6392dbbff05882ca1f 100644 (file)
@@ -5,6 +5,9 @@ for collaboration on your LAN.  This is useful when you're teaching
 Git to a room full of LAN-sharing students, and you don't want to
 bother setting up public repositories more permanently.
 
+Serving a few repositories
+==========================
+
 Say you have a repository that you want to serve:
 
     $ mkdir -p ~/src/my-project
@@ -23,7 +26,37 @@ Then you can clone with:
     $ git clone git://192.168.1.2/my-project
 
 replacing `192.168.1.2` with your public IP address (e.g. from `ip
-addr show scope global`).
+addr show scope global`).  Add additional repository paths to the `git
+daemon` call to serve additional repositories.
+
+Serving a single repository
+===========================
+
+If you don't want to bother listing `my-project` in your URLs, you can
+base the daemon in the project itself (instead of in the parent
+directory):
+
+    $ cd
+    $ git daemon --export-all --base-path=src/my-project --verbose
+
+Then you can clone with:
+
+    $ git clone git://192.168.1.2/
+
+This may be more convenient if you're only sharing a single
+repository.
+
+Enabling pushes
+===============
+
+If you want your students to be able to push to your repository during
+class, you can run:
+
+    $ git daemon --enable=receive-pack …
+
+Only do this on a trusted LAN with a junk test repository, because it
+will allow *anybody* to push *anything* or remove references.
+
 
 [[!tag tags/linux]]
 [[!tag tags/tools]]