diff --git a/.mailmap b/.mailmap
index 5c4d110333efc155fbbe94b905a3f3baa3de0c92..65c64b49bd9b9775e4cd36883013fb6f27833634 100644
--- a/.mailmap
+++ b/.mailmap
@@ -1,3 +1,4 @@
 Richard Hartmann <richih@debian.org> <richih+github.com@richih.org>
 Richard Hartmann <richih@debian.org> <richih.mailinglist@gmail.com>
+Richard Hartmann <richih@debian.org> <RichiH@users.noreply.github.com>
 Alexander Skurikhin <a.skurihin@gmail.com> <a.skurihin@gmail.com>
diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index 6fc85f0a3c21a3fd9ec229817c9321e3b0857907..2dad8ed3f7ed610fac2812cbe68730758925e629 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -1,12 +1,18 @@
-Alphabetical list of everyone who ever committed to this repository
+Alphabetical list of surnames of everyone who ever committed to this repository.
+Auto-generated from tools/list_CONTRIBUTORS.
 
+Eric Bouchut <ebouchut@gmail.com>
+Dridi Boukelmoune <dridi.boukelmoune@gmail.com>
 Vincent Demeester <vincent@demeester.fr>
 Thomas Ferris Nicolaisen <tfnico@gmail.com>
 martin f. krafft <madduck@madduck.net>
 Alessandro Ghedini <alessandro@ghedini.me>
 Valentin Haenel <valentin.haenel@gmx.de>
 Richard Hartmann <richih@debian.org>
+Gregor Jasny <gjasny@googlemail.com>
+Caleb Maclennan <caleb@alerque.com>
 mek-apelsin <mek@pels.in>
+Evan Pitstick <nerdx00@gmail.com>
 Dieter Plaetinck <dieter@plaetinck.be>
 Corey Quinn <corey@sequestered.net>
 Gernot Schulz <post@gernot-schulz.com>
diff --git a/Makefile b/Makefile
index cb112c72b619dec628d167f17f75630a99bb34fd..4ae8d889c5f1bd35c5fc915426e008418507d881 100644
--- a/Makefile
+++ b/Makefile
@@ -1,4 +1,8 @@
 PREFIX=/usr
+DOCDIR_PREFIX=$(PREFIX)/share/doc
+DOCDIR=$(DOCDIR_PREFIX)/$(self)
+ZSHDIR=$(PREFIX)/share/zsh/vendor-completions
+RONN ?= ronn
 
 self=vcsh
 manpages=$(self).1
@@ -11,16 +15,16 @@ install: all
 	install -m 0755 $(self) $(DESTDIR)$(PREFIX)/bin
 	install -d $(DESTDIR)$(PREFIX)/share/man/man1
 	install -m 0644 $(manpages) $(DESTDIR)$(PREFIX)/share/man/man1
-	install -d $(DESTDIR)$(PREFIX)/share/doc/$(self)
-	install -m 0644 README.md $(DESTDIR)$(PREFIX)/share/doc/$(self)
-	install -m 0644 doc/hooks $(DESTDIR)$(PREFIX)/share/doc/$(self)
-	install -d $(DESTDIR)$(PREFIX)/share/zsh/vendor-completions
-	install -m 0644 _$(self) $(DESTDIR)$(PREFIX)/share/zsh/vendor-completions
+	install -d $(DESTDIR)$(DOCDIR)
+	install -m 0644 README.md $(DESTDIR)$(DOCDIR)
+	install -m 0644 doc/hooks $(DESTDIR)$(DOCDIR)
+	install -d $(DESTDIR)$(ZSHDIR)
+	install -m 0644 _$(self) $(DESTDIR)$(ZSHDIR)
 
 manpages: $(manpages)
 
 $(self).1: doc/$(self).1.ronn
-	ronn < doc/$(self).1.ronn > $(self).1
+	$(RONN) < doc/$(self).1.ronn > $(self).1 || rm $(self).1
 
 clean:
 	rm -rf $(self).1
@@ -28,19 +32,19 @@ clean:
 uninstall:
 	rm -rf $(DESTDIR)$(PREFIX)/bin/$(self)
 	rm -rf $(DESTDIR)$(PREFIX)/share/man/man1/$(self).1
-	rm -rf $(DESTDIR)$(PREFIX)/share/doc/$(self)
-	rm -rf $(DESTDIR)$(PREFIX)/share/zsh/vendor-completions/_$(self)
+	rm -rf $(DESTDIR)$(DOCDIR)
+	rm -rf $(DESTDIR)$(ZSHDIR)/_$(self)
 
 # Potentially harmful, used a non-standard option on purpose.
 # If PREFIX=/usr/local and that's empty...
 purge: uninstall
 	rmdir -p --ignore-fail-on-non-empty $(DESTDIR)$(PREFIX)/bin/
 	rmdir -p --ignore-fail-on-non-empty $(DESTDIR)$(PREFIX)/share/man/man1/
-	rmdir -p --ignore-fail-on-non-empty $(DESTDIR)$(PREFIX)/share/doc/
-	rmdir -p --ignore-fail-on-non-empty $(DESTDIR)$(PREFIX)/share/zsh/vendor-completions/
+	rmdir -p --ignore-fail-on-non-empty $(DESTDIR)$(DOCDIR_PREFIX)
+	rmdir -p --ignore-fail-on-non-empty $(DESTDIR)$(ZSHDIR)
 
 test:
-	if which git > /dev/null ; then :; else echo "'git' not found, exiting..."; exit 1; fi
+	@if which git > /dev/null ; then :; else echo "'git' not found, exiting..."; exit 1; fi
 
 moo:
 	@if [ -x /usr/games/cowsay ]; then /usr/games/cowsay "I hope you're happy now..."; fi
diff --git a/README.md b/README.md
index e0f78375672f506cf12114218822269b367cb66a..6166a6740c58465cd703192ed2d9269e769bcf41 100644
--- a/README.md
+++ b/README.md
@@ -196,10 +196,10 @@ this repository and fork your own.
 
     [$XDG_CONFIG_HOME/vcsh/repo.d/zsh.git]
     checkout = vcsh clone 'git://github.com/RichiH/zshrc.git' zsh
-    update   = vcsh run zsh git pull
-    push     = vcsh run zsh git push
-    status   = vcsh run zsh git status
-    gc       = vcsh run zsh git gc
+    update   = vcsh zsh pull
+    push     = vcsh zsh push
+    status   = vcsh zsh status
+    gc       = vcsh zsh gc
 
 ### config.d
 
@@ -230,7 +230,7 @@ document (see above).
 vcsh will check if any file it would want to create exists. If it exists, vcsh
 will throw a warning and exit. Move away your old config and try again.
 Optionally, merge your local and your global configs afterwards and push with
-`vcsh run foo git push`.
+`vcsh foo push`.
 
 ## Moving into a New Host
 
@@ -334,10 +334,10 @@ Now, it's time to edit the template config and fill it with your own remotes:
 And then create your own stuff:
 
     vcsh init foo
-    vcsh run foo git add -f bar baz quux
-    vcsh run foo git remote add origin git://quuux
-    vcsh run foo git commit
-    vcsh run foo git push
+    vcsh foo add bar baz quux
+    vcsh foo remote add origin git://quuux
+    vcsh foo commit
+    vcsh foo push
 
     cp $XDG_CONFIG_HOME/mr/available.d/mr.vcsh $XDG_CONFIG_HOME/mr/available.d/foo.vcsh
     vim $XDG_CONFIG_HOME/mr/available.d/foo.vcsh # add your own repo
@@ -411,13 +411,9 @@ Neat.
 After you have made some changes, for which you would normally use `git add`
 and `git commit`, use the vcsh wrapper (like above):
 
-    vcsh run foo git add -f bar baz quux
-    vcsh run foo git commit
-    vcsh run foo git push
-
-By the way, you'll have to use -f/--force flag with git-add because all files
-will be ignored by default. This is to show you only useful output when running
-git-status. A fix for this problem is being worked on.
+    vcsh foo add bar baz quux
+    vcsh foo commit
+    vcsh foo push
 
 ### Using vcsh without mr
 
@@ -434,9 +430,9 @@ To clone a repository: `vcsh clone ssh://<remote>/zsh.git`
 To interact with a repository, use the regular Git commands, but prepend them
 with `vcsh run $repository_name`. For example:
 
