From 27ef55d713132fd0b71c7ab3f759c815dcb4baec Mon Sep 17 00:00:00 2001 From: Richard Hartmann Date: Thu, 27 Oct 2011 23:20:49 +0200 Subject: [PATCH] Make INSTALL even better Thanks to Gernot Schulz for most of the changes --- INSTALL | 102 ++++++++++++++++++++++++++++++++------------------------ 1 file changed, 59 insertions(+), 43 deletions(-) diff --git a/INSTALL b/INSTALL index 76d887b..4987191 100644 --- a/INSTALL +++ b/INSTALL @@ -1,60 +1,70 @@ -=The template way= +# Getting started with vcsh # -==Prerequisites== +Below you will find three methods for setting up vcsh: -Make sure none of those files/diretories exist for your test (user). If they do, move them away for now: +1. The template way +2. The steal-from-template way +3. The manual way -~/.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/ +# 1. The template way # -All of the files are part of the template repo, the directory is where the template will be stored +## Prerequisites ## -apt-get install mr # this is optional, but highly recommended +Make sure none of the following files/diretories exist for your test (user). If they do, move them away for now: -==Clone the template== +* ~/.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 + +## 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 + 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 + vcsh clone git://github.com/RichiH/vcsh_mr_template.git mr.vcsh -==Enable your test repository== +## Enable your test repository ## mv ~/.zsh ~/zsh.bak - mv ~/.zshrc ~/zsh.bak + mv ~/.zshrc ~/zshrc.bak cd ~/.config/mr/config.d/ - ln -s ../available.d/mr.vcsh . + ln -s ../available.d/zsh.vcsh . # link, and thereby enable, the zsh repository cd mr up -==Set up your own repos== +## 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 +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== +## Daily use ## + +### Keeping repositories up-to-date ### This is the beauty of it all. Once you are set up, just run: @@ -63,44 +73,50 @@ This is the beauty of it all. Once you are set up, just run: Neat. +### Making changes ### -=The steal-from-template way= +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 -Then look around in the clone. Should be reasonable simple to understand. If not, poke me RichiH on freenode (query) or OFTC (#vcs-home). +Look around in the clone. It should be reasonably simple to understand. If not, poke me, RichiH, on Freenode (query) or OFTC (#vcs-home). -=The manual way= +# 3. The manual way # -# This is how my setup looks. Adapt to your style or copy mine verbatim, both is fine. +This is how my old setup procedure looked like. Adapt it to your own style or copy mine verbatim, either is fine. -# Create workspace + # Create workspace mkdir -p ~/work/git cd !$ -# Clone vcsh and make it available + # Clone vcsh and make it available git clone git://github.com/RichiH/vcsh.git vcsh - PATH+=":$HOME/work/git/vcsh" - export PATH + 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 + # Grab my mr config. See below for details on how I set this up. ~/work/git/vcsh/vcsh clone ssh:///mr.git cd ~/.config/mr/config.d/ ln -s ../available.d/* . -# make vcsh work by default. Adapt for Bash etc as needed - cd - zsh ~/work/git/vcsh/vcsh clone ssh:///zsh.git - ln -s ~/work/git/vcsh/vcsh .zsh/functions - zsh - - - +---------------- -################ +# The old tutorial (?) # -# mr + # mr is used to actually retrieve configs, etc ~ % cat ~/.mrconfig [DEFAULT] @@ -109,8 +125,8 @@ Then look around in the clone. Should be reasonable simple to understand. If not /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 + ~ % + # 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 -- 2.39.2