git init --bare blog.git
cat << EOF > blog.git/hooks/post-update
#!/bin/sh
- BLOGDIR=~/blog
- GIT_WORK_TREE=\$BLOGDIR git checkout -f
- cd \$BLOGDIR
+ blog_dir=~/blog
+ export GIT_DIR=\$(pwd)
+ export GIT_WORK_TREE="\$blog_dir"
+ git checkout -f
+ cd "\$GIT_WORK_TREE"
redo
+ git add metadata/author metadata/url metadata/title metadata/*.tmpl metadata/*.automatic_metadata metadata/automatic_metadata
+ status=\$(git status -s)
+ n_updates=\$(printf "$status" | grep -vE '^\?\?' | wc -l)
+ if [ "\$n_updates" -gt 0 ]; then
+ git commit -a -m 'Update metadata'
+ fi
EOF
chmod a+x blog.git/hooks/post-update
git commit -m 'set up blog metadata'
git push origin master
+If successful, the git hook will furthermore commit some ~/blog/metadata/ files
+generated by redo, that can be pulled into the client-side local repository:
+
+ git pull origin master
+
bugs and peculiarities
----------------------