Skip to main content
Homepage
Explore
Search or go to…
/
Sign in
Explore
Primary navigation
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
GitLab community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Collapse sidebar
Snippets
Groups
Projects
Show more breadcrumbs
Kevin Lyda
vcsh
Commits
53ad5575
Commit
53ad5575
authored
Feb 15, 2012
by
Richard Hartmann
Browse files
Options
Downloads
Plain Diff
Merge branch 'master' of github.com:RichiH/vcsh
parents
b94219f8
25a68ef8
Branches
Branches containing commit
Tags
Tags containing commit
No related merge requests found
Changes
4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
README.md
+11
-9
11 additions, 9 deletions
README.md
doc/hooks
+2
-0
2 additions, 0 deletions
doc/hooks
doc/vcsh.1.ronn
+6
-1
6 additions, 1 deletion
doc/vcsh.1.ronn
vcsh
+25
-9
25 additions, 9 deletions
vcsh
with
44 additions
and
19 deletions
README.md
+
11
−
9
View file @
53ad5575
...
@@ -15,7 +15,7 @@ community around the general idea of version controlling your (digital) life.
...
@@ -15,7 +15,7 @@ community around the general idea of version controlling your (digital) life.
*
IRC: #vcs-home on irc.oftc.net
*
IRC: #vcs-home on irc.oftc.net
*
Mailing list:
vcs-home@
lists.madduck.net
*
Mailing list:
http://
lists.madduck.net
/listinfo/vcs-home
*
Pull requests or issues on https://github.com/RichiH/vcsh
*
Pull requests or issues on https://github.com/RichiH/vcsh
...
@@ -98,7 +98,7 @@ To illustrate, this is what a possible directory structure looks like.
...
@@ -98,7 +98,7 @@ To illustrate, this is what a possible directory structure looks like.
### available.d ###
### available.d ###
The files you see in $XDG_CONFIG_HOME/mr/available.d are mr configuration files
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
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
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.vcsh
is optional and your preference. For example, this is what a zsh.vcsh
...
@@ -116,7 +116,7 @@ this repository and fork your own.
...
@@ -116,7 +116,7 @@ this repository and fork your own.
### config.d ###
### config.d ###
$XDG_CONFIG_HOME/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
...
@@ -130,11 +130,13 @@ this:
...
@@ -130,11 +130,13 @@ this:
[DEFAULT]
[DEFAULT]
jobs = 5
jobs = 5
include = cat $XDG_CONFIG_HOME/mr/config.d/*
# 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 ###
### repo.d ###
$XDG_CONFIG_HOME/vcsh/repo.d is the directory where all git repositories which
$XDG
\
_
CONFIG
\
_
HOME/vcsh/repo.d is the directory where all git repositories which
are under vcsh's control are located. Since their working trees are configured
are under vcsh's control are located. Since their working trees are configured
to be in $HOME, the files contained in those repositories will be put in $HOME
to be in $HOME, the files contained in those repositories will be put in $HOME
directly.
directly.
...
@@ -185,10 +187,10 @@ Make sure none of the following files and directories exist for your test
...
@@ -185,10 +187,10 @@ Make sure none of the following files and directories exist for your test
*
~/.gitignore.d
*
~/.gitignore.d
*
~/.mrconfig
*
~/.mrconfig
*
$XDG_CONFIG_HOME/mr/available.d/mr.vcsh
*
$XDG
\
_
CONFIG
\
_
HOME/mr/available.d/mr.vcsh
*
$XDG_CONFIG_HOME/mr/available.d/zsh.vcsh
*
$XDG
\
_
CONFIG
\
_
HOME/mr/available.d/zsh.vcsh
*
$XDG_CONFIG_HOME/mr/config.d/mr.vcsh
*
$XDG
\
_
CONFIG
\
_
HOME/mr/config.d/mr.vcsh
*
$XDG_CONFIG_HOME/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.
...
...
...
...
This diff is collapsed.
Click to expand it.
doc/hooks
+
2
−
0
View file @
53ad5575
Available hooks are:
Available hooks are:
pre-command
post-command
pre-enter
pre-enter
post-enter
post-enter
pre-run
pre-run
...
...
...
...
This diff is collapsed.
Click to expand it.
doc/vcsh.1.ronn
+
6
−
1
View file @
53ad5575
...
@@ -25,6 +25,8 @@ vcsh(1) - manage config files in $HOME via fake bare git repositories
...
@@ -25,6 +25,8 @@ vcsh(1) - manage config files in $HOME via fake bare git repositories
`vcsh` setup <repo>
`vcsh` setup <repo>
`vcsh` which <substring>
`vcsh` write-gitignore <repo>
`vcsh` write-gitignore <repo>
`vcsh` <repo> <gitcommand>
`vcsh` <repo> <gitcommand>
...
@@ -98,11 +100,14 @@ an interactive user.
...
@@ -98,11 +100,14 @@ an interactive user.
* setup:
* setup:
Set up repository with recommended settings.
Set up repository with recommended settings.
* which <substring>:
Find <substring> in name of any tracked file.
* write-gitignore:
* write-gitignore:
Write .gitignore.d/<repo> via git ls-files.
Write .gitignore.d/<repo> via git ls-files.
* <repo> <gitcommand>:
* <repo> <gitcommand>:
Shortcut to run `vcsh` on a repo. Will prepend `git` to <command>
by itself
.
Shortcut to run `vcsh` on a repo. Will prepend `git` to <command>.
* <repo>:
* <repo>:
Shortcut to run `vcsh enter <repo>`.
Shortcut to run `vcsh enter <repo>`.
...
...
...
...
This diff is collapsed.
Click to expand it.
vcsh
+
25
−
9
View file @
53ad5575
...
@@ -35,6 +35,7 @@ help() {
...
@@ -35,6 +35,7 @@ help() {
run <repo>
\\
run <repo>
\\
<command> Use this repository
<command> Use this repository
setup Set up repository with recommended settings
setup Set up repository with recommended settings
which <substring> Find substring in name of any tracked file
write-gitignore
\\
write-gitignore
\\
<repo> Write .gitignore.d/<repo> via git ls-files
<repo> Write .gitignore.d/<repo> via git ls-files
...
@@ -100,7 +101,7 @@ To continue, type 'Yes, do as I say'"
...
@@ -100,7 +101,7 @@ To continue, type 'Yes, do as I say'"
for
file
in
$files
;
do
for
file
in
$files
;
do
rm
-f
$file
||
info
"could not delete '
$file
', continuing with deletion"
rm
-f
$file
||
info
"could not delete '
$file
', continuing with deletion"
done
done
rm
di
r
"
$GIT_DIR
"
||
error
"could not delete '
$GIT_DIR
'"
rm
-
r
"
$GIT_DIR
"
||
error
"could not delete '
$GIT_DIR
'"
}
}
enter
()
{
enter
()
{
...
@@ -183,6 +184,14 @@ use() {
...
@@ -183,6 +184,14 @@ use() {
export
VCSH_DIRECTORY
=
"
$VCSH_REPO_NAME
"
export
VCSH_DIRECTORY
=
"
$VCSH_REPO_NAME
"
}
}
which
()
{
for
VCSH_REPO_NAME
in
$(
list
)
;
do
for
VCSH_FILE
in
$(
get_files
)
;
do
echo
$VCSH_FILE
|
grep
-q
"
$VCSH_COMMAND_PARAMETER
"
&&
echo
"
$VCSH_REPO_NAME
:
$VCSH_FILE
"
done
done
|
sort
-u
}
write_gitignore
()
{
write_gitignore
()
{
use
use
cd
"
$VCSH_BASE
"
||
fatal
"could not enter '
$VCSH_BASE
'"
11
cd
"
$VCSH_BASE
"
||
fatal
"could not enter '
$VCSH_BASE
'"
11
...
@@ -219,12 +228,17 @@ if [ ! "x$VCSH_GITIGNORE" = 'xexact' ] && [ ! "x$VCSH_GITIGNORE" = 'xrecursive'
...
@@ -219,12 +228,17 @@ if [ ! "x$VCSH_GITIGNORE" = 'xexact' ] && [ ! "x$VCSH_GITIGNORE" = 'xrecursive'
fi
fi
if
[
"
$1
"
=
'clone'
]
;
then
if
[
"
$1
"
=
'clone'
]
;
then
[
-z
$2
]
&&
fatal
"
$1
: please specify a remote"
1
[
-z
"
$2
"
]
&&
fatal
"
$1
: please specify a remote"
1
export
VCSH_COMMAND
=
"
$1
"
export
VCSH_COMMAND
=
"
$1
"
GIT_REMOTE
=
"
$2
"
GIT_REMOTE
=
"
$2
"
[
-n
"
$3
"
]
&&
VCSH_REPO_NAME
=
"
$3
"
||
VCSH_REPO_NAME
=
$(
basename
"
$GIT_REMOTE
"
.git
)
[
-n
"
$3
"
]
&&
VCSH_REPO_NAME
=
"
$3
"
||
VCSH_REPO_NAME
=
$(
basename
"
$GIT_REMOTE
"
.git
)
export
VCSH_REPO_NAME
export
VCSH_REPO_NAME
export
GIT_DIR
=
"
$VCSH_REPO_D
/
$VCSH_REPO_NAME
.git"
export
GIT_DIR
=
"
$VCSH_REPO_D
/
$VCSH_REPO_NAME
.git"
elif
[
"
$1
"
=
'which'
]
;
then
[
-z
"
$2
"
]
&&
fatal
"
$1
: please specify a filename"
1
[
-n
"
$3
"
]
&&
fatal
"
$1
: too many parameters"
1
export
VCSH_COMMAND
=
"
$1
"
export
VCSH_COMMAND_PARAMETER
=
"
$2
"
elif
[
"
$1
"
=
'delete'
]
||
elif
[
"
$1
"
=
'delete'
]
||
[
"
$1
"
=
'enter'
]
||
[
"
$1
"
=
'enter'
]
||
[
"
$1
"
=
'init'
]
||
[
"
$1
"
=
'init'
]
||
...
@@ -284,5 +298,7 @@ done
...
@@ -284,5 +298,7 @@ done
verbose
"
$VCSH_COMMAND
begin"
verbose
"
$VCSH_COMMAND
begin"
export
VCSH_COMMAND
=
$(
echo
$VCSH_COMMAND
|
sed
's/-/_/g'
)
export
VCSH_COMMAND
=
$(
echo
$VCSH_COMMAND
|
sed
's/-/_/g'
)
hook pre-command
$VCSH_COMMAND
$VCSH_COMMAND
hook post-command
verbose
"
$VCSH_COMMAND
end, exiting"
verbose
"
$VCSH_COMMAND
end, exiting"
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
sign in
to comment