X-Git-Url: https://git.madduck.net/code/vcsh.git/blobdiff_plain/558f3284dc552756546eb02be32ec3e737e7a3b0..9430c6d15909f3e058f0ef1dbdd27e5f3e650ff9:/INSTALL diff --git a/INSTALL b/INSTALL index 5813f80..13f7b32 100644 --- a/INSTALL +++ b/INSTALL @@ -1,41 +1,130 @@ -# This is how my setup looks. Adapt to your style or copy mine verbatim, both is fine. +# Getting started with vcsh # -# Create workspace -mkdir -p ~/work/git -cd !$ +Below you will find three methods for setting up vcsh: -# Clone vcsh and make it available -git clone git://github.com/RichiH/vcsh.git vcsh-readonly -PATH+=":/home/richih/work/git/vcsh-readonly" -export PATH +1. The template way +2. The steal-from-template way +3. The manual way -# Grab my mr config. see below for details on how I set this up -zsh ~/work/git/vcsh-readonly/vcsh clone ssh:///mr.git -cd ~/.config/mr/config.d/ -ln -s ../available.d/* . +# 1. The template way # -# make vcsh work by default. Adapt for Bash etc as needed -cd -zsh ~/work/git/vcsh-readonly/vcsh clone ssh:///zsh.git -ln -s ~/work/git/vcsh-readonly/vcsh .zsh/functions -zsh +## 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 -# mr +## Clone the template ## -~ % cat ~/.mrconfig -[DEFAULT] -include = cat ~/.config/mr/config.d/* -~ % echo $XDG_CONFIG_HOME -/home/richih/.config -~ % ls $XDG_CONFIG_HOME/mr/available.d # random selection of my repos -git-annex gitk.vcsh git.vcsh ikiwiki mr.vcsh reportbug.vcsh snippets.git wget.vcsh zsh.vcsh -~ % -# then simply ln -s whatever you want on your local machine from -# $XDG_CONFIG_HOME/mr/available.d to $XDG_CONFIG_HOME/mr/config.d -~ % cd -~ % mr -j 5 up + 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 + +## 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 + +## 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! + +## Daily use ## + +### Keeping repositories up-to-date ### + +This is the beauty of it all. Once you are set up, just run: + + mr up + mr push + +Neat. + +### 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: + + git clone git://github.com/RichiH/vcsh_mr_template.git + +Look around in the clone. It should be reasonably simple to understand. If not, poke me, RichiH, on Freenode (query) or OFTC (#vcs-home). + + +# 3. The manual way # + +This is how my old setup procedure looked like. Adapt it to your own style or copy mine verbatim, either is fine. + + # Create workspace + mkdir -p ~/work/git + cd !$ + + # Clone vcsh and make it available + git clone git://github.com/RichiH/vcsh.git vcsh + sudo ln -s ~/work/git/vcsh/vcsh /usr/bin/local + hash -r + +Grab my mr config. see below for details on how I set this up + + vcsh clone ssh:///mr.git + cd ~/.config/mr/config.d/ + ln -s ../available.d/* . + + +mr is used to actually retrieve configs, etc + + ~ % cat ~/.mrconfig + [DEFAULT] + include = cat ~/.config/mr/config.d/* + ~ % echo $XDG_CONFIG_HOME + /home/richih/.config + ~ % ls $XDG_CONFIG_HOME/mr/available.d # random selection of my repos + git-annex gitk.vcsh git.vcsh ikiwiki mr.vcsh reportbug.vcsh snippets.git wget.vcsh zsh.vcsh + ~ % + # then simply ln -s whatever you want on your local machine from + # $XDG_CONFIG_HOME/mr/available.d to $XDG_CONFIG_HOME/mr/config.d + ~ % cd + ~ % mr -j 5 up