From: Joey Hess Date: Fri, 26 Oct 2007 06:30:51 +0000 (-0400) Subject: Merge commit 'madduck/master' X-Git-Url: https://git.madduck.net/code/myrepos.git/commitdiff_plain/a33917423c99bcf6dc02d939e7956a746aa974ca?hp=273d6e796f78781580939f34a9958ce34c36e90e Merge commit 'madduck/master' --- diff --git a/lib/git-fake-bare b/lib/git-fake-bare index 231b631..545115b 100644 --- a/lib/git-fake-bare +++ b/lib/git-fake-bare @@ -10,25 +10,21 @@ # 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 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 2187aa0..13807f8 100755 --- 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