X-Git-Url: https://git.madduck.net/code/vcsh.git/blobdiff_plain/04836991be4626c60964f77a935d425e41782c9f..aeb2de1f617285e3cd7ff63e7c8232799433cb6b:/doc/vcsh.1.ronn?ds=inline

diff --git a/doc/vcsh.1.ronn b/doc/vcsh.1.ronn
index ee13b7f..45b8c83 100644
--- a/doc/vcsh.1.ronn
+++ b/doc/vcsh.1.ronn
@@ -5,21 +5,23 @@ vcsh(1) - Version Control System for $HOME - multiple Git repositories in $HOME
 
 `vcsh` [<options>] <command>
 
-`vcsh` clone <url> [<repo>]
+`vcsh` clone [-b <branch>] <url> [<repo>]
 
 `vcsh` delete <repo>
 
 `vcsh` enter <repo>
 
+`vcsh` foreach [-g] <git command>
+
 `vcsh` help
 
 `vcsh` init <repo>
 
 `vcsh` list
 
-`vcsh` list-tracked
+`vcsh` list-tracked [<repo>]
 
-`vcsh` list-tracked-by <repo>
+`vcsh` list-untracked [<-a>] [<-r>] [<repo>]
 
 `vcsh` pull
 
@@ -29,6 +31,8 @@ vcsh(1) - Version Control System for $HOME - multiple Git repositories in $HOME
 
 `vcsh` run <repo> <shell command>
 
+`vcsh` status [<repo>]
+
 `vcsh` upgrade <repo>
 
 `vcsh` version
@@ -37,7 +41,7 @@ vcsh(1) - Version Control System for $HOME - multiple Git repositories in $HOME
 
 `vcsh` write-gitignore <repo>
 
-`vcsh` <repo> <git command>
+`vcsh` <repo> <gitcommand>
 
 `vcsh` <repo>
 
@@ -81,12 +85,26 @@ an interactive user.
 * clone:
   Clone an existing repository.
 
+  If you need to clone a bundle of repositories, look into the
+  `post-clone-retired` hook.
+
+  You can also use a single git repository with several branches. Use the `-b`
+  option to specify a branch at clone time, the default is `master`.
+
+* commit:
+  Commit in all repositories
+
 * delete:
   Delete an existing repository.
 
 * enter:
   Enter repository; spawn new <$SHELL>.
 
+* foreach:
+  Execute git command for every vcsh repository.
+
+  `-g`: Execute in general context.
+
 * help:
   Display help.
 
@@ -99,9 +117,26 @@ an interactive user.
 * list-tracked:
   List all files tracked by vcsh.
 
+  If you want to list files tracked by a specific repository, simply
+  append the repository's name last.
+
 * list-tracked-by:
   List files tracked by a repository.
 
+  This is a legacy command; you should use `list-tracked <repo>` instead.
+
+* list-untracked:
+  List all files NOT tracked by vcsh.
+
+  `-a`: Show all files.
+  By default, the `git ls-files --exclude-standard` is called.
+
+  `-r`: Recursive mode.
+  By default, the file list is shallow and stops at directory levels where
+  possible.
+
+  `$repo`: List files not tracked by this specific repository.
+
 * pull:
   Pull from all vcsh remotes.
 
@@ -122,6 +157,9 @@ an interactive user.
   This is needed to support mr and other scripts properly and of no concern to
   an interactive user.
 
+* status:
+  Show statuses of all/one vcsh repositories.
+
 * upgrade:
   Upgrade repository to currently recommended settings.
 
@@ -135,7 +173,7 @@ an interactive user.
   Write .gitignore.d/<repo> via `git ls-files`.
 
 * <repo> <gitcommand>:
-  Shortcut to run `vcsh` on a repo. Will prepend `git` to <command>.
+  Shortcut to run `git` commands on a repo. Will prepend `git` to <gitcommand>.
 
 * <repo>:
   Shortcut to run `vcsh enter <repo>`.
@@ -160,17 +198,37 @@ executed in the context of your shell.
 
 Interesting knobs you can turn:
 
+* <$VCSH_GITATTRIBUTES>:
+  Can be <none>, or any other value.
+
+  <none> will not maintain Git attributes in a special location.
+
+  If set to any other value, repo-specific gitattributes files will be maintained.
+
+  Defaults to <none>.
+
 * <$VCSH_GITIGNORE>:
-  Can be either <exact> or <recursive>.
+  Can be <exact>, <none>, or <recursive>.
 
-  <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.
 
+  <none> will not write any ignore file.
+
   <recursive> will descend through all directories recursively additionally to
   the above.
 
   Defaults to <exact>.
 
+* <$VCSH_VCSH_WORKTREE>:
+  Can be <absolute>, or <relative>.
+
+  <absolute> will set an absolute path; defaulting to <$HOME>.
+
+  <relative> will set a path relative to <$GIT_DIR>.
+
+  Defaults to <absolute>.
+
 Less interesting knobs you could turn:
 
 * <$VCSH_DEBUG>:
@@ -216,9 +274,30 @@ the repository's name, followed by a dot, i.e. <zsh.pre-run>. Otherwise, the
 same rules as above apply. The dot between the repository's name and the hook
 is mandatory, though.
 
-Available hooks are <pre-enter>, <post-enter>, <pre-run>, <post-run>,
-<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.
+Available hooks are <pre-clone>, <post-clone>, <post-clone-retired>,
+<pre-command>, <post-command>, <pre-enter>, <post-enter>, <pre-init>,
+<post-init>, <pre-pull>, <post-pull>, <pre-push>, <post-push>, <pre-run>,
+<post-run>, <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.
+
+## OVERLAY SYSTEM
+
+`vcsh` also provides an overlay system. Similar to hooks, the recommended
+locations are <$XDG_CONFIG_HOME/vcsh/overlays-available> and
+<$XDG_CONFIG_HOME/vcsh/overlays-enabled>.
+
+Overlays follow the same rules as hooks and you are free to overwrite any
+and all functions. Same as hooks, you can use global or repository-specific
+overlays by using either <$VCSH_OVERLAY_D/$VCSH_COMMAND> or
+<$VCSH_OVERLAY_D/$VCSH_REPO_NAME.$VCSH_COMMAND>.
+
+Please note that nothing stops you from, e.g. overwriting `status()` in
+<$VCSH_OVERLAY_D/commit>. As the overlays will be sourced and you are
+replacing arbitrary functions, any and all features may stop working, or you
+may even lose data.
+
+You have been warned.
 
 ## DETAILED HOWTO AND FURTHER READING
 
@@ -269,7 +348,7 @@ This manpage and `vcsh` itself were written by Richard "RichiH" Hartmann.
 
 ## COPYRIGHT
 
-Copyright 2011-2013 Richard Hartmann <richih.mailinglist@gmail.com>
+Copyright 2011-2015 Richard Hartmann <richih@debian.org>
 
 Licensed under the GNU GPL version 2 or higher.