`vcsh enter` and `vcsh run` will be covered in later sections.
-## Initialize a new repository called "vim"
+| Task | Command |
+| ----------------------------------------------------- | ------------------------------------------------- |
+| _Initialize a new repository called "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` |
+| _Show status of changed files in all repositories_ | `vcsh status` |
+| _Pull from all repositories_ | `vcsh pull` |
+| _Push to all repositories_ | `vcsh push` |
- 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
-
-## Show status of changed files in all repositories
-
- vcsh status
-
-## Pull from all repositories
-
- vcsh pull
-
-## Push to all repositories
-
- vcsh push
# Overview
[$XDG_CONFIG_HOME/vcsh/repo.d/zsh.git]
checkout = vcsh clone 'git://github.com/RichiH/zshrc.git' zsh
- update = vcsh run zsh git pull
- push = vcsh run zsh git push
- status = vcsh run zsh git status
- gc = vcsh run zsh git gc
+ update = vcsh zsh pull
+ push = vcsh zsh push
+ status = vcsh zsh status
+ gc = vcsh zsh gc
### config.d
vcsh will check if any file it would want to create exists. If it exists, vcsh
will throw a warning and exit. Move away your old config and try again.
Optionally, merge your local and your global configs afterwards and push with
-`vcsh run foo git push`.
+`vcsh foo push`.
## Moving into a New Host
apt-get install mr
-#### Install vcsh
+### Install vcsh
#### Debian
apt-get install vcsh
+#### Gentoo
+
+To install vcsh in Gentoo Linux just give the following command as root:
+
+ emerge dev-vcs/vcsh
+
#### Arch Linux
vcsh is availabe via [AUR](https://aur.archlinux.org/packages.php?ID=54164)
And then create your own stuff:
vcsh init foo
- vcsh run foo git add -f bar baz quux
- vcsh run foo git remote add origin git://quuux
- vcsh run foo git commit
- vcsh run foo git push
+ vcsh foo add bar baz quux
+ vcsh foo remote add origin git://quuux
+ vcsh foo commit
+ vcsh foo push
cp $XDG_CONFIG_HOME/mr/available.d/mr.vcsh $XDG_CONFIG_HOME/mr/available.d/foo.vcsh
vim $XDG_CONFIG_HOME/mr/available.d/foo.vcsh # add your own repo
After you have made some changes, for which you would normally use `git add`
and `git commit`, use the vcsh wrapper (like above):
- vcsh run foo git add -f bar baz quux
- vcsh run foo git commit
- vcsh run foo git push
-
-By the way, you'll have to use -f/--force flag with git-add because all files
-will be ignored by default. This is to show you only useful output when running
-git-status. A fix for this problem is being worked on.
+ vcsh foo add bar baz quux
+ vcsh foo commit
+ vcsh foo push
### Using vcsh without mr
To interact with a repository, use the regular Git commands, but prepend them
with `vcsh run $repository_name`. For example:
- vcsh run zsh git status
- vcsh run zsh git add -f .zshrc
- vcsh run zsh git commit
+ vcsh zsh status
+ vcsh zsh add .zshrc
+ vcsh zsh commit
Obviously, without mr keeping repositories up-to-date, it will have to be done
manually. Alternatively, you could try something like this: