X-Git-Url: https://git.madduck.net/code/vcsh.git/blobdiff_plain/df8dca367ef16c038dfb7ffd89749f2055d57385..bca2d01e18e69ae7b602950ee640a08ea1c8cef0:/README.md?ds=sidebyside diff --git a/README.md b/README.md index c0b7cd3..57f56ed 100644 --- a/README.md +++ b/README.md @@ -47,7 +47,7 @@ For example, you may not need to have your `mplayer` configuration on a server or available to root and you may want to maintain different configuration for `ssh` on your personal and your work machines. -A lot of modern UNIX-based systems offer pacakges for `vcsh`. In case yours +A lot of modern UNIX-based systems offer packages for `vcsh`. In case yours does not read `INSTALL.md` for install instructions or `PACKAGING.md` to create a package, yourself. If you do end up packaging `vcsh` please let us know so we can give you your own packaging branch in the upstream repository. @@ -65,35 +65,25 @@ All slides, videos, and further information can be found There are three different ways to interact with `vcsh` repositories; this section will only show the simplest and easiest way. Certain more advanced use cases require the other two ways, but don't worry -about this for now. This will be covered in the advanced sections. - -## Initialize a new repository "vim" - - vcsh init vim - -## Clone an existing repository - - vcsh clone - -## 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 - 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 - +about this for now. If you never even bother playing with the other two +modes you will still be fine. +`vcsh enter` and `vcsh run` will be covered in later sections. + + +| Task | Command | +| ----------------------------------------------------- | ------------------------------------------------- | +| _Initialize a new repository called "vim"_ | `vcsh init vim` | +| _Clone an existing repository_ | `vcsh clone ` | +| _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 ` | +| | `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 @@ -183,10 +173,10 @@ this repository and fork your own. [$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 @@ -203,9 +193,6 @@ you to conveniently run `mr up` etc. to manage all repositories. It looks like this: [DEFAULT] - jobs = 5 - # 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 @@ -220,7 +207,7 @@ document (see above). 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 @@ -231,10 +218,8 @@ configuration to a new host. 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. 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. +3. Run mr to clone the repositories: `cd; mr update`. +4. Done. Hopefully the above could help explain how this approach saves time by @@ -272,14 +257,21 @@ the template will be stored. apt-get install mr -#### Install vcsh +### Install vcsh #### Debian -If you are using Debian Squeeze, you will need to enable backports +If you are using Debian Squeeze, you will need to enable backports. +From Wheezy onwards, you can install it directly: 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) @@ -295,18 +287,12 @@ and further documentation about the use of AUR is available #### 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 ~/work/git git clone git://github.com/RichiH/vcsh.git cd vcsh - ln -s vcsh /usr/local/bin # or add it to your PATH + sudo ln -s vcsh /usr/local/bin # or add it to your PATH cd #### Clone the Template @@ -332,10 +318,10 @@ Now, it's time to edit the template config and fill it with your own remotes: 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 @@ -409,13 +395,9 @@ Neat. 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 @@ -432,9 +414,9 @@ To clone a repository: `vcsh clone ssh:///zsh.git` 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: