X-Git-Url: https://git.madduck.net/code/vcsh.git/blobdiff_plain/7f239a38aa406a2328a237f5af7dc03f45fc8751..cc72e4cc992e763483e946992b7b27d9ae7af922:/README.md diff --git a/README.md b/README.md index 6c59618..0483438 100644 --- a/README.md +++ b/README.md @@ -53,7 +53,7 @@ and clone a large number of repositories. The use of mr is technically optional To illustrate, this is what a possible directory structure looks like. $HOME - |-- .config + |-- $XDG_CONFIG_HOME (defaults to $HOME/.config) | |-- mr | | |-- available.d | | | |-- zsh.vcsh @@ -84,35 +84,28 @@ To illustrate, this is what a possible directory structure looks like. ### available.d ### -The files you see in ~/.config/mr/available.d are mr configuration files that +The files you see in $XDG_CONFIG_HOME/mr/available.d are mr configuration files that contain the commands to manage (checkout, update etc.) a single repository. vcsh repo configs end in .vcsh, git configs end in .git, etc. This is optional and your preference. For example, this is what a zsh.mrconfig with read-only access to my zshrc repo looks likes. I.e. in this specific example, push can not work. - [$HOME/.config/vcsh/repo.d/zsh.git] - checkout = vcsh clone 'git://github.com/RichiH/zshrc.git' - update = vcsh run bash git pull - push = vcsh run bash git push - status = vcsh run bash git status - gc = vcsh run bash git gc + [$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 ### config.d ### -~/.config/mr/available.d contains *all available* repositories. Only +$XDG_CONFIG_HOME/mr/available.d contains *all available* repositories. Only files/links present in mr/config.d, however, will be used by mr. That means that in this example, only the zsh, gitconfigs, tmux and vim repositories will be checked out. A simple `mr update` run in $HOME will clone or update those four repositories listed in config.d. -### repo.d ### - -~/.config/vcsh/repo.d is the directory into which vcsh clones the git -repositories. Since their working trees are configured to be in $HOME, the -files contained in those repositories will be put in $HOME directly (see .zshrc -above). - ### ~/.mrconfig ### Finally, ~/.mrconfig will tie together all those single files which will allow @@ -121,7 +114,14 @@ this: [DEFAULT] jobs = 5 - include = cat ~/.config/mr/config.d/* + include = cat $XDG_CONFIG_HOME/mr/config.d/* + +### repo.d ### + +$XDG_CONFIG_HOME/vcsh/repo.d is the directory into which vcsh clones the git +repositories. Since their working trees are configured to be in $HOME, the +files contained in those repositories will be put in $HOME directly (see .zshrc +above). vcsh will check if any file it would want to create exists. If it exists, vcsh @@ -153,9 +153,9 @@ If you want to give vcsh a try, follow the instructions below. Below, you will find a few different methods for setting up vcsh: -1. The Template Way -2. The Steal-from-Template Way -3. The Manual Way +3.1. The Template Way +3.2. The Steal-from-Template Way +3.3. The Manual Way ### 3.1 The Template Way ### @@ -166,15 +166,15 @@ Make sure none of the following files and directories exist for your test * ~/.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/ +* $XDG_CONFIG_HOME/mr/available.d/mr.vcsh +* $XDG_CONFIG_HOME/mr/available.d/zsh.vcsh +* $XDG_CONFIG_HOME/mr/config.d/mr.vcsh +* $XDG_CONFIG_HOME/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 + apt-get install mr #### 3.1.2 Clone the Template #### @@ -190,7 +190,7 @@ the template will be stored. mv ~/.zsh ~/zsh.bak mv ~/.zshrc ~/zshrc.bak - cd ~/.config/mr/config.d/ + cd $XDG_CONFIG_HOME/mr/config.d/ ln -s ../available.d/zsh.vcsh . # link, and thereby enable, the zsh repository cd mr up @@ -199,8 +199,8 @@ the template will be stored. 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 + vim $XDG_CONFIG_HOME/mr/available.d/mr.vcsh + vim $XDG_CONFIG_HOME/mr/available.d/zsh.vcsh And then create your own stuff: @@ -210,8 +210,8 @@ And then create your own stuff: 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 + 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 Done! @@ -242,7 +242,7 @@ copy mine verbatim, either is fine. Grab my mr config. see below for details on how I set this up vcsh clone ssh:///mr.git - cd ~/.config/mr/config.d/ + cd $XDG_CONFIG_HOME/mr/config.d/ ln -s ../available.d/* . @@ -250,7 +250,7 @@ mr is used to actually retrieve configs, etc ~ % cat ~/.mrconfig [DEFAULT] - include = cat ~/.config/mr/config.d/* + include = cat $XDG_CONFIG_HOME/mr/config.d/* ~ % echo $XDG_CONFIG_HOME /home/richih/.config ~ % ls $XDG_CONFIG_HOME/mr/available.d # random selection of my repos