]>
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 (parent:
c1ec333 )
list-tracked-by\:"list files tracked by a repo"
rename\:"rename repo"
run\:"run command on repo"
list-tracked-by\:"list files tracked by a repo"
rename\:"rename repo"
run\:"run command on repo"
- seed-gitignore\:"seed .gitignore.d/foo from git ls-files"
setup\:"set up repo with recommended settings"
setup\:"set up repo with recommended settings"
+ write-gitignore\:"write .gitignore.d/foo via git ls-files"
\<REPO\>\:"Run git command directly"
))'
\<REPO\>\:"Run git command directly"
))'
`vcsh` run <repo> <command>
`vcsh` run <repo> <command>
-`vcsh` seed-gitignore <repo>
-
+`vcsh` write-gitignore <repo>
+
`vcsh` <repo> <gitcommand>
`vcsh` <repo>
`vcsh` <repo> <gitcommand>
`vcsh` <repo>
This is needed to support mr and other scripts properly and of no concern to
an interactive user.
This is needed to support mr and other scripts properly and of no concern to
an interactive user.
-* seed-gitignore:
- Seed .gitignore.d/<repo> from git ls-files.
-
* setup:
Set up repository with recommended settings.
* setup:
Set up repository with recommended settings.
+* write-gitignore:
+ Write .gitignore.d/<repo> via git ls-files.
+
* <repo> <gitcommand>:
Shortcut to run `vcsh` on a repo. Will prepend `git` to <command> by itself.
* <repo> <gitcommand>:
Shortcut to run `vcsh` on a repo. Will prepend `git` to <command> by itself.
<newname> Rename repository
run <repo> \\
<command> Use this repository
<newname> Rename repository
run <repo> \\
<command> Use this repository
-
- seed-gitignore \\
- <repo> Seed .gitignore.d/<repo> from git ls-files
setup Set up repository with recommended settings
setup Set up repository with recommended settings
+ write-gitignore \\
+ <repo> Write .gitignore.d/<repo> via git ls-files
<repo> <git command> Special command that allows you to run git commands
directly without having to type so much ;)" >&2
<repo> <git command> Special command that allows you to run git commands
directly without having to type so much ;)" >&2
+ <repo> Special command that enters a repository
+setup() {
+ use
+ git config core.worktree "$GIT_WORK_TREE"
+ git config core.excludesfile ".gitignore.d/$VCSH_REPO_NAME"
+ git config vcsh.vcsh 'true'
+ [ -e "$HOME/.gitignore.d/$VCSH_REPO_NAME" ] && git add -f "$HOME/.gitignore.d/$VCSH_REPO_NAME"
+}
+
+use() {
+ git_dir_exists
+ export GIT_WORK_TREE="$(git config --get core.worktree)"
+ export VCSH_DIRECTORY="$VCSH_REPO_NAME"
+}
+
+write_gitignore() {
use
cd "$HOME" || fatal "could not enter '$HOME'" 11
gitignores=$(for file in $(git ls-files); do
use
cd "$HOME" || fatal "could not enter '$HOME'" 11
gitignores=$(for file in $(git ls-files); do
fatal "could not move '$tempfile' to '$HOME/.gitignore.d/$VCSH_REPO_NAME'" 53
}
fatal "could not move '$tempfile' to '$HOME/.gitignore.d/$VCSH_REPO_NAME'" 53
}
-setup() {
- use
- git config core.worktree "$GIT_WORK_TREE"
- git config core.excludesfile ".gitignore.d/$VCSH_REPO_NAME"
- git config vcsh.vcsh 'true'
- [ -e "$HOME/.gitignore.d/$VCSH_REPO_NAME" ] && git add -f "$HOME/.gitignore.d/$VCSH_REPO_NAME"
-}
-
-use() {
- git_dir_exists
- export GIT_WORK_TREE="$(git config --get core.worktree)"
- export VCSH_DIRECTORY="$VCSH_REPO_NAME"
-}
-
if [ "$1" = 'clone' ]; then
[ -z $2 ] && fatal "$1: please specify a remote" 1
export VCSH_COMMAND="$1"
if [ "$1" = 'clone' ]; then
[ -z $2 ] && fatal "$1: please specify a remote" 1
export VCSH_COMMAND="$1"
[ "$1" = 'list-tracked-by' ] ||
[ "$1" = 'rename' ] ||
[ "$1" = 'run' ] ||
[ "$1" = 'list-tracked-by' ] ||
[ "$1" = 'rename' ] ||
[ "$1" = 'run' ] ||
- [ "$1" = 'seed-gitignore ' ] ||
- [ "$1" = 'setup ' ]; then
+ [ "$1" = 'setup ' ] ||
+ [ "$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
[ -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 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="$*"
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' ]
+ [ "$VCSH_COMMAND" = 'write -gitignore' ]
elif [ "$1" = 'list' ] ||
[ "$1" = 'list-tracked' ]; then
export VCSH_COMMAND="$1"
elif [ "$1" = 'list' ] ||
[ "$1" = 'list-tracked' ]; then
export VCSH_COMMAND="$1"