X-Git-Url: https://git.madduck.net/code/myrepos.git/blobdiff_plain/0e3a40817706ba6b4fc5ddfdd1e0ad60b555f597..bba0730143212b171b7bb9b2bdec04c4fb1aad33:/mr?ds=sidebyside diff --git a/mr b/mr index 5794ab0..3dbacf0 100755 --- a/mr +++ b/mr @@ -1125,7 +1125,7 @@ svn_register = echo "Registering svn url: $url in $MR_CONFIG" mr -c "$MR_CONFIG" config "`pwd`" checkout="svn co $url $MR_REPO" git_register = - url="$(LANG=C git-config --get remote.origin.url)" + url="$(LANG=C git-config --get remote.origin.url)" || true if [ -z "$url" ]; then error "cannot determine git url" fi @@ -1155,27 +1155,35 @@ darcs_register = echo "Registering darcs repository $url in $MR_CONFIG" mr -c "$MR_CONFIG" config "`pwd`" checkout="darcs get $url $MR_REPO" git_bare_register = - url="$(LANG=C GIT_CONFIG=config git-config --get remote.origin.url)" + url="$(LANG=C GIT_CONFIG=config git-config --get remote.origin.url)" || true if [ -z "$url" ]; then error "cannot determine git url" fi mr -c "$MR_CONFIG" config "`pwd`" \ lib="GIT_WORK_TREE=$work_tree; export GIT_WORK_TREE" 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 --bare $url $MR_REPO" git_fake_bare_register = - url="$(LANG=C GIT_CONFIG=config git-config --get remote.origin.url)" + url="$(LANG=C GIT_CONFIG=config git-config --get remote.origin.url)" || true if [ -z "$url" ]; then error "cannot determine git url" fi worktree="$(git-config --get core.worktree)" || true + worktree="${worktree%%/}/" if [ ! -d "$worktree" ]; then error "git worktree $worktree does not exist" fi mr -c "$MR_CONFIG" config "`pwd`" \ lib="GIT_WORK_TREE=$work_tree; export GIT_WORK_TREE" echo "Registering git url: $url in $MR_CONFIG (with worktree $worktree)" - mr -c "$MR_CONFIG" config "`pwd`" checkout="git clone $url $MR_REPO" + mr -c "$MR_CONFIG" config "`pwd`" \ + checkout=" + git clone --no-checkout $url $MR_REPO + cd $MR_REPO + git read-tree HEAD + git checkout-index -a --prefix='$work_tree' || true + git config core.worktree '$worktree'" + mv .git/* . && rmdir .git" help = if [ ! -e "$MR_PATH" ]; then