From b31f4a06237f93391f875e401a7ec3181d82ef47 Mon Sep 17 00:00:00 2001 From: Richard Hartmann Date: Tue, 29 Nov 2011 15:53:00 +0100 Subject: [PATCH] Update to mr support * manpage * set $VCSH_REPO_NAME (this assumes .git suffix!) --- doc/vcsh.1.ronn | 7 +++++++ vcsh | 6 +++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/doc/vcsh.1.ronn b/doc/vcsh.1.ronn index 21ded83..e06c5f9 100644 --- a/doc/vcsh.1.ronn +++ b/doc/vcsh.1.ronn @@ -71,6 +71,13 @@ A sample configuration for `vcsh` and `mr` can be found at Run command with <$GIT_DIR> and <$GIT_WORK_TREE> set. Allows you to run any and all commands without any restrictions. Use with care. + Please note that there is a somewhat magic feature for run. Instead of + it accepts , as well. Anything that has a slash in it will be assumed to + be a path. `vcsh run` will then operate on this directory instead of the one + normally generated from the repository's name. + This is needed to support mr and other scripts properly and of no concern to + an interactive user. + * seed-gitignore: Seed .gitignore.d/ from git ls-files. diff --git a/vcsh b/vcsh index 68e9120..04ea186 100755 --- a/vcsh +++ b/vcsh @@ -203,7 +203,11 @@ elif [ "$1" = 'delete' ] || if [ "$VCSH_COMMAND" = 'run' ]; then shift 2 export VCSH_EXTERNAL_COMMAND="$*" - echo $VCSH_REPO_NAME | grep -q '/' && export GIT_DIR=$VCSH_REPO_NAME + # Did we receive a directory instead of a name? Mangle the input to fit normal operation! + if echo $VCSH_REPO_NAME | grep -q '/'; then + export GIT_DIR=$VCSH_REPO_NAME + export VCSH_REPO_NAME=$(basename $VCSH_REPO_NAME .git) + fi fi [ "$VCSH_COMMAND" = 'seed-gitignore' ] # [ "$VCSH_COMMAND" = 'seed-gitignore' ] && export VCSH_COMMAND='seed_gitignore' -- 2.39.2