X-Git-Url: https://git.madduck.net/code/vcsh.git/blobdiff_plain/ab60947be1d3050fbdd22b0226e294d5361e2f9f..264adad0164cc7ff8c8ce4609325699b7c72b5be:/doc/vcsh.1.ronn diff --git a/doc/vcsh.1.ronn b/doc/vcsh.1.ronn index bcea71c..4ec9548 100644 --- a/doc/vcsh.1.ronn +++ b/doc/vcsh.1.ronn @@ -3,6 +3,8 @@ vcsh(1) - manage config files in $HOME via fake bare git repositories ## SYNOPSIS +`vcsh` [] + `vcsh` clone [] `vcsh` delete @@ -21,13 +23,17 @@ vcsh(1) - manage config files in $HOME via fake bare git repositories `vcsh` rename -`vcsh` run +`vcsh` run + +`vcsh` upgrade + +`vcsh` version -`vcsh` setup +`vcsh` which `vcsh` write-gitignore -`vcsh` +`vcsh` `vcsh` @@ -48,7 +54,8 @@ The use of symlinks is not needed in this setup, making for a cleaner setup. vcsh. That being said, you can easily use `vcsh` without `mr` if you prefer. A sample configuration for `vcsh` and `mr` can be found at -*https://github.com/RichiH/vcsh_mr_template* +*https://github.com/RichiH/vcsh_mr_template* and used with `vcsh clone +https://github.com/RichiH/vcsh_mr_template mr`. Please note that you can always use a path instead of a name for . This is needed to support mr and other scripts properly and of no concern to @@ -56,6 +63,17 @@ an interactive user. ## OPTIONS +* -c: + Source prior to other configuration files + +* -d: + Enable debug mode + +* -v: + Enable verbose mode + +## COMMANDS + * clone: Clone an existing repository. @@ -94,14 +112,20 @@ an interactive user. This is needed to support mr and other scripts properly and of no concern to an interactive user. -* setup: - Set up repository with recommended settings. +* upgrade: + Upgrade repository to currently recommended settings. + +* version: + Print version information. + +* which : + Find in name of any tracked file. * write-gitignore: Write .gitignore.d/ via git ls-files. * : - Shortcut to run `vcsh` on a repo. Will prepend `git` to by itself. + Shortcut to run `vcsh` on a repo. Will prepend `git` to . * : Shortcut to run `vcsh enter `. @@ -111,6 +135,59 @@ an interactive user. As noted earlier, `vcsh` will set <$GIT_DIR> and <$GIT_WORK_TREE> to the appropriate values for fake bare git repositories. +## CONFIG + +There are several ways to turn the various knobs on `vcsh`. In order of +ascending precedence, they are: + +* `VARIABLE=foo vcsh` +* +* <$XDG_CONFIG_HOME/vcsh/config> +* `vcsh -c ` + +Please note that those files are sourced. Any and all commands will be +executed in the context of your shell. + +Interesting knobs you can turn: + +* <$VCSH_GITIGNORE>: + Can be either or . + + will seed the repo-specific <.gitignore> with all file and directory + names which `git ls-files` returns. + + will descend through all directories recursively additionally to + the above. + + Defaults to . + +Less interesting knobs you could turn: + +* <$VCSH_DEBUG>: + Enter debug mode. + +* <$XDG_CONFIG_HOME>: + As specified in the 'XDG Base Directory Specification', see + + + Defaults to <$HOME/.config>. + +* <$VCSH_REPO_D>: + The directory where repositories are read from and stored. + + Defaults to <$XDG_CONFIG_HOME/vcsh/repo.d>. + +* <$VCSH_HOOK_D>: + The directory where hooks are read from. + + Defaults to <$XDG_CONFIG_HOME/vcsh/hooks-enabled>. + +* <$VCSH_BASE>: + The directory where repositories are checked out to. + + Defaults to <$HOME>. + + ## HOOK SYSTEM `vcsh` provides a hook system. Hook scripts must be executable and should be @@ -118,38 +195,52 @@ placed in <$XDG_CONFIG_HOME/vcsh/hooks-available>. From there, they can be soft-linked into <$XDG_CONFIG_HOME/vcsh/hooks-enabled>; `vcsh` will only execute hooks that are in this directory. -Hooks follow a simple format. `pre-run` will be run before anything is run. +Hooks follow a simple format. will be run before anything is run. If you want to have more than one script for a certain hook, just append -any kind of string to order them. A system of `pre-run`, `pre-run.10`, -`pre-run.20` etc is suggested; other options would be `pre-run-10` or -`pre-run.sh`. A dot after the hook name is optional. +any kind of string to order them. A system of , , + etc is suggested; other options would be or +. A dot after the hook name is optional. -If you want to create hooks for a specific `vcsh` repository, simply prepend -the repository's name, followed by a dot, i.e. `zsh.pre-run`. Otherwise, the +If you want to create hooks for a specific repository, simply prepend +the repository's name, followed by a dot, i.e. . Otherwise, the same rules as above apply. The dot between the repository's name and the hook is mandatory, though. +Available hooks are , , , , +, and . If you need more, vcsh is trivial to patch, +but please let upstream know so we can ship them by default. + ## DETAILED HOWTO AND FURTHER READING -Man pages are intended to be short and thus often useless to glean best -practices from. This software comes with a file called . It contains -various approaches to setting up and using vcsh. You can view the file it as +Manpages are often short and sometimes useless to glean best practices from. +While the author tried to avoid this in this case, manpages can not cover +detailed howtos. + +This software also comes with a file called . It contains various +approaches to setting up and using vcsh. You can view the file it as plain text or render it into various other formats via Markdown. On Debian-based systems, this file can be found in . ## SECURITY CONSIDERATIONS -`vcsh` allows you to execute arbitrary commands via `vcsh` run. For example, +`vcsh` allows you to execute arbitrary commands via `vcsh run`. For example, adding a `sudo`(8) rule for `vcsh` would be pretty stupid. -Additionally, vcsh will source, i.e. execute, <$XDG_CONFIG_HOME/vcsh/config>. -You can put any and all commands into this config file and they will be executed. +Additionally, vcsh will source, i.e. execute, all files listed in . +You can put any and all commands into these config files and they will be +executed. ## BUGS None are known at this time, but reports and/or patches are more than welcome. +## INTEROPERABILITY + +If you rely on `git submodule` use `git` 1.7.12 or later. Earlier versions +do not clean internal variables properly before descending into submodules, +resulting in unhappy end users. + ## HISTORY Like most people, the author initially made do with a single repository for all @@ -168,9 +259,9 @@ This manpage and `vcsh` itself were written by Richard "RichiH" Hartmann. ## COPYRIGHT -Copyright 2011 Richard Hartmann +Copyright 2011-2012 Richard Hartmann -Licensed under the GNU GPL version 3 or higher. +Licensed under the GNU GPL version 2 or higher. https://github.com/RichiH/vcsh