-vcsh(1) - manage config files in $HOME via fake bare git repositories
-=====================================================================
+vcsh(1) - Version Control System for $HOME - multiple Git repositories in $HOME
+===============================================================================
## SYNOPSIS
`vcsh` list-tracked-by <repo>
+`vcsh` pull
+
+`vcsh` push
+
`vcsh` rename <repo> <newname>
`vcsh` run <repo> <shell command>
-`vcsh` setup <repo>
+`vcsh` upgrade <repo>
+
+`vcsh` version
`vcsh` which <substring>
can have one repository per config set (zsh, vim, ssh, etc), picking and
choosing which configs you want to use on which machine.
-`vcsh` is using a technique called fake bare git repositories, keeping <$GIT_DIR>
+`vcsh` is using a technique called fake bare Git repositories, keeping <$GIT_DIR>
in a different directory from <$GIT_WORK_TREE> which is pointed to <$HOME>.
The use of symlinks is not needed in this setup, making for a cleaner setup.
* clone:
Clone an existing repository.
+ If you need to clone a bundle of repositories, look into the
+ `post-clone-retired` hook.
+
* delete:
Delete an existing repository.
* list-tracked-by:
List files tracked by a repository.
+* pull:
+ Pull from all vcsh remotes.
+
+* push:
+ Push to all vcsh remotes.
+
* rename:
Rename a repository.
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 <substring>:
Find <substring> in name of any tracked file.
* write-gitignore:
- Write .gitignore.d/<repo> via git ls-files.
+ Write .gitignore.d/<repo> via `git ls-files`.
* <repo> <gitcommand>:
Shortcut to run `vcsh` on a repo. Will prepend `git` to <command>.
## ENVIRONMENT
As noted earlier, `vcsh` will set <$GIT_DIR> and <$GIT_WORK_TREE> to the
-appropriate values for fake bare git repositories.
+appropriate values for fake bare Git repositories.
## CONFIG
Interesting knobs you can turn:
* <$VCSH_GITIGNORE>:
- Can be either <exact> or <recursive>.
+ Can be <exact>, <recursive>, or <none>.
- <exact> will seed the repo-specific <.gitignore> with all file and directory
+ <exact> will seed the repo-specific ignore file with all file and directory
names which `git ls-files` returns.
<recursive> will descend through all directories recursively additionally to
the above.
+ <none> will not write any ignore file.
+
Defaults to <exact>.
Less interesting knobs you could turn:
is mandatory, though.
Available hooks are <pre-enter>, <post-enter>, <pre-run>, <post-run>,
-<pre-setup>, and <post-setup>. If you need more, vcsh is trivial to patch,
+<pre-upgrade>, and <post-upgrade>. 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
Like most people, the author initially made do with a single repository for all
config files, all of which were soft-linked into <$HOME>.
-Martin F. Krafft aka madduck came up with the concept of fake bare git
+Martin F. Krafft aka madduck came up with the concept of fake bare Git
repositories.
vcsh was initally written by madduck. This version is a re-implementation from
## COPYRIGHT
-Copyright 2011-2012 Richard Hartmann <richih.mailinglist@gmail.com>
+Copyright 2011-2013 Richard Hartmann <richih.mailinglist@gmail.com>
Licensed under the GNU GPL version 2 or higher.