]>
git.madduck.net Git - code/vcsh.git/commitdiff
madduck's git repository
Every one of the projects in this repository is available at the canonical
URL git://git.madduck.net/madduck/pub/<projectpath> — see
each project's metadata for the exact URL.
All patches and comments are welcome. Please squash your changes to logical
commits before using git-format-patch and git-send-email to
patches@ git. madduck. net .
If you'd read over the Git project's submission guidelines and adhered to them,
I'd be especially grateful.
SSH access, as well as push access can be individually
arranged .
If you use my repositories frequently, consider adding the following
snippet to ~/.gitconfig and using the third clone URL listed for each
project:
[url "git://git.madduck.net/madduck/"]
insteadOf = madduck:
summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
68c93dc )
enter\:"Enter repo; spawn new \$SHELL"
init\:"init & clone from repo"
list\:"list all repos"
enter\:"Enter repo; spawn new \$SHELL"
init\:"init & clone from repo"
list\:"list all repos"
run\:"run command on repo"
seed-gitignore\:"seed .gitignore.d/foo from git ls-files"
setup\:"set up repo with recommended settings"
run\:"run command on repo"
seed-gitignore\:"seed .gitignore.d/foo from git ls-files"
setup\:"set up repo with recommended settings"
* 11: Could not enter $GIT_WORK_TREE
* 12: No repository found
* 13: Required directory exists but is not a directory
* 11: Could not enter $GIT_WORK_TREE
* 12: No repository found
* 13: Required directory exists but is not a directory
-* 14: Could not create directory
-* 15: Could not create file
* 16: Potentially harmful operation aborted
* 17: Files that would be overwritten exist; fix manually
* 16: Potentially harmful operation aborted
* 17: Files that would be overwritten exist; fix manually
* 51: Could not create file
* 52: Could not move directory
* 53: Could not move file
* 51: Could not create file
* 52: Could not move directory
* 53: Could not move file
+* 54: Directory exists
+* 55: File exists
* 99: Error code reserved for actions that should never happen
* 99: Error code reserved for actions that should never happen
+`vcsh` rename <repo> <newname>
+
`vcsh` run <repo> <command>
`vcsh` seed-gitignore <repo>
`vcsh` run <repo> <command>
`vcsh` seed-gitignore <repo>
* list:
List all local vcsh repositories.
* list:
List all local vcsh repositories.
+* rename:
+ Rename a repository.
+
* run:
Run command with <$GIT_DIR> and <$GIT_WORK_TREE> set. Allows you to run any
and all commands without any restrictions. Use with care.
* run:
Run command with <$GIT_DIR> and <$GIT_WORK_TREE> set. Allows you to run any
and all commands without any restrictions. Use with care.
enter Enter repository; spawn new $SHELL
init <repo> Initialize a new repository
list List all repositories
enter Enter repository; spawn new $SHELL
init <repo> Initialize a new repository
list List all repositories
+ rename <repo> \\
+ <newname> Rename repository
run <repo> \\
<command> Use this repository
run <repo> \\
<command> Use this repository
+git_dir_exists() {
+ [ -d "$GIT_DIR" ] || fatal "no repository found for '$VCSH_REPO_NAME'" 12
+}
+
init() {
[ ! -e "$GIT_DIR" ] || fatal "'$GIT_DIR' exists" 10
export GIT_WORK_TREE="$HOME"
init() {
[ ! -e "$GIT_DIR" ] || fatal "'$GIT_DIR' exists" 10
export GIT_WORK_TREE="$HOME"
+rename() {
+ git_dir_exists
+ [ -d "$GIT_DIR_NEW" ] && fatal "'$GIT_DIR_NEW' exists" 54
+ mv -f "$GIT_DIR" "$GIT_DIR_NEW" || fatal "Could not mv '$GIT_DIR' '$GIT_DIR_NEW'" 52
+
+}
+
run() {
use
$VCSH_EXTERNAL_COMMAND
run() {
use
$VCSH_EXTERNAL_COMMAND
- if [ ! -d "$GIT_DIR" ]; then
- fatal "no repository found for '$VCSH_REPO_NAME'" 12
- fi
export GIT_WORK_TREE="$(git config --get core.worktree)"
export VCSH_DIRECTORY="$VCSH_REPO_NAME"
}
export GIT_WORK_TREE="$(git config --get core.worktree)"
export VCSH_DIRECTORY="$VCSH_REPO_NAME"
}
elif [ "$1" = 'delete' ] ||
[ "$1" = 'enter' ] ||
[ "$1" = 'init' ] ||
elif [ "$1" = 'delete' ] ||
[ "$1" = 'enter' ] ||
[ "$1" = 'init' ] ||
[ "$1" = 'run' ] ||
[ "$1" = 'seed-gitignore' ] ||
[ "$1" = 'setup' ]; then
[ "$1" = 'run' ] ||
[ "$1" = 'seed-gitignore' ] ||
[ "$1" = 'setup' ]; then
- [ -z $2 ] && fatal "$1: please specify repository to work on" 1
- [ "$1" = 'run' -a -z "$3" ] && fatal "$1: please specify a command" 1
+ [ -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"
export VCSH_REPO_NAME="$2"
export GIT_DIR="$VCSH_BASE/$VCSH_REPO_NAME.git"
export VCSH_COMMAND="$1"
export VCSH_REPO_NAME="$2"
export GIT_DIR="$VCSH_BASE/$VCSH_REPO_NAME.git"
+ [ "$VCSH_COMMAND" = 'rename' ] && export GIT_DIR_NEW="$VCSH_BASE/$3.git"
[ "$VCSH_COMMAND" = 'run' ] && shift 2 && export VCSH_EXTERNAL_COMMAND="$@"
[ "$VCSH_COMMAND" = 'seed-gitignore' ] && export VCSH_COMMAND='seed_gitignore'
elif [ "$1" = 'list' ]; then
[ "$VCSH_COMMAND" = 'run' ] && shift 2 && export VCSH_EXTERNAL_COMMAND="$@"
[ "$VCSH_COMMAND" = 'seed-gitignore' ] && export VCSH_COMMAND='seed_gitignore'
elif [ "$1" = 'list' ]; then