2. [30 second howto](#30-second-howto)
3. [Overview](#overview)
4. [Getting Started](#getting-started)
-5. [Usage](#usage)
+5. [Usage Exmaples](#usage-examples)
6. [Contact](#contact)
# Introduction
-[vcsh][vcsh] allows you to maintain several git repositories in one single
+[vcsh][vcsh] allows you to maintain several Git repositories in one single
directory. They all maintain their working trees without clobbering each other
-or interfering otherwise. By default, all git repositories maintained via
-`vcsh` are stored in `$HOME` but you can override this setting if you want to.
+or interfering otherwise. By default, all Git repositories maintained via
+`vcsh` store the actual files in `$HOME` but you can override this setting if
+you want to.
All this means that you can have one repository per application or application
family, i.e. `zsh`, `vim`, `ssh`, etc. This, in turn, allows you to clone
custom sets of configurations onto different machines or even for different
or available to root and you may want to maintain different configuration for
`ssh` on your personal and your work machines.
-`vcsh` was designed with [mr][mr], a tool to manage Multiple Repositories, in
-mind and the two integrate very nicely. `mr` has native support for `vcsh`
-repositories and to `vcsh`, `mr` is just another configuration to track.
-This make setting up any new machine a breeze. It takes literally less than
-five minutes to go from standard installation to fully set up system
-
A lot of modern UNIX-based systems offer pacakges for `vcsh`. In case yours
does not read `INSTALL.md` for install instructions or `PACKAGING.md` to create
a package, yourself. If you do end up packaging `vcsh` please let us know so we
vcsh vim add ~/.vimrc ~/.vim
vcsh vim commit -m 'Initial commit of my Vim configuration'
# optionally push your files to a remote
- vcsh vim <remote> add origin REMOTE
- vcsh vim push origin master:master
+ vcsh vim remote add origin <remote>
+ vcsh vim push -u origin master
+ # from now on you can push additional commits like this
+ vcsh vim push
If all that looks a _lot_ like standard `git`, that's no coincidence; it's
a design feature.
takes care of pulling in and pushing out new data for a variety of version
control systems.
+`vcsh` was designed with [mr][mr], a tool to manage Multiple Repositories, in
+mind and the two integrate very nicely. `mr` has native support for `vcsh`
+repositories and to `vcsh`, `mr` is just another configuration to track.
+This make setting up any new machine a breeze. It takes literally less than
+five minutes to go from standard installation to fully set up system
-The last logical step is to maintain all those new repositores with an automated
-tool instead of tracking them by hand.
This is where `mr` comes in. While the use of `mr` is technically
optional, but it will be an integral part of the proposed system that follows.
~ % mr -j 5 up
-# Usage
+# Usage Examples
+
+All examples in this section will use the short form of `vcsh` which is the
+simplest way to interface with it. If you don't know what that means simply
+ignore this fact for now and follow the examples.
+
+## Initialize a new repository "vim"
+
+ vcsh init vim
+
+## Clone an existing repository
+
+ vcsh clone <remote> <repository_name>
+
+## Add files to repository "vim"
+
+ vcsh vim add ~/.vimrc ~/.vim
+ vcsh vim commit -m 'Update Vim configuration'
+
+## Add a remote for repository "vim"
+
+ vcsh vim remote add origin <remote>
+ vcsh vim push origin master:master
+ vcsh vim branch --track master origin/master
+
+## Push to remote of repository "vim"
+
+ vcsh vim push
+
+## Pull from remote of repository "vim"
+
+ vcsh vim pull
+
+
+# mr usage ; will be factored out & rewritten
### Keeping repositories Up-to-Date
to use mr, in which case you will have to run those commands manually or by
other means.
-#### A Few Examples
To initialize a new repository: `vcsh init zsh`