-
Gernot Schulz authoredGernot Schulz authored
Getting started with vcsh
Below, you will find a few different methods for setting up vcsh:
- The template way
- The steal-from-template way
- The manual way
- Using vcsh without mr
1. The template way
1.1 Prerequisites
Make sure none of the following files/diretories exist for your test (user). If they do, move them away for now:
- ~/.gitignore
- ~/.mrconfig
- ~/.config/mr/available.d/mr.vcsh
- ~/.config/mr/available.d/zsh.vcsh
- ~/.config/mr/config.d/mr.vcsh
- ~/.config/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 # this is optional, but highly recommended
1.2 Clone the template
mkdir -p ~/work/git
cd !$
git clone git://github.com/RichiH/vcsh.git vcsh
cd vcsh
ln -s vcsh /usr/local/bin # or add it to your PATH
cd
vcsh clone git://github.com/RichiH/vcsh_mr_template.git mr.vcsh
1.3 Enable your test repository
mv ~/.zsh ~/zsh.bak
mv ~/.zshrc ~/zshrc.bak
cd ~/.config/mr/config.d/
ln -s ../available.d/zsh.vcsh . # link, and thereby enable, the zsh repository
cd
mr up
1.4 Set up your own repositories
Now, it's time to edit the template config and fill it with your own remotes:
vim .config/mr/available.d/mr.vcsh
vim .config/mr/available.d/zsh.vcsh
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
cp .config/mr/available.d/mr.vcsh .config/mr/available.d/foo.vcsh
vim .config/mr/available.d/foo.vcsh # add your own repo
Done!
1.5 Daily use
1.5.1 Keeping repositories up-to-date
This is the beauty of it all. Once you are set up, just run:
mr up mr push
Neat.
1.5.2 Making changes
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.
2. The steal-from-template way
You're welcome to clone the example repository: