Skip to content
Snippets Groups Projects
Commit b85b4978 authored by Richard Hartmann's avatar Richard Hartmann
Browse files

Merge branch 'debian' into debian-squeeze

Conflicts:
	debian/changelog
	debian/control
parents cec5c3d5 f40284ae
Branches
Tags
No related merge requests found
PREFIX=/usr PREFIX=/usr
manpages=vcsh.1 self=vcsh
manpages=$(self).1
all=test manpages all=test manpages
all: $(all) all: $(all)
install: all install: all
install -d $(DESTDIR)$(PREFIX)/bin install -d $(DESTDIR)$(PREFIX)/bin
install -m 0755 vcsh $(DESTDIR)$(PREFIX)/bin install -m 0755 $(self) $(DESTDIR)$(PREFIX)/bin
install -d $(DESTDIR)$(PREFIX)/share/man/man1 install -d $(DESTDIR)$(PREFIX)/share/man/man1
install -m 0644 $(manpages) $(DESTDIR)$(PREFIX)/share/man/man1 install -m 0644 $(manpages) $(DESTDIR)$(PREFIX)/share/man/man1
install -d $(DESTDIR)$(PREFIX)/share/doc/vcsh install -d $(DESTDIR)$(PREFIX)/share/doc/$(self)
install -m 0644 README.md $(DESTDIR)$(PREFIX)/share/doc/vcsh install -m 0644 README.md $(DESTDIR)$(PREFIX)/share/doc/$(self)
install -m 0644 doc/hooks $(DESTDIR)$(PREFIX)/share/doc/vcsh install -m 0644 doc/hooks $(DESTDIR)$(PREFIX)/share/doc/$(self)
install -d $(DESTDIR)$(PREFIX)/share/zsh/vendor-completions install -d $(DESTDIR)$(PREFIX)/share/zsh/vendor-completions
install -m 0644 _vcsh $(DESTDIR)$(PREFIX)/share/zsh/vendor-completions install -m 0644 _$(self) $(DESTDIR)$(PREFIX)/share/zsh/vendor-completions
manpages: $(manpages) manpages: $(manpages)
vcsh.1: doc/vcsh.1.ronn $(self).1: doc/$(self).1.ronn
ronn < doc/vcsh.1.ronn > vcsh.1 ronn < doc/$(self).1.ronn > $(self).1
clean: clean:
rm -rf vcsh.1 rm -rf $(self).1
uninstall: uninstall:
rm -rf $(DESTDIR)$(PREFIX)/bin/vcsh rm -rf $(DESTDIR)$(PREFIX)/bin/$(self)
rm -rf $(DESTDIR)$(PREFIX)/share/man/man1/vcsh.1 rm -rf $(DESTDIR)$(PREFIX)/share/man/man1/$(self).1
rm -rf $(DESTDIR)$(PREFIX)/share/doc/vcsh rm -rf $(DESTDIR)$(PREFIX)/share/doc/$(self)
rm -rf $(DESTDIR)$(PREFIX)/share/zsh/vendor-completions/_vcsh rm -rf $(DESTDIR)$(PREFIX)/share/zsh/vendor-completions/_$(self)
# Potentially harmful, used a non-standard option on purpose. # Potentially harmful, used a non-standard option on purpose.
# If PREFIX=/usr/local and that's empty... # If PREFIX=/usr/local and that's empty...
......
...@@ -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.
......
2012-02-27 Richard Hartmann <richih.mailinglist@gmail.com>
* Refactor Makefile
* Fix license information in manpage
2012-02-15 Richard Hartmann <richih.mailinglist@gmail.com>
* Introduce `vcsh which`
* hooks will tell you when they are being executed
* Formatting & resilience improvements
* We have a changelog, now! (yay)
2012-02-03 Richard Hartmann <richih.mailinglist@gmail.com>
* Improve documentation
* More resilient error handling
* Add AUTHORS
2012-01-16 Richard Hartmann <richih.mailinglist@gmail.com>
* Introduce hook support
2011-12-27 Richard Hartmann <richih.mailinglist@gmail.com>
* Improve documentation
2011-12-26 Richard Hartmann <richih.mailinglist@gmail.com>
* Introduce and use .config/vcsh/config
* More verbose error handling
* Introduce `vcsh {list-tracked,list-tracked-by}`
* Introduce repo shortcuts (`vcsh zsh commit`)
* Rename `vcsh seed-gitignore` to `vcsh write-gitignore`
* Add license information
2011-11-29 Richard Hartmann <richih.mailinglist@gmail.com>
* Bugfixes
* Refactor error handling
* Make code more resilient
* Make vcsh play nice with mr
* Introduce vcsh mv and setup
2011-11-23 Richard Hartmann <richih.mailinglist@gmail.com>
* Bugfixes
* Minor refactoring of code
2011-11-22 Richard Hartmann <richih.mailinglist@gmail.com>
* Bugfixes
2011-11-20 Richard Hartmann <richih.mailinglist@gmail.com>
* Major refactoring of code
* Rewrite help files
* Bugfixes
2011-11-19 Richard Hartmann <richih.mailinglist@gmail.com>
* Bugfixes
* Improve XDG compability
2011-11-18 Richard Hartmann <richih.mailinglist@gmail.com>
* Yet more documentation improvements
* Makefile
* Heed already-defined ENV variables within vcsh
* Handle .gitignore.d/$repo automagically
2011-11-11 Richard Hartmann <richih.mailinglist@gmail.com>
* Major rewrite of all help files
* Addition of manpage
2011-10-27 Richard Hartmann <richih.mailinglist@gmail.com>
* Bugfixes
* Make help more verbose
* Improve INSTALL
2011-10-18 Richard Hartmann <richih.mailinglist@gmail.com>
* Fixed bug in vcsh clone & init
2011-10-17 Richard Hartmann <richih.mailinglist@gmail.com>
* Initial release
vcsh (0.20120227-1) unstable; urgency=low
* New upstream release
+ Refactor Makefile
+ Fix license information in manpage
* Packaging changes
+ Bump Standards-Version to 3.9.3 (no changes)
-- Richard Hartmann <richih.mailinglist@gmail.com> Mon, 27 Feb 2012 22:38:24 +0100
vcsh (0.20120215-1) unstable; urgency=low
* New upstream release
* Introduce `vcsh which`
* hooks will tell you when they are being executed
* Formatting & resilience improvements
-- Richard Hartmann <richih.mailinglist@gmail.com> Wed, 15 Feb 2012 21:16:45 +0100
vcsh (0.20120203-1~bpo60+1) squeeze-backports; urgency=low vcsh (0.20120203-1~bpo60+1) squeeze-backports; urgency=low
* Rebuild for squeeze-backports. * Rebuild for squeeze-backports.
......
...@@ -2,7 +2,7 @@ Source: vcsh ...@@ -2,7 +2,7 @@ Source: vcsh
Maintainer: Richard Hartmann <richih.mailinglist@gmail.com> Maintainer: Richard Hartmann <richih.mailinglist@gmail.com>
Section: misc Section: misc
Priority: optional Priority: optional
Standards-Version: 3.9.2 Standards-Version: 3.9.3
Build-Depends: debhelper (>= 7), git Build-Depends: debhelper (>= 7), git
Vcs-Git: git://github.com/RichiH/vcsh.git Vcs-Git: git://github.com/RichiH/vcsh.git
Vcs-Browser: https://github.com/RichiH/vcsh Vcs-Browser: https://github.com/RichiH/vcsh
......
Available hooks are: Available hooks are:
pre-command
post-command
pre-enter pre-enter
post-enter post-enter
pre-run pre-run
......
...@@ -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>`.
...@@ -175,7 +180,7 @@ This manpage and `vcsh` itself were written by Richard "RichiH" Hartmann. ...@@ -175,7 +180,7 @@ This manpage and `vcsh` itself were written by Richard "RichiH" Hartmann.
Copyright 2011-2012 Richard Hartmann <richih.mailinglist@gmail.com> Copyright 2011-2012 Richard Hartmann <richih.mailinglist@gmail.com>
Licensed under the GNU GPL version 3 or higher. Licensed under the GNU GPL version 2 or higher.
https://github.com/RichiH/vcsh https://github.com/RichiH/vcsh
......
...@@ -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
rmdir "$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"
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment