X-Git-Url: https://git.madduck.net/code/vcsh.git/blobdiff_plain/4b21d241422c84a3cd54cdd19e59c5110c2908f2..2dcbc4d6ccedf064aaec330b585652900cc2c061:/doc/vcsh.1.ronn?ds=inline diff --git a/doc/vcsh.1.ronn b/doc/vcsh.1.ronn index 21ded83..88ebd9d 100644 --- a/doc/vcsh.1.ronn +++ b/doc/vcsh.1.ronn @@ -1,9 +1,11 @@ -vcsh(1) - manage and sync config files via git -============================================== +vcsh(1) - manage config files in $HOME via fake bare git repositories +===================================================================== ## SYNOPSIS -`vcsh` clone [] +`vcsh` [] + +`vcsh` clone [] `vcsh` delete @@ -15,15 +17,23 @@ vcsh(1) - manage and sync config files via git `vcsh` list -`vcsh` rename +`vcsh` list-tracked -`vcsh` run +`vcsh` list-tracked-by + +`vcsh` rename -`vcsh` seed-gitignore +`vcsh` run `vcsh` setup -`vcsh` +`vcsh` which + +`vcsh` write-gitignore + +`vcsh` + +`vcsh` ## DESCRIPTION @@ -42,10 +52,26 @@ 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 +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. @@ -64,6 +90,12 @@ A sample configuration for `vcsh` and `mr` can be found at * list: List all local vcsh repositories. +* list-tracked: + List all files tracked by vcsh. + +* list-tracked-by: + List files tracked by a repository. + * rename: Rename a repository. @@ -71,29 +103,82 @@ A sample configuration for `vcsh` and `mr` can be found at Run command with <$GIT_DIR> and <$GIT_WORK_TREE> set. Allows you to run any and all commands without any restrictions. Use with care. -* seed-gitignore: - Seed .gitignore.d/ from git ls-files. + Please note that there is a somewhat magic feature for run. Instead of + it accepts , as well. Anything that has a slash in it will be assumed to + be a path. `vcsh run` will then operate on this directory instead of the one + normally generated from the repository's name. + 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. +* 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 `. ## ENVIRONMENT As noted earlier, `vcsh` will set <$GIT_DIR> and <$GIT_WORK_TREE> to the appropriate values for fake bare git repositories. +## HOOK SYSTEM + +`vcsh` provides a hook system. Hook scripts must be executable and should be +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. 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 , , + 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 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 +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, -speaking, adding a `sudo`(8) rule for `vcsh` would be pretty stupid. +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. ## BUGS None are known at this time, but reports and/or patches are more than welcome. +## KNOWN ISSUES + +As of this writing (June 2012), `vcsh` does not work with `git submodule` due +to limitations within `git`. Depending on when you are reading this, you might +want to consider upgrading. + ## HISTORY Like most people, the author initially made do with a single repository for all @@ -112,9 +197,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