Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
V
vcsh
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Deploy
Releases
Container registry
Model registry
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Kevin Lyda
vcsh
Commits
b5714388
Commit
b5714388
authored
13 years ago
by
Dieter Plaetinck
Browse files
Options
Downloads
Patches
Plain Diff
Do not rely on XDG settings being the defaults
parent
001cf886
Branches
Branches containing commit
Tags
Tags containing commit
No related merge requests found
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
README.md
+17
-17
17 additions, 17 deletions
README.md
with
17 additions
and
17 deletions
README.md
+
17
−
17
View file @
b5714388
...
@@ -53,7 +53,7 @@ and clone a large number of repositories. The use of mr is technically optional
...
@@ -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.
To illustrate, this is what a possible directory structure looks like.
$HOME
$HOME
|-- .config
|--
$XDG_CONFIG_HOME (defaults to $HOME/
.config
)
| |-- mr
| |-- mr
| | |-- available.d
| | |-- available.d
| | | |-- zsh.vcsh
| | | |-- zsh.vcsh
...
@@ -84,14 +84,14 @@ To illustrate, this is what a possible directory structure looks like.
...
@@ -84,14 +84,14 @@ To illustrate, this is what a possible directory structure looks like.
### available.d ###
### 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.
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
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
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
access to my zshrc repo looks likes. I.e. in this specific example, push can
not work.
not work.
[$
HOME/.config
/vcsh/repo.d/zsh.git]
[$
XDG_CONFIG_HOME
/vcsh/repo.d/zsh.git]
checkout = vcsh clone 'git://github.com/RichiH/zshrc.git' zsh
checkout = vcsh clone 'git://github.com/RichiH/zshrc.git' zsh
update = vcsh run zsh git pull
update = vcsh run zsh git pull
push = vcsh run zsh git push
push = vcsh run zsh git push
...
@@ -100,7 +100,7 @@ not work.
...
@@ -100,7 +100,7 @@ not work.
### config.d ###
### 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
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
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
be checked out. A simple
`mr update`
run in $HOME will clone or update those
...
@@ -114,11 +114,11 @@ this:
...
@@ -114,11 +114,11 @@ this:
[DEFAULT]
[DEFAULT]
jobs = 5
jobs = 5
include = cat
~/.config
/mr/config.d/*
include = cat
$XDG_CONFIG_HOME
/mr/config.d/*
### repo.d ###
### repo.d ###
~/.config
/vcsh/repo.d is the directory into which vcsh clones the git
$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
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
files contained in those repositories will be put in $HOME directly (see .zshrc
above).
above).
...
@@ -166,10 +166,10 @@ Make sure none of the following files and directories exist for your test
...
@@ -166,10 +166,10 @@ Make sure none of the following files and directories exist for your test
*
~/.gitignore
*
~/.gitignore
*
~/.mrconfig
*
~/.mrconfig
*
~/.config
/mr/available.d/mr.vcsh
*
$XDG_CONFIG_HOME
/mr/available.d/mr.vcsh
*
~/.config
/mr/available.d/zsh.vcsh
*
$XDG_CONFIG_HOME
/mr/available.d/zsh.vcsh
*
~/.config
/mr/config.d/mr.vcsh
*
$XDG_CONFIG_HOME
/mr/config.d/mr.vcsh
*
~/.config
/vcsh/repo.d/mr.git/
*
$XDG_CONFIG_HOME
/vcsh/repo.d/mr.git/
All of the files are part of the template repository, the directory is where
All of the files are part of the template repository, the directory is where
the template will be stored.
the template will be stored.
...
@@ -190,7 +190,7 @@ the template will be stored.
...
@@ -190,7 +190,7 @@ the template will be stored.
mv ~/.zsh ~/zsh.bak
mv ~/.zsh ~/zsh.bak
mv ~/.zshrc ~/zshrc.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
ln -s ../available.d/zsh.vcsh . # link, and thereby enable, the zsh repository
cd
cd
mr up
mr up
...
@@ -199,8 +199,8 @@ the template will be stored.
...
@@ -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:
Now, it's time to edit the template config and fill it with your own remotes:
vim
.config
/mr/available.d/mr.vcsh
vim
$XDG_CONFIG_HOME
/mr/available.d/mr.vcsh
vim
.config
/mr/available.d/zsh.vcsh
vim
$XDG_CONFIG_HOME
/mr/available.d/zsh.vcsh
And then create your own stuff:
And then create your own stuff:
...
@@ -210,8 +210,8 @@ 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 commit
vcsh run foo git push
vcsh run foo git push
cp
.config
/mr/available.d/mr.vcsh
.config
/mr/available.d/foo.vcsh
cp
$XDG_CONFIG_HOME
/mr/available.d/mr.vcsh
$XDG_CONFIG_HOME
/mr/available.d/foo.vcsh
vim
.config
/mr/available.d/foo.vcsh # add your own repo
vim
$XDG_CONFIG_HOME
/mr/available.d/foo.vcsh # add your own repo
Done!
Done!
...
@@ -242,7 +242,7 @@ copy mine verbatim, either is fine.
...
@@ -242,7 +242,7 @@ copy mine verbatim, either is fine.
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
vcsh clone ssh://<remote>/mr.git
vcsh clone ssh://<remote>/mr.git
cd
~/.config
/mr/config.d/
cd
$XDG_CONFIG_HOME
/mr/config.d/
ln -s ../available.d/* .
ln -s ../available.d/* .
...
@@ -250,7 +250,7 @@ mr is used to actually retrieve configs, etc
...
@@ -250,7 +250,7 @@ mr is used to actually retrieve configs, etc
~ % cat ~/.mrconfig
~ % cat ~/.mrconfig
[DEFAULT]
[DEFAULT]
include = cat
~/.config
/mr/config.d/*
include = cat
$XDG_CONFIG_HOME
/mr/config.d/*
~ % echo $XDG_CONFIG_HOME
~ % echo $XDG_CONFIG_HOME
/home/richih/.config
/home/richih/.config
~ % ls $XDG_CONFIG_HOME/mr/available.d # random selection of my repos
~ % ls $XDG_CONFIG_HOME/mr/available.d # random selection of my repos
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment