]> git.madduck.net Git - code/vcsh.git/blob - README.md

madduck's git repository

Every one of the projects in this repository is available at the canonical URL git://git.madduck.net/madduck/pub/<projectpath> — see each project's metadata for the exact URL.

All patches and comments are welcome. Please squash your changes to logical commits before using git-format-patch and git-send-email to patches@git.madduck.net. If you'd read over the Git project's submission guidelines and adhered to them, I'd be especially grateful.

SSH access, as well as push access can be individually arranged.

If you use my repositories frequently, consider adding the following snippet to ~/.gitconfig and using the third clone URL listed for each project:

[url "git://git.madduck.net/madduck/"]
  insteadOf = madduck:

Merge branch 'feature/foreach'
[code/vcsh.git] / README.md
1 vcsh - Version Control System for $HOME - multiple Git repositories in $HOME
2
3 [![Build Status](https://travis-ci.org/RichiH/vcsh.svg?branch=master)](https://travis-ci.org/RichiH/vcsh)
4
5
6 # Index
7
8 1. [30 Second How-to](#30-second-how-to)
9 2. [Introduction](#introduction)
10 3. [Contact](#contact)
11
12
13 # 30 Second How-to
14
15 While it may appear that there's an overwhelming amount of documentation and
16 while the explanation of the concepts behind `vcsh` needs to touch a few gory
17 details of `git` internals, getting started with `vcsh` is extremely simple.
18
19 Let's say you want to version control your `vim` configuration:
20
21     vcsh init vim
22     vcsh vim add ~/.vimrc ~/.vim
23     vcsh vim commit -m 'Initial commit of my Vim configuration'
24     # optionally push your files to a remote
25     vcsh vim remote add origin <remote>
26     vcsh vim push -u origin master
27     # from now on you can push additional commits like this
28     vcsh vim push
29
30 If all that looks a _lot_ like standard `git`, that's no coincidence; it's
31 a design feature.
32
33
34 # Introduction
35
36 [vcsh][vcsh] allows you to maintain several Git repositories in one single
37 directory. They all maintain their working trees without clobbering each other
38 or interfering otherwise. By default, all Git repositories maintained via
39 `vcsh` store the actual files in `$HOME` but you can override this setting if
40 you want to.
41
42 All this means that you can have one repository per application or application
43 family, i.e. `zsh`, `vim`, `ssh`, etc. This, in turn, allows you to clone
44 custom sets of configurations onto different machines or even for different
45 users; picking and mixing which configurations you want to use where.
46 For example, you may not need to have your `mplayer` configuration on a server
47 or available to root and you may want to maintain different configuration for
48 `ssh` on your personal and your work machines.
49
50 A lot of modern UNIX-based systems offer packages for `vcsh`. In case yours
51 does not, read [INSTALL.md](doc/INSTALL.md) for install instructions or
52 [PACKAGING.md](doc/PACKAGING.md) to create a package yourself. If you do end
53 up packaging `vcsh` please let us know so we can give you your own packaging
54 branch in the upstream repository.
55
56 ## Talks
57
58 Some people found it useful to look at slides and videos explaining how `vcsh`
59 works instead of working through the docs.
60 All slides, videos, and further information can be found
61 [on the author's talk page][talks].
62
63
64 # Contact
65
66 There are several ways to get in touch with the author and a small but committed
67 community around the general idea of version controlling your (digital) life.
68
69 * IRC: #vcs-home on irc.oftc.net
70
71 * Mailing list: [http://lists.madduck.net/listinfo/vcs-home][vcs-home-list]
72
73 * Pull requests or issues on [https://github.com/RichiH/vcsh][vcsh]
74
75
76 [myrepos]: http://myrepos.branchable.com/
77 [talks]: http://richardhartmann.de/talks/
78 [vcsh]: https://github.com/RichiH/vcsh
79 [vcs-home-list]: http://lists.madduck.net/listinfo/vcs-home