* IRC: #vcs-home on irc.oftc.net
-* Mailing list: vcs-home@lists.madduck.net
+* Mailing list: http://lists.madduck.net/listinfo/vcs-home
* Pull requests or issues on https://github.com/RichiH/vcsh
advantages of vcsh. See sections 3 and 4 for detailed instructions and
examples.
+## 2.1 Talks ##
+
+Some people found it useful to look at slides and videos explaining how vcsh works.
+They can all be found at [here](http://richardhartmann.de/talks/).
+
# 3 Overview
## 3.1 Comparison to Other Solutions ##
### available.d ###
-The files you see in $XDG_CONFIG_HOME/mr/available.d are mr configuration files
+The files you see in $XDG\_CONFIG\_HOME/mr/available.d are mr configuration files
that contain the commands to manage (checkout, update etc.) a single
repository. vcsh repo configs end in .vcsh, git configs end in .git, etc. This
is optional and your preference. For example, this is what a zsh.vcsh
### config.d ###
-$XDG_CONFIG_HOME/mr/available.d contains *all available* repositories. Only
+$XDG\_CONFIG\_HOME/mr/available.d contains *all available* repositories. Only
files/links present in mr/config.d, however, will be used by mr. That means
that in this example, only the zsh, gitconfigs, tmux and vim repositories will
be checked out. A simple `mr update` run in $HOME will clone or update those
[DEFAULT]
jobs = 5
- include = cat $XDG_CONFIG_HOME/mr/config.d/*
+ # Use if your mr does not have vcsh support in mainline, yet
+ include = cat /usr/share/mr/vcsh
+ include = cat ${XDG_CONFIG_HOME:-$HOME/.config}/mr/config.d/*
### repo.d ###
-$XDG_CONFIG_HOME/vcsh/repo.d is the directory where all git repositories which
+$XDG\_CONFIG\_HOME/vcsh/repo.d is the directory where all git repositories which
are under vcsh's control are located. Since their working trees are configured
to be in $HOME, the files contained in those repositories will be put in $HOME
directly.
example: `vcsh clone git://github.com/RichiH/vcsh_mr_template.git mr`
2. Choose your repositories by linking them in config.d (or go with the default
you may have already configured by adding symlinks to git).
-3. Run mr to clone the repositories: `cd; mr update`.
-4. Done.
+3. Make sure the line 'include = cat /usr/share/mr/vcsh' in .mrconfig points
+ to an existing file
+4. Run mr to clone the repositories: `cd; mr update`.
+5. Done.
Hopefully the above could help explain how this approach saves time by
* ~/.gitignore.d
* ~/.mrconfig
-* $XDG_CONFIG_HOME/mr/available.d/mr.vcsh
-* $XDG_CONFIG_HOME/mr/available.d/zsh.vcsh
-* $XDG_CONFIG_HOME/mr/config.d/mr.vcsh
-* $XDG_CONFIG_HOME/vcsh/repo.d/mr.git/
+* $XDG\_CONFIG\_HOME/mr/available.d/mr.vcsh
+* $XDG\_CONFIG\_HOME/mr/available.d/zsh.vcsh
+* $XDG\_CONFIG\_HOME/mr/config.d/mr.vcsh
+* $XDG\_CONFIG\_HOME/vcsh/repo.d/mr.git/
All of the files are part of the template repository, the directory is where
the template will be stored.
apt-get install mr
-#### 4.1.2 Clone the Template ####
+#### 4.1.2 Install vcsh ####
+
+#### 4.1.2.1 Debian ####
+
+If you are using Debian Squeeze, you will need to enable backports
+
+ apt-get install vcsh
+
+#### 4.1.2.2 Arch Linux ####
+
+vcsh is availabe via [AUR](https://aur.archlinux.org/packages.php?ID=54164)
+and further documentation about the use of AUR is available
+[on Arch's wiki](https://wiki.archlinux.org/index.php/Arch_User_Repository).
+
+ cd /var/abs/local/
+ wget https://aur.archlinux.org/packages/vc/vcsh-git/vcsh-git.tar.gz
+ tar xfz vcsh-git.tar.gz
+ cd vcsh-git
+ makepkg -s
+ pacman -U vcsh*.pkg.tar.xz
+#### 4.1.2.3 From source ####
+
+If your version of mr is older than version 1.07, make sure to put
+
+ include = cat /usr/share/mr/vcsh
+
+into your .mrconfig .
+
+ # choose a location for your checkout
+ cd $HOME
mkdir -p ~/work/git
- cd !$
- git clone git://github.com/RichiH/vcsh.git vcsh
+ git clone git://github.com/RichiH/vcsh.git
cd vcsh
- ln -s vcsh /usr/local/bin # or add it to your PATH
+ ln -s vcsh /usr/local/bin # or add it to your PATH
cd
+
+#### 4.1.3 Clone the Template ####
+
vcsh clone git://github.com/RichiH/vcsh_mr_template.git mr
-#### 4.1.3 Enable Your Test Repository ####
+#### 4.1.4 Enable Your Test Repository ####
mv ~/.zsh ~/zsh.bak
mv ~/.zshrc ~/zshrc.bak
cd
mr up
-#### 4.1.4 Set Up Your Own Repositories ####
+#### 4.1.5 Set Up Your Own Repositories ####
Now, it's time to edit the template config and fill it with your own remotes:
You're welcome to clone the example repository:
vcsh clone git://github.com/RichiH/vcsh_mr_template.git mr
+ # make sure 'include = cat /usr/share/mr/vcsh' points to an exiting file
+ vim .mrconfig
Look around in the clone. It should be reasonably simple to understand. If not,
poke me, RichiH, on Freenode (query) or OFTC (#vcs-home).
~ % cat ~/.mrconfig
[DEFAULT]
+ # adapt /usr/share/mr/vcsh to your system if needed
+ include = cat /usr/share/mr/vcsh
include = cat $XDG_CONFIG_HOME/mr/config.d/*
~ % echo $XDG_CONFIG_HOME
/home/richih/.config