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.