Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
=The template way=
==Prerequisites==
Make sure none of those 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 repo, 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
cd
vcsh clone git://github.com/RichiH/vcsh_mr_template.git mr.vcsh
==Enable your test repository==
mv ~/.zsh ~/zsh.bak
mv ~/.zshrc ~/zsh.bak
cd ~/.config/mr/config.d/
ln -s ../available.d/mr.vcsh .
cd
mr up
==Set up your own repos==
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==
This is the beauty of it all. Once you are set up, just run:
mr up
mr push
Neat.
=The manual way=
# This is how my setup looks. Adapt to your style or copy mine verbatim, both is fine.
# Create workspace
mkdir -p ~/work/git
cd !$
git clone git://github.com/RichiH/vcsh.git vcsh
PATH+=":$HOME/work/git/vcsh"
export PATH
# Grab my mr config. see below for details on how I set this up
~/work/git/vcsh/vcsh clone ssh://<remote>/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://<remote>/zsh.git
ln -s ~/work/git/vcsh/vcsh .zsh/functions
zsh
################
# mr
~ % 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