-    vcsh run zsh git status
-    vcsh run zsh git add -f .zshrc
-    vcsh run zsh git commit
+    vcsh zsh status
+    vcsh zsh add .zshrc
+    vcsh zsh commit
 
 Obviously, without mr keeping repositories up-to-date, it will have to be done
 manually. Alternatively, you could try something like this:
diff --git a/changelog b/changelog
index 564ccbb22ec659db975b34f76a103bbc9e952592..da31aec40dec60613d67901ac33470a7afbf661b 100644
--- a/changelog
+++ b/changelog
@@ -1,3 +1,8 @@
+2013-09-09  Richard Hartmann <richih.mailinglist@gmail.com>
+
+	* Release 1.20130909
+	* Add support for relative worktrees
+
 2013-08-29  Richard Hartmann <richih.mailinglist@gmail.com>
 
 	* Release 1.20130829
diff --git a/doc/vcsh.1.ronn b/doc/vcsh.1.ronn
index 89ebff5a161a60eb8a1b2857259392a7addf1133..56df4ed26e74cdbb7a4109056b8415570843d846 100644
--- a/doc/vcsh.1.ronn
+++ b/doc/vcsh.1.ronn
@@ -184,6 +184,15 @@ Interesting knobs you can turn:
 
   Defaults to <exact>.
 
+* <$VCSH_VCSH_WORKTREE>:
+  Can be <absolute>, or <relative>.
+
+  <absolute> will set an absolute path; defaulting to <$HOME>.
+
+  <relative> will set a path relative to <$GIT_DIR>.
+
+  Defaults to <absolute>.
+
 Less interesting knobs you could turn:
 
 * <$VCSH_DEBUG>:
diff --git a/tools/list_CONTRIBUTORS b/tools/list_CONTRIBUTORS
index 351820564a77614b5b10f335d38cf5ba549d76fa..2954f583ab23df5fc286f7ee270d324f333b39df 100755
--- a/tools/list_CONTRIBUTORS
+++ b/tools/list_CONTRIBUTORS
@@ -1,5 +1,6 @@
 #!/bin/sh
 
-echo 'Alphabetical list of everyone who ever committed to this repository
+echo 'Alphabetical list of surnames of everyone who ever committed to this repository.
+Auto-generated from tools/list_CONTRIBUTORS.
 '
 git shortlog -se --all | cut -f1 --complement | sort -u -k2
diff --git a/vcsh b/vcsh
index 2ec49557b39b6d00d39d37eb70762d7fe5956538..39240093afd50dd0a47b528abb2249fedf9e1d27 100755
--- a/vcsh
+++ b/vcsh
@@ -24,7 +24,7 @@ basename() {
 }
 
 SELF=$(basename $0)
-VERSION='1.20130829'
+VERSION='1.20130909.git-HEAD'
 
 fatal() {
 	echo "$SELF: fatal: $1" >&2
@@ -81,6 +81,15 @@ fi
 [ -z "$VCSH_HOOK_D" ]                 && VCSH_HOOK_D="$XDG_CONFIG_HOME/vcsh/hooks-enabled"
 [ -z "$VCSH_BASE" ]                   && VCSH_BASE="$HOME"
 [ -z "$VCSH_GITIGNORE" ]              && VCSH_GITIGNORE='exact'
+[ -z "$VCSH_WORKTREE" ]               && VCSH_WORKTREE='absolute'
+
+if [ ! "x$VCSH_GITIGNORE" = 'xexact' ] && [ ! "x$VCSH_GITIGNORE" = 'xnone' ] && [ ! "x$VCSH_GITIGNORE" = 'xrecursive' ]; then
+	fatal "'\$VCSH_GITIGNORE' must equal 'exact', 'none', or 'recursive'" 1
+fi
+
+if [ ! "x$VCSH_WORKTREE" = 'xabsolute' ] && [ ! "x$VCSH_WORKTREE" = 'xrelative' ]; then
+	fatal "'\$VCSH_WORKTREE' must equal 'absolute', or 'relative'" 1
+fi
 
 
 help() {
@@ -150,11 +159,11 @@ clone() {
 	for object in $(git ls-tree -r origin/master | awk '{print $4}'); do
 		[ -e "$object" ] &&
 			error "'$object' exists." &&
-			VCSH_CONFLICT=1;
+			VCSH_CONFLICT=1
 	done
 	[ "$VCSH_CONFLICT" = '1' ] &&
 		fatal "will stop after fetching and not try to merge!
-  Once this situation has been resolved, run 'vcsh run $VCSH_REPO_NAME git pull' to finish cloning.\n" 17
+  Once this situation has been resolved, run 'vcsh run $VCSH_REPO_NAME git pull' to finish cloning." 17
 	git merge origin/master
 	hook post-clone
 	retire
@@ -214,9 +223,8 @@ hook() {
 init() {
 	hook pre-init
 	[ ! -e "$GIT_DIR" ] || fatal "'$GIT_DIR' exists" 10
-	export GIT_WORK_TREE="$VCSH_BASE"
-	mkdir -p "$GIT_WORK_TREE" || fatal "could not create '$GIT_WORK_TREE'" 50
-	cd "$GIT_WORK_TREE" || fatal "could not enter '$GIT_WORK_TREE'" 11
+	mkdir -p "$VCSH_BASE" || fatal "could not create '$VCSH_BASE'" 50
+	cd "$VCSH_BASE" || fatal "could not enter '$VCSH_BASE'" 11
 	git init
 	upgrade
 	hook post-init
@@ -269,7 +277,6 @@ push() {
 }
 
 retire() {
-	unset GIT_WORK_TREE
 	unset VCSH_DIRECTORY
 }
 
@@ -311,17 +318,26 @@ status() {
 
 upgrade() {
 	hook pre-upgrade
-	use
-	git config core.worktree     "$GIT_WORK_TREE"
+	# fake-bare repositories are not bare, actually. Set this to false
+	# because otherwise Git complains "fatal: core.bare and core.worktree
+	# do not make sense"
+	git config core.bare false
+	# core.worktree may be absolute or relative to $GIT_DIR, depending on
+	# user preference
+	if [ ! "x$VCSH_WORKTREE" = 'xabsolute' ]; then
+		git config core.worktree $(cd $GIT_DIR && GIT_WORK_TREE="$VCSH_BASE" git rev-parse --show-cdup)
+	elif [ ! "x$VCSH_WORKTREE" = 'xrelative' ]; then
+		git config core.worktree "$VCSH_BASE"
+	fi
 	[ ! "x$VCSH_GITIGNORE" = 'xnone' ] && git config core.excludesfile ".gitignore.d/$VCSH_REPO_NAME"
 	git config vcsh.vcsh         'true'
+	use
 	[ -e "$VCSH_BASE/.gitignore.d/$VCSH_REPO_NAME" ] && git add -f "$VCSH_BASE/.gitignore.d/$VCSH_REPO_NAME"
 	hook post-upgrade
 }
 
 use() {
 	git_dir_exists
-	export GIT_WORK_TREE="$(git config --get core.worktree)"
 	export VCSH_DIRECTORY="$VCSH_REPO_NAME"
 }
 
@@ -349,7 +365,11 @@ write_gitignore() {
 			file="$new"
 		done;
 	done | sort -u)
-	tempfile=$(mktemp) || fatal "could not create tempfile" 51
+
+	# Contrary to GNU mktemp, mktemp on BSD/OSX requires a template for temp files
+	# Use the template GNU mktemo defaults to
+	tempfile=$(mktemp tmp.XXXXXXXXXX) || fatal "could not create tempfile" 51
+
 	echo '*' > "$tempfile" || fatal "could not write to '$tempfile'" 57
 	for gitignore in $gitignores; do
 		echo "$gitignore" | sed 's@^@!/@' >> "$tempfile" || fatal "could not write to '$tempfile'" 57
@@ -370,50 +390,68 @@ write_gitignore() {
 		fatal "could not move '$tempfile' to '$VCSH_BASE/.gitignore.d/$VCSH_REPO_NAME'" 53
 }
 
+debug `git version`
+
 if [ ! "x$VCSH_GITIGNORE" = 'xexact' ] && [ ! "x$VCSH_GITIGNORE" = 'xnone' ] && [ ! "x$VCSH_GITIGNORE" = 'xrecursive' ]; then
 	fatal "'\$VCSH_GITIGNORE' must equal 'exact', 'none', or 'recursive'" 1
 fi
 
-if [ "$1" = 'clone' ]; then
-	[ -z "$2" ] && fatal "$1: please specify a remote" 1
-	export VCSH_COMMAND="$1"
+export VCSH_COMMAND="$1"
+
+[ "$VCSH_COMMAND" = 'clon' ]   || [ "$VCSH_COMMAND" = 'clo' ]   || [ "$VCSH_COMMAND" = 'cl' ]                                                                && VCSH_COMMAND='clone'
+[ "$VCSH_COMMAND" = 'commi' ]  || [ "$VCSH_COMMAND" = 'comm' ]  || [ "$VCSH_COMMAND" = 'com' ]  || [ "$VCSH_COMMAND" = 'co' ]                                && VCSH_COMMAND='commit'
+[ "$VCSH_COMMAND" = 'delet' ]  || [ "$VCSH_COMMAND" = 'dele' ]  || [ "$VCSH_COMMAND" = 'del' ]  || [ "$VCSH_COMMAND" = 'de' ]                                && VCSH_COMMAND='delete'
+[ "$VCSH_COMMAND" = 'ente' ]   || [ "$VCSH_COMMAND" = 'ent' ]   || [ "$VCSH_COMMAND" = 'en' ]                                                                && VCSH_COMMAND='enter'
+[ "$VCSH_COMMAND" = 'hel' ]    || [ "$VCSH_COMMAND" = 'he' ]                                                                                                 && VCSH_COMMAND='help'
+[ "$VCSH_COMMAND" = 'ini' ]    || [ "$VCSH_COMMAND" = 'in' ]                                                                                                 && VCSH_COMMAND='init'
+[ "$VCSH_COMMAND" = 'pul' ]                                                                                                                                  && VCSH_COMMAND='pull'
+[ "$VCSH_COMMAND" = 'pus' ]                                                                                                                                  && VCSH_COMMAND='push'
+[ "$VCSH_COMMAND" = 'renam' ]  || [ "$VCSH_COMMAND" = 'rena' ]  || [ "$VCSH_COMMAND" = 'ren' ]  || [ "$VCSH_COMMAND" = 're' ]                                && VCSH_COMMAND='rename'
+[ "$VCSH_COMMAND" = 'ru' ]                                                                                                                                   && VCSH_COMMAND='run'
+[ "$VCSH_COMMAND" = 'statu' ]  || [ "$VCSH_COMMAND" = 'stat' ]  || [ "$VCSH_COMMAND" = 'sta' ]  || [ "$VCSH_COMMAND" = 'st' ]                                && VCSH_COMMAND='status'
+[ "$VCSH_COMMAND" = 'upgrad' ] || [ "$VCSH_COMMAND" = 'upgra' ] || [ "$VCSH_COMMAND" = 'upgr' ] || [ "$VCSH_COMMAND" = 'upg' ]                               && VCSH_COMMAND='upgrade'
+[ "$VCSH_COMMAND" = 'versio' ] || [ "$VCSH_COMMAND" = 'versi' ] || [ "$VCSH_COMMAND" = 'vers' ] || [ "$VCSH_COMMAND" = 'ver' ] || [ "$VCSH_COMMAND" = 've' ] && VCSH_COMMAND='version'
+[ "$VCSH_COMMAND" = 'whic' ]   || [ "$VCSH_COMMAND" = 'whi' ]   || [ "$VCSH_COMMAND" = 'wh' ]                                                                && VCSH_COMMAND='which'
+[ "$VCSH_COMMAND" = 'write' ]  || [ "$VCSH_COMMAND" = 'writ' ]  || [ "$VCSH_COMMAND" = 'wri' ]  || [ "$VCSH_COMMAND" = 'wr' ]                                && VCSH_COMMAND='write-gitignore'
+
+
+if [ "$VCSH_COMMAND" = 'clone' ]; then
+	[ -z "$2" ] && fatal "$VCSH_COMMAND: please specify a remote" 1
 	GIT_REMOTE="$2"
 	[ -n "$3" ] && VCSH_REPO_NAME="$3" || VCSH_REPO_NAME=$(basename "$GIT_REMOTE" .git)
 	export VCSH_REPO_NAME
 	export GIT_DIR="$VCSH_REPO_D/$VCSH_REPO_NAME.git"
-elif [ "$1" = 'version' ]; then
+elif [ "$VCSH_COMMAND" = 'version' ]; then
 	echo "$SELF $VERSION"
+	git version
 	exit
-elif [ "$1" = 'which' ]; then
-	[ -z "$2" ] && fatal "$1: please specify a filename" 1
-	[ -n "$3" ] && fatal "$1: too many parameters" 1
-	export VCSH_COMMAND="$1"
+elif [ "$VCSH_COMMAND" = 'which' ]; then
+	[ -z "$2" ] && fatal "$VCSH_COMMAND: please specify a filename" 1
+	[ -n "$3" ] && fatal "$VCSH_COMMAND: too many parameters" 1
 	export VCSH_COMMAND_PARAMETER="$2"
-elif [ "$1" = 'delete' ]           ||
-     [ "$1" = 'enter' ]            ||
-     [ "$1" = 'init' ]             ||
-     [ "$1" = 'list-tracked-by' ]  ||
-     [ "$1" = 'rename' ]           ||
-     [ "$1" = 'run' ]              ||
-     [ "$1" = 'upgrade' ]          ||
-     [ "$1" = 'write-gitignore' ]; then
-	[ -z $2 ]                      && fatal "$1: please specify repository to work on" 1
-	[ "$1" = 'rename' -a -z "$3" ] && fatal "$1: please specify a target name" 1
-	[ "$1" = 'run'    -a -z "$3" ] && fatal "$1: please specify a command" 1
-	export VCSH_COMMAND="$1"
+elif [ "$VCSH_COMMAND" = 'delete' ]           ||
+     [ "$VCSH_COMMAND" = 'enter' ]            ||
+     [ "$VCSH_COMMAND" = 'init' ]             ||
+     [ "$VCSH_COMMAND" = 'list-tracked-by' ]  ||
+     [ "$VCSH_COMMAND" = 'rename' ]           ||
+     [ "$VCSH_COMMAND" = 'run' ]              ||
+     [ "$VCSH_COMMAND" = 'upgrade' ]          ||
+     [ "$VCSH_COMMAND" = 'write-gitignore' ]; then
+	[ -z $2 ]                                 && fatal "$VCSH_COMMAND: please specify repository to work on" 1
+	[ "$VCSH_COMMAND" = 'rename' -a -z "$3" ] && fatal "$VCSH_COMMAND: please specify a target name" 1
+	[ "$VCSH_COMMAND" = 'run'    -a -z "$3" ] && fatal "$VCSH_COMMAND: please specify a command" 1
 	export VCSH_REPO_NAME="$2"
 	export GIT_DIR="$VCSH_REPO_D/$VCSH_REPO_NAME.git"
 	[ "$VCSH_COMMAND" = 'rename' ] && { export VCSH_REPO_NAME_NEW="$3";
 	                                    export GIT_DIR_NEW="$VCSH_REPO_D/$VCSH_REPO_NAME_NEW.git"; }
 	[ "$VCSH_COMMAND" = 'run' ]    && shift 2
-elif [ "$1" = 'commit' ] ||
-     [ "$1" = 'list' ] ||
-     [ "$1" = 'list-tracked' ] ||
-     [ "$1" = 'pull' ] ||
-     [ "$1" = 'push' ]; then
-	export VCSH_COMMAND="$1"
-elif [ "$1" = 'status' ]; then
-	export VCSH_COMMAND="$1"
+elif [ "$VCSH_COMMAND" = 'commit' ] ||
+     [ "$VCSH_COMMAND" = 'list' ] ||
+     [ "$VCSH_COMMAND" = 'list-tracked' ] ||
+     [ "$VCSH_COMMAND" = 'pull' ] ||
+     [ "$VCSH_COMMAND" = 'push' ]; then
+	:
+elif [ "$VCSH_COMMAND" = 'status' ]; then
 	export VCSH_REPO_NAME="$2"
 elif [ -n "$2" ]; then
 	export VCSH_COMMAND='run'
@@ -422,7 +460,7 @@ elif [ -n "$2" ]; then
 	[ -d $GIT_DIR ] || { help; exit 1; }
 	shift 1
 	set -- "git" "$@"
-elif [ -n "$1" ]; then
+elif [ -n "$VCSH_COMMAND" ]; then
 	export VCSH_COMMAND='enter'
 	export VCSH_REPO_NAME="$1"
 	export GIT_DIR="$VCSH_REPO_D/$VCSH_REPO_NAME.git"