diff --git a/doc/vcsh.1.ronn b/doc/vcsh.1.ronn index 9532e654278c1187eb0112b8d50769ed19156eea..01cadb5942b9debfeb1135ea0e81ba257e1edb1e 100644 --- a/doc/vcsh.1.ronn +++ b/doc/vcsh.1.ronn @@ -86,6 +86,9 @@ an interactive user. If you need to clone a bundle of repositories, look into the `post-clone-retired` hook. +* commit: + Commit in all repositories + * delete: Delete an existing repository. diff --git a/vcsh b/vcsh index f2bbd7a229c8211b9d79cb3bb0ee262f54a28eec..85e20d8e6bc3ce41a0f451192a85f8c6e1fba28a 100755 --- a/vcsh +++ b/vcsh @@ -92,6 +92,7 @@ help() { commands: clone <remote> \\ [<repo>] Clone from an existing repository + commit Commit in all repositories delete <repo> Delete an existing repository enter <repo> Enter repository; spawn new instance of \$SHELL help Display this help text @@ -158,6 +159,18 @@ clone() { hook post-clone-retired } +commit() { + hook pre-commit + for VCSH_REPO_NAME in $(list); do + echo "$VCSH_REPO_NAME: " + export GIT_DIR="$VCSH_REPO_D/$VCSH_REPO_NAME.git" + use + git commit --untracked-files=no --quiet + echo + done + hook post-commit +} + delete() { cd "$VCSH_BASE" || fatal "could not enter '$VCSH_BASE'" 11 use @@ -383,7 +396,8 @@ elif [ "$1" = 'delete' ] || [ "$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" = 'list' ] || +elif [ "$1" = 'commit' ] || + [ "$1" = 'list' ] || [ "$1" = 'list-tracked' ] || [ "$1" = 'pull' ] || [ "$1" = 'push' ] ||