]> git.madduck.net Git - code/myrepos.git/commitdiff

madduck's git repository

Every one of the projects in this repository is available at the canonical URL git://git.madduck.net/madduck/pub/<projectpath> — see each project's metadata for the exact URL.

All patches and comments are welcome. Please squash your changes to logical commits before using git-format-patch and git-send-email to patches@git.madduck.net. If you'd read over the Git project's submission guidelines and adhered to them, I'd be especially grateful.

SSH access, as well as push access can be individually arranged.

If you use my repositories frequently, consider adding the following snippet to ~/.gitconfig and using the third clone URL listed for each project:

[url "git://git.madduck.net/madduck/"]
  insteadOf = madduck:

Merge commit 'madduck/master'
authorJoey Hess <joey@kodama.kitenet.net>
Fri, 26 Oct 2007 06:30:51 +0000 (02:30 -0400)
committerJoey Hess <joey@kodama.kitenet.net>
Fri, 26 Oct 2007 06:30:51 +0000 (02:30 -0400)
lib/git-fake-bare
mr

index 231b63163a36a71179431da9cbed445f8225caf5..545115bac6581d91d8865c98f4eadaf7d13471b9 100644 (file)
 
 # And an example repo using it would look something like:
 #[.dotfiles]
-#lib = git_fake_bare_worktree $HOME
-#checkout = git_fake_bare_checkout git://... .dotfiles
+#checkout = git_fake_bare_checkout git://... .dotfiles <worktree, eg. ..>
 
 lib =
-       # called to tell git where the worktree is
-       git_fake_bare_worktree() {
-               GIT_WORK_TREE="$1"; export GIT_WORK_TREE
-       }
        # git doesn't have an easy way to check out such a repo, so
        # do it by hand
        git_fake_bare_checkout() {
                url="$1"
                repo="$2"
-               GIT_WORK_TREE= git clone --no-checkout "$url" "$repo"
+               worktree="$3"
+               git clone --no-checkout "$url" "$repo"
                cd "$repo"
-               mkdir -p "$GIT_WORK_TREE"
+               mkdir -p "$worktree"
                git read-tree HEAD
-               git config core.worktree "$GIT_WORK_TREE"
                git checkout-index -a --prefix="$worktree" || true
+               git config core.worktree "$worktree"
                mv .git/* .
                rmdir .git
        }
@@ -69,6 +65,8 @@ git_fake_bare_register =
        if [ ! -d "$worktree" ]; then
                error "git worktree $worktree does not exist"
        fi
-       mr -c "$MR_CONFIG" config "`pwd`" lib="git_fake_bare_worktree '$worktree'"
        echo "Registering git url: $url in $MR_CONFIG (with worktree $worktree)"
-       mr -c "$MR_CONFIG" config "`pwd`" checkout="git_fake_bare_checkout '$url' '$MR_REPO'"
+       mr -c "$MR_CONFIG" config "$PWD" \
+               checkout="git_fake_bare_checkout '$url' '$MR_REPO' '$worktree'"
+
+# vim:sw=8:sts=0:ts=8:noet
diff --git a/mr b/mr
index 2187aa06b59472cc9c13dfe5367bdd9b4ef59b45..13807f8f3f4c890dd27eebdde950d67cc2a1b1ce 100755 (executable)
--- a/mr
+++ b/mr
@@ -1079,6 +1079,7 @@ ls = list
 [DEFAULT]
 order = 10
 lib =
+       PWD="$(pwd)"
        error() {
                echo "mr: $@" >&2
                exit 1
@@ -1164,21 +1165,21 @@ svn_register =
                error "cannot determine svn url"
        fi
        echo "Registering svn url: $url in $MR_CONFIG"
-       mr -c "$MR_CONFIG" config "`pwd`" checkout="svn co '$url' '$MR_REPO'"
+       mr -c "$MR_CONFIG" config "$PWD" checkout="svn co '$url' '$MR_REPO'"
 git_register = 
        url="$(LANG=C git-config --get remote.origin.url)" || true
        if [ -z "$url" ]; then
                error "cannot determine git url"
        fi
        echo "Registering git url: $url in $MR_CONFIG"
-       mr -c "$MR_CONFIG" config "`pwd`" checkout="git clone '$url' '$MR_REPO'"
+       mr -c "$MR_CONFIG" config "$PWD" checkout="git clone '$url' '$MR_REPO'"
 bzr_register =
        url=$(cat .bzr/branch/parent)
        if [ -z "$url" ]; then
                error "cannot determine bzr url"
        fi
        echo "Registering bzr url: $url in $MR_CONFIG"
-       mr -c "$MR_CONFIG" config "`pwd`" checkout="bzr clone '$url' '$MR_REPO'"
+       mr -c "$MR_CONFIG" config "$PWD" checkout="bzr clone '$url' '$MR_REPO'"
 cvs_register =
        repo=$(cat CVS/Repository)
        root=$(cat CVS/Root)
@@ -1186,22 +1187,22 @@ cvs_register =
                error "cannot determine cvs root"
                fi
        echo "Registering cvs repository $repo at root $root"
-       mr -c "$MR_CONFIG" config "`pwd`" checkout="cvs -d '$root' co -d '$MR_REPO' '$repo'"
+       mr -c "$MR_CONFIG" config "$PWD" checkout="cvs -d '$root' co -d '$MR_REPO' '$repo'"
 hg_register = 
        url=$(hg showconfig paths.default)
        echo "Registering mercurial repo url: $url in $MR_CONFIG"
-       mr -c "$MR_CONFIG" config "`pwd`" checkout="hg clone '$url' '$MR_REPO'"
+       mr -c "$MR_CONFIG" config "$PWD" checkout="hg clone '$url' '$MR_REPO'"
 darcs_register = 
        url=$(cat _darcs/prefs/defaultrepo)
        echo "Registering darcs repository $url in $MR_CONFIG"
-       mr -c "$MR_CONFIG" config "`pwd`" checkout="darcs get '$url'p '$MR_REPO'"
+       mr -c "$MR_CONFIG" config "$PWD" checkout="darcs get '$url'p '$MR_REPO'"
 git_bare_register = 
        url="$(LANG=C GIT_CONFIG=config git-config --get remote.origin.url)" || true
        if [ -z "$url" ]; then
                error "cannot determine git url"
        fi
        echo "Registering git url: $url in $MR_CONFIG"
-       mr -c "$MR_CONFIG" config "`pwd`" checkout="git clone --bare '$url' '$MR_REPO'"
+       mr -c "$MR_CONFIG" config "$PWD" checkout="git clone --bare '$url' '$MR_REPO'"
 
 help =
        if [ ! -e "$MR_PATH" ]; then