+2014-03-13 Richard Hartmann <richih.mailinglist@gmail.com>
+
+ * Release 1.20140313 -- the "Git won a prize" edition
+ * Initialize repos with --shared=0600
+ * Fix cloning from some spefically-named remotes
+ * Support custom gitattribute files
+ * Support filenames with whitespace in gitignores
+ * Pass out git exit codes
+ * Switch to static, pre-built manpage
+ * Improve documentation
+ * Use more portable find(1) syntax
+ * Various minor improvements
+
2013-12-29 Richard Hartmann <richih.mailinglist@gmail.com>
* Release 1.20131229
--- /dev/null
+#!/bin/sh
+
+# This adds a remote origin at $GITURL/dotfiles/$VCSH_DIRECTORY which
+# is helpful for creating new dotfile repositories that you plan to
+# store on (e.g.) Github.
+#
+# You must set $GITURL in order to use this hook. For example, add the
+# following to your .bashrc (or equivalent for your shell), replacing
+# YOURUSERNAME with your github username:
+#
+# export GITURL="git@github.com:YOURUSERNAME"
+
+if [ -z $GITURL ]; then
+ echo "\$GITURL is not set; please see post-init-add-origin hook"
+ exit 1;
+fi
+
+vcsh $VCSH_DIRECTORY remote add origin $GITURL/dotfiles/$VCSH_DIRECTORY
--- /dev/null
+#!/bin/sh
+
+# This sets up your new repos with mr.
+
+cat > $HOME/.config/mr/available.d/$VCSH_DIRECTORY.vcsh << EOF
+[\$HOME/.config/vcsh/repo.d/$VCSH_DIRECTORY.git]
+checkout = vcsh clone $GITURL/dotfiles/$VCSH_DIRECTORY.git
+EOF
+
+ln -s $HOME/.config/mr/available.d/$VCSH_DIRECTORY.vcsh $HOME/.config/mr/config.d/
Interesting knobs you can turn:
+* <$VCSH_GITATTRIBUTES>:
+ Can be <none>, or any other value.
+
+ <none> will not maintain Git attributes in a special location.
+
+ If set to any other value, repo-specific gitattributes files will be maintained.
+
+ Defaults to <none>.
+
* <$VCSH_GITIGNORE>:
Can be <exact>, <none>, or <recursive>.
# If '.git-HEAD' is appended to the version, you are seeing an unreleased
# version of vcsh; the master branch is supposed to be clean at all times
# so you can most likely just use it nonetheless
-VERSION='1.20131229.git-HEAD'
+VERSION='1.20140313'
SELF=$(basename $0)
fatal() {
: ${VCSH_HOOK_D:=$XDG_CONFIG_HOME/vcsh/hooks-enabled}
: ${VCSH_BASE:=$HOME}
: ${VCSH_GITIGNORE:=exact}
+: ${VCSH_GITATTRIBUTES:=none}
: ${VCSH_WORKTREE:=absolute}
if [ ! "x$VCSH_GITIGNORE" = 'xexact' ] && [ ! "x$VCSH_GITIGNORE" = 'xnone' ] && [ ! "x$VCSH_GITIGNORE" = 'xrecursive' ]; then
git config core.worktree "$VCSH_BASE"
fi
[ ! "x$VCSH_GITIGNORE" = 'xnone' ] && git config core.excludesfile ".gitignore.d/$VCSH_REPO_NAME"
- git config core.attributesfile ".gitattributes.d/$VCSH_REPO_NAME"
+ [ ! "x$VCSH_GITATTRIBUTES" = 'xnone' ] && git config core.attributesfile ".gitattributes.d/$VCSH_REPO_NAME"
git config vcsh.vcsh 'true'
use
[ -e "$VCSH_BASE/.gitignore.d/$VCSH_REPO_NAME" ] && git add -f "$VCSH_BASE/.gitignore.d/$VCSH_REPO_NAME"
check_dir "$VCSH_REPO_D"
[ ! "x$VCSH_GITIGNORE" = 'xnone' ] && check_dir "$VCSH_BASE/.gitignore.d"
-check_dir "$VCSH_BASE/.gitattributes.d"
+[ ! "x$VCSH_GITATTRIBUTES" = 'xnone' ] && check_dir "$VCSH_BASE/.gitattributes.d"
verbose "$VCSH_COMMAND begin"
export VCSH_COMMAND=$(echo $VCSH_COMMAND | sed 's/-/_/g')
.\" generated with Ronn/v0.7.3
.\" http://github.com/rtomayko/ronn/tree/0.7.3
.
-.TH "VCSH" "1" "February 2014" "" ""
+.TH "VCSH" "1" "March 2014" "" ""
.
.SH "NAME"
\fBvcsh\fR \- Version Control System for $HOME \- multiple Git repositories in $HOME
Interesting knobs you can turn:
.
.TP
+\fI$VCSH_GITATTRIBUTES\fR
+Can be \fInone\fR, or any other value\.
+.
+.IP
+\fInone\fR will not maintain Git attributes in a special location\.
+.
+.IP
+If set to any other value, repo\-specific gitattributes files will be maintained\.
+.
+.IP
+Defaults to \fInone\fR\.
+.
+.TP
\fI$VCSH_GITIGNORE\fR
Can be \fIexact\fR, \fInone\fR, or \fIrecursive\fR\.
.