Recent changes to this wiki:

diff --git a/doc/todo/unit_tests_with_bats.mdwn b/doc/todo/unit_tests_with_bats.mdwn
new file mode 100644
index 0000000..1a5a6d5
--- /dev/null
+++ b/doc/todo/unit_tests_with_bats.mdwn
@@ -0,0 +1,10 @@
+Hi,
+
+I have started to implement some basic unit test cases using bats for etckeeper.
+
+During that work I found one small issue also fixed in the branch.
+
+Could you please review: https://gitlab.com/HRio/etckeeper/commits/unit-test ?
+
+Thanks,
+ Henrik

clarify sudo etckeeper commit
diff --git a/doc/README.mdwn b/doc/README.mdwn
index 8d28461..2607ef8 100644
--- a/doc/README.mdwn
+++ b/doc/README.mdwn
@@ -222,7 +222,7 @@ letting it git add new files:
 etckeeper will notice if it's being run by way of sudo, and makes a commit
 with the author set to the user who sudoed to root. This is useful when
 a system has multiple admins; as long as they use sudo while doing their
-administration, and run `etckeeper commit` to commit their changes,
+administration, and run `sudo etckeeper commit` to commit their changes,
 `git blame` can show who was responsible for each change.
 
 ## changing VCS

remove flattr button
diff --git a/doc/index.mdwn b/doc/index.mdwn
index da80eb6..666983e 100644
--- a/doc/index.mdwn
+++ b/doc/index.mdwn
@@ -20,5 +20,4 @@ understand the basics of working with version control.
 [[install]]  
 [[news]]  
 [[todo]]  
-[Flattr this](http://flattr.com/thing/39940/etckeeper)  
 """]]

Added a comment: Agreed! Please implement pushing to branches!
diff --git a/doc/todo/push_remote_branch/comment_1_f56144bea11901b8b1df4bcf552df801._comment b/doc/todo/push_remote_branch/comment_1_f56144bea11901b8b1df4bcf552df801._comment
new file mode 100644
index 0000000..5855b86
--- /dev/null
+++ b/doc/todo/push_remote_branch/comment_1_f56144bea11901b8b1df4bcf552df801._comment
@@ -0,0 +1,10 @@
+[[!comment format=mdwn
+ username="jim"
+ avatar="http://cdn.libravatar.org/avatar/b538cf412c3060bed47b86676cd7cba1"
+ subject="Agreed! Please implement pushing to branches!"
+ date="2017-01-31T23:56:51Z"
+ content="""
+Kind of a pain to constantly edit commit.d/99push to change the branch.
+An easy fix for a much needed feature.
+Please implement!
+"""]]

add news item for etckeeper 1.18.6
diff --git a/doc/news/version_1.18.6.mdwn b/doc/news/version_1.18.6.mdwn
new file mode 100644
index 0000000..c83b9da
--- /dev/null
+++ b/doc/news/version_1.18.6.mdwn
@@ -0,0 +1,8 @@
+etckeeper 1.18.6 released with [[!toggle text="these changes"]]
+[[!toggleable text="""
+   * Only show errors (no progress indicators) when pushing Git/Mercurial repos
+     to avoid unncessary cron mails.
+     Thanks, Nils Steinger.
+   * Fix regex in 20-warn-problem-files.
+   * Added support for apk (alpine linux)
+     Thanks, Henrik Riomar."""]]
\ No newline at end of file
diff --git a/doc/news/version_1.18.mdwn b/doc/news/version_1.18.mdwn
deleted file mode 100644
index b2a9088..0000000
--- a/doc/news/version_1.18.mdwn
+++ /dev/null
@@ -1,6 +0,0 @@
-etckeeper 1.18 released with [[!toggle text="these changes"]]
-[[!toggleable text="""
-   * Send yum pre-commit output to /dev/null
-     Thanks, Andrew Colin Kissa
-   * Set LANG=C internally when doing some operations that have
-     been reported to fail in other locales."""]]
\ No newline at end of file

Added support for apk (alpine linux) Thanks, Henrik Riomar.
diff --git a/debian/changelog b/debian/changelog
index 9d93e6b..a5f087b 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -4,6 +4,8 @@ etckeeper (1.18.6) UNRELEASED; urgency=medium
     to avoid unncessary cron mails.
     Thanks, Nils Steinger.
   * Fix regex in 20-warn-problem-files.
+  * Added support for apk (alpine linux)
+    Thanks, Henrik Riomar.
 
  -- Joey Hess <id@joeyh.name>  Mon, 01 Aug 2016 13:29:54 -0400
 
diff --git a/doc/todo/basic_alpine_linux_support.mdwn b/doc/todo/basic_alpine_linux_support.mdwn
index a454ee4..5719ea7 100644
--- a/doc/todo/basic_alpine_linux_support.mdwn
+++ b/doc/todo/basic_alpine_linux_support.mdwn
@@ -7,3 +7,5 @@ The change can be found here: https://github.com/HRio/etckeeper/commit/0afeb5b45
 Thanks,
 
 / Henrik
+
+> applied, thanks [[done]] --[[Joey]]

diff --git a/doc/todo/basic_alpine_linux_support.mdwn b/doc/todo/basic_alpine_linux_support.mdwn
new file mode 100644
index 0000000..a454ee4
--- /dev/null
+++ b/doc/todo/basic_alpine_linux_support.mdwn
@@ -0,0 +1,9 @@
+Hi,
+
+I have prepared a small change with very basic support for Alpine Linux.
+
+The change can be found here: https://github.com/HRio/etckeeper/commit/0afeb5b4585b2251e83cec32687ed6c99a39fb9a
+
+Thanks,
+
+/ Henrik

Added a comment
diff --git a/doc/todo/Doesn__39__t_work_for_symlinks_to_dev-null__44___used_by_systemd/comment_2_ec7b55ad5d6b13e843e8179266a2f911._comment b/doc/todo/Doesn__39__t_work_for_symlinks_to_dev-null__44___used_by_systemd/comment_2_ec7b55ad5d6b13e843e8179266a2f911._comment
new file mode 100644
index 0000000..8c7654b
--- /dev/null
+++ b/doc/todo/Doesn__39__t_work_for_symlinks_to_dev-null__44___used_by_systemd/comment_2_ec7b55ad5d6b13e843e8179266a2f911._comment
@@ -0,0 +1,13 @@
+[[!comment format=mdwn
+ username="https://openid.stackexchange.com/user/9df74bc5-3799-4cb1-8f54-971c8423ddaa"
+ nickname="alan.christopher.jenkins"
+ avatar="http://cdn.libravatar.org/avatar/8e723c6cf403714781c6f1ca93551ac5f15f1c982669ab553fb2b73bb896a69a"
+ subject="comment 2"
+ date="2017-01-21T11:50:59Z"
+ content="""
+Huh, I was 100% wrong.  [[done]].  Some user error, I can't work out what though.
+
+I'm fairly sure this was when I masked fwupd.service.  That was on Fedora 25 Workstation, my current laptop.
+
+I can successfully use `git log` on either /etc/systemd/system or `-- /etc/systemd/system/fwupd.service`, and I see the service being masked and later unmasked.
+"""]]

hm
diff --git a/doc/todo/Doesn__39__t_work_for_symlinks_to_dev-null__44___used_by_systemd/comment_1_f17abb85a67bae90ee485d2eb5be183b._comment b/doc/todo/Doesn__39__t_work_for_symlinks_to_dev-null__44___used_by_systemd/comment_1_f17abb85a67bae90ee485d2eb5be183b._comment
new file mode 100644
index 0000000..1ed93b0
--- /dev/null
+++ b/doc/todo/Doesn__39__t_work_for_symlinks_to_dev-null__44___used_by_systemd/comment_1_f17abb85a67bae90ee485d2eb5be183b._comment
@@ -0,0 +1,11 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 1"""
+ date="2017-01-06T00:11:26Z"
+ content="""
+git has no trouble storing a symlink to /dev/null here. AFAIK, git doesn't
+care in the slightest where a symlink points and never has.
+
+And, I have a /etc/systemd/system/minetest-server.service link to /dev/null
+here which etckeeper committed in 2015.
+"""]]

diff --git a/doc/todo/Doesn__39__t_work_for_symlinks_to_dev-null__44___used_by_systemd.mdwn b/doc/todo/Doesn__39__t_work_for_symlinks_to_dev-null__44___used_by_systemd.mdwn
new file mode 100644
index 0000000..db4cb40
--- /dev/null
+++ b/doc/todo/Doesn__39__t_work_for_symlinks_to_dev-null__44___used_by_systemd.mdwn
@@ -0,0 +1,5 @@
+etckeeper fails to track symlinks to /dev/null, as created by `systemctl mask X`.
+
+This is because git refuses to track symlinks to files which lie outside the git repository.
+
+Supporting symlinks outside the repository is also required for /etc/alternatives.

Added a comment
diff --git a/doc/todo/what_if_there_is_a_Git_repo_somewhere_underneath___47__etc__63__/comment_1_3d18e005c10b5f3e671fe6c12e5aa03d._comment b/doc/todo/what_if_there_is_a_Git_repo_somewhere_underneath___47__etc__63__/comment_1_3d18e005c10b5f3e671fe6c12e5aa03d._comment
new file mode 100644
index 0000000..ba15913
--- /dev/null
+++ b/doc/todo/what_if_there_is_a_Git_repo_somewhere_underneath___47__etc__63__/comment_1_3d18e005c10b5f3e671fe6c12e5aa03d._comment
@@ -0,0 +1,9 @@
+[[!comment format=mdwn
+ username="https://openid.stackexchange.com/user/9df74bc5-3799-4cb1-8f54-971c8423ddaa"
+ nickname="alan.christopher.jenkins"
+ avatar="http://cdn.libravatar.org/avatar/8e723c6cf403714781c6f1ca93551ac5f15f1c982669ab553fb2b73bb896a69a"
+ subject="comment 1"
+ date="2017-01-05T12:41:13Z"
+ content="""
+What happened to me was that .etckeeper bloats up with files from the .git directories. Also it behaved confusingly different depending on the exact sequence of events. My notes on this are [here](https://unix.stackexchange.com/questions/323489/i-have-nested-git-repos-will-it-cause-a-problem)
+"""]]

removed
diff --git a/doc/todo/what_if_there_is_a_Git_repo_somewhere_underneath___47__etc__63__/comment_1_9dd9c6fd8f808d7476c75c70e73ee50c._comment b/doc/todo/what_if_there_is_a_Git_repo_somewhere_underneath___47__etc__63__/comment_1_9dd9c6fd8f808d7476c75c70e73ee50c._comment
deleted file mode 100644
index 5bb6f10..0000000
--- a/doc/todo/what_if_there_is_a_Git_repo_somewhere_underneath___47__etc__63__/comment_1_9dd9c6fd8f808d7476c75c70e73ee50c._comment
+++ /dev/null
@@ -1,9 +0,0 @@
-[[!comment format=mdwn
- username="https://openid.stackexchange.com/user/9df74bc5-3799-4cb1-8f54-971c8423ddaa"
- nickname="alan.christopher.jenkins"
- avatar="http://cdn.libravatar.org/avatar/8e723c6cf403714781c6f1ca93551ac5f15f1c982669ab553fb2b73bb896a69a"
- subject="comment 1"
- date="2017-01-05T12:39:02Z"
- content="""
-What happened to me was that .etckeeper bloats up with files from the .git directories.  Also it behaved confusingly different depending on the exact sequence of events.  https://unix.stackexchange.com/questions/323489/i-have-nested-git-repos-will-it-cause-a-problem
-"""]]

Added a comment
diff --git a/doc/todo/what_if_there_is_a_Git_repo_somewhere_underneath___47__etc__63__/comment_1_9dd9c6fd8f808d7476c75c70e73ee50c._comment b/doc/todo/what_if_there_is_a_Git_repo_somewhere_underneath___47__etc__63__/comment_1_9dd9c6fd8f808d7476c75c70e73ee50c._comment
new file mode 100644
index 0000000..5bb6f10
--- /dev/null
+++ b/doc/todo/what_if_there_is_a_Git_repo_somewhere_underneath___47__etc__63__/comment_1_9dd9c6fd8f808d7476c75c70e73ee50c._comment
@@ -0,0 +1,9 @@
+[[!comment format=mdwn
+ username="https://openid.stackexchange.com/user/9df74bc5-3799-4cb1-8f54-971c8423ddaa"
+ nickname="alan.christopher.jenkins"
+ avatar="http://cdn.libravatar.org/avatar/8e723c6cf403714781c6f1ca93551ac5f15f1c982669ab553fb2b73bb896a69a"
+ subject="comment 1"
+ date="2017-01-05T12:39:02Z"
+ content="""
+What happened to me was that .etckeeper bloats up with files from the .git directories.  Also it behaved confusingly different depending on the exact sequence of events.  https://unix.stackexchange.com/questions/323489/i-have-nested-git-repos-will-it-cause-a-problem
+"""]]

diff --git a/doc/todo/30store-metadata_stores_metadata_for_untracked_files.mdwn b/doc/todo/30store-metadata_stores_metadata_for_untracked_files.mdwn
new file mode 100644
index 0000000..f093b08
--- /dev/null
+++ b/doc/todo/30store-metadata_stores_metadata_for_untracked_files.mdwn
@@ -0,0 +1,3 @@
+I am trying to use etckeeper to track `/`  (We need to track /etc and also /unionfs/overlay/etc, which is an etc that gets loaded onto a second computer).
+
+`git ls-files` lists only the files we want to track, and `.gitignore` correctly excludes all the files we don't want to match (such as `./home`, `./proc`, ), yet somehow `.etckeeper` contains metadata for a bunch of files that I don't want etckeeper to touch.

Fix regex in 20-warn-problem-files.
diff --git a/debian/changelog b/debian/changelog
index c212b34..9d93e6b 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -3,6 +3,7 @@ etckeeper (1.18.6) UNRELEASED; urgency=medium
   * Only show errors (no progress indicators) when pushing Git/Mercurial repos
     to avoid unncessary cron mails.
     Thanks, Nils Steinger.
+  * Fix regex in 20-warn-problem-files.
 
  -- Joey Hess <id@joeyh.name>  Mon, 01 Aug 2016 13:29:54 -0400
 
diff --git a/doc/todo/regex_in_20-warn-problem-files.mdwn b/doc/todo/regex_in_20-warn-problem-files.mdwn
index 73c076e..b3f5e79 100644
--- a/doc/todo/regex_in_20-warn-problem-files.mdwn
+++ b/doc/todo/regex_in_20-warn-problem-files.mdwn
@@ -8,3 +8,4 @@ should probably escape the `.`s.
             egrep -v '(^|/)(\.git|\.hg|\.bzr|_darcs)/'
     }
 
+> [[fixed|done]] --[[Joey]]
diff --git a/pre-commit.d/20warn-problem-files b/pre-commit.d/20warn-problem-files
index 4ffbfd1..6bd5c2b 100755
--- a/pre-commit.d/20warn-problem-files
+++ b/pre-commit.d/20warn-problem-files
@@ -2,7 +2,7 @@
 set -e
 
 exclude_internal () {
-	egrep -v '(^|/)(.git|.hg|.bzr|_darcs)/'
+	egrep -v '(^|/)(\.git|\.hg|\.bzr|_darcs)/'
 }
 
 if [ "$VCS" = bzr ] || [ "$VCS" = darcs ]; then
diff --git a/pre-commit.d/30store-metadata b/pre-commit.d/30store-metadata
index 2b77c8e..6d7d4b1 100755
--- a/pre-commit.d/30store-metadata
+++ b/pre-commit.d/30store-metadata
@@ -1,6 +1,10 @@
 #!/bin/sh
 set -e
 
+# Make sure sort always sorts in same order.
+LANG=C
+export LANG
+
 filter_ignore() {
 	case "$VCS" in
 		darcs) ignorefile=.darcsignore ;;

diff --git a/doc/todo/running___96__find_.__96___in___47___prints_warnings.mdwn b/doc/todo/running___96__find_.__96___in___47___prints_warnings.mdwn
index 2d1a510..94a6733 100644
--- a/doc/todo/running___96__find_.__96___in___47___prints_warnings.mdwn
+++ b/doc/todo/running___96__find_.__96___in___47___prints_warnings.mdwn
@@ -10,3 +10,6 @@ However the script `20-warn-problem-files` reports many errors like
     find: `./proc/7010/task/7010/fdinfo/5': No such file or directory
 
 Due to files in `/proc` being created and deleted while `find` is running.
+
+
+I am not sure why `find` needs to run at all, when instead one could analyze the output of git ls-files and see if any of those files are problematic.

diff --git a/doc/todo/running___96__find_.__96___in___47___prints_warnings.mdwn b/doc/todo/running___96__find_.__96___in___47___prints_warnings.mdwn
index 14820fd..2d1a510 100644
--- a/doc/todo/running___96__find_.__96___in___47___prints_warnings.mdwn
+++ b/doc/todo/running___96__find_.__96___in___47___prints_warnings.mdwn
@@ -1,6 +1,6 @@
 I am trying to make etckeeper track `/etc` and another folder in `/`.
 
-However the script 20-warn-problem-files reports many errors like
+However the script `20-warn-problem-files` reports many errors like
 
     find: `./proc/7010/task/7010/fd/5': No such file or directory
     find: `./proc/7010/task/7010/fd/5': No such file or directory

diff --git a/doc/todo/running___96__find_.__96___in___47___prints_warnings.mdwn b/doc/todo/running___96__find_.__96___in___47___prints_warnings.mdwn
index 6b5f059..14820fd 100644
--- a/doc/todo/running___96__find_.__96___in___47___prints_warnings.mdwn
+++ b/doc/todo/running___96__find_.__96___in___47___prints_warnings.mdwn
@@ -2,11 +2,11 @@ I am trying to make etckeeper track `/etc` and another folder in `/`.
 
 However the script 20-warn-problem-files reports many errors like
 
-  find: `./proc/7010/task/7010/fd/5': No such file or directory
-  find: `./proc/7010/task/7010/fd/5': No such file or directory
-  find: `./proc/7010/task/7010/fd/5': No such file or directory
-  find: `./proc/7010/task/7010/fdinfo/5': No such file or directory
-  find: `./proc/7010/task/7010/fdinfo/5': No such file or directory
-  find: `./proc/7010/task/7010/fdinfo/5': No such file or directory
+    find: `./proc/7010/task/7010/fd/5': No such file or directory
+    find: `./proc/7010/task/7010/fd/5': No such file or directory
+    find: `./proc/7010/task/7010/fd/5': No such file or directory
+    find: `./proc/7010/task/7010/fdinfo/5': No such file or directory
+    find: `./proc/7010/task/7010/fdinfo/5': No such file or directory
+    find: `./proc/7010/task/7010/fdinfo/5': No such file or directory
 
 Due to files in `/proc` being created and deleted while `find` is running.

diff --git a/doc/todo/running___96__find_.__96___in___47___prints_warnings.mdwn b/doc/todo/running___96__find_.__96___in___47___prints_warnings.mdwn
index a52b9bc..6b5f059 100644
--- a/doc/todo/running___96__find_.__96___in___47___prints_warnings.mdwn
+++ b/doc/todo/running___96__find_.__96___in___47___prints_warnings.mdwn
@@ -1,4 +1,4 @@
-I am trying to make etckeeper track /etc and another folder in `/`.
+I am trying to make etckeeper track `/etc` and another folder in `/`.
 
 However the script 20-warn-problem-files reports many errors like
 
@@ -9,4 +9,4 @@ However the script 20-warn-problem-files reports many errors like
   find: `./proc/7010/task/7010/fdinfo/5': No such file or directory
   find: `./proc/7010/task/7010/fdinfo/5': No such file or directory
 
-Due to files in /proc being created and deleted file find is running.
+Due to files in `/proc` being created and deleted while `find` is running.

diff --git a/doc/todo/running___96__find_.__96___in___47___prints_warnings.mdwn b/doc/todo/running___96__find_.__96___in___47___prints_warnings.mdwn
new file mode 100644
index 0000000..a52b9bc
--- /dev/null
+++ b/doc/todo/running___96__find_.__96___in___47___prints_warnings.mdwn
@@ -0,0 +1,12 @@
+I am trying to make etckeeper track /etc and another folder in `/`.
+
+However the script 20-warn-problem-files reports many errors like
+
+  find: `./proc/7010/task/7010/fd/5': No such file or directory
+  find: `./proc/7010/task/7010/fd/5': No such file or directory
+  find: `./proc/7010/task/7010/fd/5': No such file or directory
+  find: `./proc/7010/task/7010/fdinfo/5': No such file or directory
+  find: `./proc/7010/task/7010/fdinfo/5': No such file or directory
+  find: `./proc/7010/task/7010/fdinfo/5': No such file or directory
+
+Due to files in /proc being created and deleted file find is running.

diff --git a/doc/todo/regex_in_20-warn-problem-files.mdwn b/doc/todo/regex_in_20-warn-problem-files.mdwn
index 15a12de..73c076e 100644
--- a/doc/todo/regex_in_20-warn-problem-files.mdwn
+++ b/doc/todo/regex_in_20-warn-problem-files.mdwn
@@ -4,7 +4,7 @@
 
 should probably escape the `.`s. 
 
-exclude_internal () {
-        egrep -v '(^|/)(\.git|\.hg|\.bzr|_darcs)/'
-}
+    exclude_internal () {
+            egrep -v '(^|/)(\.git|\.hg|\.bzr|_darcs)/'
+    }
 

diff --git a/doc/todo/regex_in_20-warn-problem-files.mdwn b/doc/todo/regex_in_20-warn-problem-files.mdwn
new file mode 100644
index 0000000..15a12de
--- /dev/null
+++ b/doc/todo/regex_in_20-warn-problem-files.mdwn
@@ -0,0 +1,10 @@
+    exclude_internal () {
+            egrep -v '(^|/)(.git|.hg|.bzr|_darcs)/'
+    }
+
+should probably escape the `.`s. 
+
+exclude_internal () {
+        egrep -v '(^|/)(\.git|\.hg|\.bzr|_darcs)/'
+}
+

Added a comment: In that case git has a crazy notion about "needed"...
diff --git a/doc/todo/automatic_git_gc/comment_2_1af062eb15d4b90644a5a67e31916657._comment b/doc/todo/automatic_git_gc/comment_2_1af062eb15d4b90644a5a67e31916657._comment
new file mode 100644
index 0000000..a322f9b
--- /dev/null
+++ b/doc/todo/automatic_git_gc/comment_2_1af062eb15d4b90644a5a67e31916657._comment
@@ -0,0 +1,8 @@
+[[!comment format=mdwn
+ username="https://marcussundberg.com/openid/"
+ avatar="http://cdn.libravatar.org/avatar/12ed25dc622fa3b47194a892662e9131c7e70a4d65d9453cba062f2c6487c9d5"
+ subject="In that case git has a crazy notion about &quot;needed&quot;..."
+ date="2016-11-19T13:55:35Z"
+ content="""
+Running gc in one of my etckeeper repos shrunk the .git directory from 500+ MiB to ~45 MiB.
+"""]]

close
diff --git a/doc/todo/fixed_typo_in_README.mdwn b/doc/todo/fixed_typo_in_README.mdwn
index c7af702..bd5f5aa 100644
--- a/doc/todo/fixed_typo_in_README.mdwn
+++ b/doc/todo/fixed_typo_in_README.mdwn
@@ -1,3 +1,5 @@
 fixed typo in README
 
 https://github.com/Yky/etckeeper/commit/5f2556abbc404eb0d06b31f620fe655c8802d8e7
+
+> applied [[done]] --[[Joey]]

diff --git a/doc/todo/fixed_typo_in_README.mdwn b/doc/todo/fixed_typo_in_README.mdwn
new file mode 100644
index 0000000..c7af702
--- /dev/null
+++ b/doc/todo/fixed_typo_in_README.mdwn
@@ -0,0 +1,3 @@
+fixed typo in README
+
+https://github.com/Yky/etckeeper/commit/5f2556abbc404eb0d06b31f620fe655c8802d8e7

diff --git a/doc/todo/.mdwn b/doc/todo/.mdwn
new file mode 100644
index 0000000..c7af702
--- /dev/null
+++ b/doc/todo/.mdwn
@@ -0,0 +1,3 @@
+fixed typo in README
+
+https://github.com/Yky/etckeeper/commit/5f2556abbc404eb0d06b31f620fe655c8802d8e7

fixed typo
diff --git a/doc/README.mdwn b/doc/README.mdwn
index 97bc3fc..8d28461 100644
--- a/doc/README.mdwn
+++ b/doc/README.mdwn
@@ -163,7 +163,7 @@ transport like ssh, and only to a server you trust.)
 	git remote add backup ssh://server/etc-clone
 	git push backup --all
 
-If you have several machine's using etckeeper, you can start with a
+If you have several machines using etckeeper, you can start with a
 etckeeper repository on one machine, then add another machine's etckeeper
 repository as a git remote. Then you can diff against it, examine its
 history, merge with it, and so on. It would probably not, however, be wise

Added a comment
diff --git a/doc/todo/metadata_changes_don__39__t_cause_a_new_commit/comment_1_760124afc8a858dc1e407c9126d606b8._comment b/doc/todo/metadata_changes_don__39__t_cause_a_new_commit/comment_1_760124afc8a858dc1e407c9126d606b8._comment
new file mode 100644
index 0000000..42c2798
--- /dev/null
+++ b/doc/todo/metadata_changes_don__39__t_cause_a_new_commit/comment_1_760124afc8a858dc1e407c9126d606b8._comment
@@ -0,0 +1,8 @@
+[[!comment format=mdwn
+ username="lukeshu"
+ avatar="http://cdn.libravatar.org/avatar/002a91d6bdfd6cfecde043c0a7f39123"
+ subject="comment 1"
+ date="2016-11-08T14:40:31Z"
+ content="""
+Relatedly, `etckeeper unclean` won't show metadata changes, which means that things like `/etc/etckeeper/daily` won't end up making a commit.
+"""]]

Added a comment
diff --git a/doc/todo/Detailed_post-install_commit_messages/comment_5_2264f62f2b9c86e019fa8bacac699e81._comment b/doc/todo/Detailed_post-install_commit_messages/comment_5_2264f62f2b9c86e019fa8bacac699e81._comment
new file mode 100644
index 0000000..c54018d
--- /dev/null
+++ b/doc/todo/Detailed_post-install_commit_messages/comment_5_2264f62f2b9c86e019fa8bacac699e81._comment
@@ -0,0 +1,8 @@
+[[!comment format=mdwn
+ username="emkael"
+ avatar="http://cdn.libravatar.org/avatar/c2b5d5c4ae4866f14e2f42274f3ebc2d"
+ subject="comment 5"
+ date="2016-10-23T12:49:46Z"
+ content="""
+Yeah, `xargs` should do the trick. I've updated the patch or, if you prefer, pushed it to my local fork at: `http://emkael.info/cgit/etckeeper/`
+"""]]

followup
diff --git a/doc/todo/Detailed_post-install_commit_messages/comment_3_f6b7ece8bb96a69d1fbc4e3abf12929f._comment b/doc/todo/Detailed_post-install_commit_messages/comment_3_f6b7ece8bb96a69d1fbc4e3abf12929f._comment
new file mode 100644
index 0000000..6b9cd75
--- /dev/null
+++ b/doc/todo/Detailed_post-install_commit_messages/comment_3_f6b7ece8bb96a69d1fbc4e3abf12929f._comment
@@ -0,0 +1,7 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 3"""
+ date="2016-10-21T19:13:48Z"
+ content="""
+
+"""]]
diff --git a/doc/todo/Detailed_post-install_commit_messages/comment_4_bf387e2effc4e14e331610e7e588693a._comment b/doc/todo/Detailed_post-install_commit_messages/comment_4_bf387e2effc4e14e331610e7e588693a._comment
new file mode 100644
index 0000000..be18e05
--- /dev/null
+++ b/doc/todo/Detailed_post-install_commit_messages/comment_4_bf387e2effc4e14e331610e7e588693a._comment
@@ -0,0 +1,11 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 4"""
+ date="2016-10-21T19:14:23Z"
+ content="""
+Good thought about argument length limit. Use xargs?
+
+There is a disturbing lack of quoting on `$FILELIST` which I think could be
+a problem with filenames containing spaces etc. Using xargs with `-d \n`
+should also avoid that problem.
+"""]]

Added a comment
diff --git a/doc/todo/Detailed_post-install_commit_messages/comment_2_e7bb6d14f2362997f1e15ea3bc448788._comment b/doc/todo/Detailed_post-install_commit_messages/comment_2_e7bb6d14f2362997f1e15ea3bc448788._comment
new file mode 100644
index 0000000..faeb289
--- /dev/null
+++ b/doc/todo/Detailed_post-install_commit_messages/comment_2_e7bb6d14f2362997f1e15ea3bc448788._comment
@@ -0,0 +1,12 @@
+[[!comment format=mdwn
+ username="emkael"
+ avatar="http://cdn.libravatar.org/avatar/c2b5d5c4ae4866f14e2f42274f3ebc2d"
+ subject="comment 2"
+ date="2016-10-18T17:28:56Z"
+ content="""
+The per-file lookup was just a way to catch non-package files without too much hassle with splitting piped output.  
+Since that section is dropped, the updated patch provides lookup on one run of dpkg -S (and similar, for all package managers), plus some cleanup of the sort/uniq \"post-processing\".  
+The only thing I'm worried about is argument length limit - from what I was able to see, dpkg -S does not read arguments from stdin, so I'm just storing the file list in a variable. Is that much of a risk?
+
+Just updated the previous gist: <https://gist.github.com/emkael/364f701a5342978e6e79c2368b905565>
+"""]]

review
diff --git a/doc/todo/Detailed_post-install_commit_messages/comment_1_817aca821300362a4c4582bb8fb1dc8c._comment b/doc/todo/Detailed_post-install_commit_messages/comment_1_817aca821300362a4c4582bb8fb1dc8c._comment
new file mode 100644
index 0000000..f37b89e
--- /dev/null
+++ b/doc/todo/Detailed_post-install_commit_messages/comment_1_817aca821300362a4c4582bb8fb1dc8c._comment
@@ -0,0 +1,24 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 1"""
+ date="2016-10-18T14:57:14Z"
+ content="""
+Good idea!
+
+Reviewing the patch, I noticed that dpkg -S is run once per changed file.
+It should be faster to pass all the changed files to it, and parse the
+output.
+
+(Other package managers may also be able to be optimised this way,
+but I only care about dpkg, and happen to know dpkg -S can be pretty
+slow.. rpm -qf may be fast enough that running repeatedly is not a
+problem.)
+
+I think that the "Non-package (maintainer script/removed package)
+configuration files changed" list can be omitted. At least on debian there
+are unfortunately going to be a lot of such files, and it seems just added
+noise in the commit log, and added complication to build the list.
+
+Please use tabs and not spaces for indentation, in keeping with the rest of
+etckeeper's code.
+"""]]

diff --git a/doc/todo/Detailed_post-install_commit_messages.mdwn b/doc/todo/Detailed_post-install_commit_messages.mdwn
new file mode 100644
index 0000000..517506f
--- /dev/null
+++ b/doc/todo/Detailed_post-install_commit_messages.mdwn
@@ -0,0 +1,9 @@
+I've written some code to extend the VCS hook to provide more detailed log messages for post-install commits.
+
+Basically, it matches the list of altered files against package manager file list and lists packages with actual configuration changes (plus non-package files) in addition to the list of all changed packages that's listed now.
+
+I find it useful on large system updates, when the package list gets long and commit message consists mostly of irrelevant package names.
+
+I have to note that I don't use package managers other than apt/rpm or vcs other than git on regular basis, so it would be useful if someone with more experience on those takes a look at mercurial/bazaar/darcs and pacman/pkgng implementations of the functions.
+
+Patch for the post-install.d/50vcs-commit file is available at: <https://gist.github.com/emkael/364f701a5342978e6e79c2368b905565>

comment
diff --git a/doc/todo/include_mtime_into_metadata/comment_1_9e75c36722c194fecef316ae99d1d75e._comment b/doc/todo/include_mtime_into_metadata/comment_1_9e75c36722c194fecef316ae99d1d75e._comment
new file mode 100644
index 0000000..ebe5e94
--- /dev/null
+++ b/doc/todo/include_mtime_into_metadata/comment_1_9e75c36722c194fecef316ae99d1d75e._comment
@@ -0,0 +1,25 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 1"""
+ date="2016-09-27T13:31:57Z"
+ content="""
+Are there any config files in /etc whose mtime influences the program they
+configure in some way? That would be a very good reason to include the
+mtime.
+
+If the goal is to keep track of multiple manual changes to /etc, the best
+thing to do is to manually run etckeeper commit after making the change.
+Relying on the daily autocommit is at best a fallback.
+
+Need to consider the resource impact of adding mtimes to /etc/.etckeeper 
+would not be very bad. The files are already statted, so no extra overhead
+there. 
+
+How about the size increase of /etc/.etckeeper?
+For each file in /etc, a line like `maybe touch -d '1970-01-01 00:00Z' foo` would
+be needed. (That seems the most compact available way to specifiy a time to
+touch.) On my system, that adds 136kb to /etc/.etckeeper, a little bit more
+than doubling its size.
+
+That doesn't seem too bad a resource impact. 
+"""]]

diff --git a/doc/todo/include_mtime_into_metadata.mdwn b/doc/todo/include_mtime_into_metadata.mdwn
new file mode 100644
index 0000000..1be3ab6
--- /dev/null
+++ b/doc/todo/include_mtime_into_metadata.mdwn
@@ -0,0 +1,5 @@
+It's impossible to know file modification time using git.
+etckeeper also saves some metadata, but not mtimes.
+
+Per-file mtimes are very useful to determine later when exactly change was happened.
+As of now, only date could be known, knowing there is `daily autocommit`, but time information is lost. Date is very imprecise, because there can be many changes per day.

Added a comment
diff --git a/doc/todo/track_multiple_directories/comment_11_353f4ec6cb4c575c9459b430236e27d1._comment b/doc/todo/track_multiple_directories/comment_11_353f4ec6cb4c575c9459b430236e27d1._comment
new file mode 100644
index 0000000..ee04de0
--- /dev/null
+++ b/doc/todo/track_multiple_directories/comment_11_353f4ec6cb4c575c9459b430236e27d1._comment
@@ -0,0 +1,9 @@
+[[!comment format=mdwn
+ username="doneg"
+ subject="comment 11"
+ date="2016-09-23T09:14:21Z"
+ content="""
+You already have -d support, now can you do, please, another step to track multiple dirs by adding cycle into `/etc/cron.daily/etckeeper` which would commit from multiple dirs. This could be variable in `/etc/etckeeper/etckeeper.conf`, for example `ADD_DIRS=\"/usr/local/etc /boot/grub\"`, and cron.daily script could just `for dir in $ADD_DIRS` and `commit -d $dir` them all. This requires just few lines to acquire such great functionality.
+
+For example, `/etc/grub2.cfg` is very important for the health of a system and it's never tracked by etckeeper by default because it's symlink to `/boot/grub2/grub.cfg`. We just have another server not survive reboot after simple `yum update` because grub.conf got wrong lvm parameters, and we unable to track when this change was happened first time.
+"""]]

Title case
diff --git a/doc/README.mdwn b/doc/README.mdwn
index 1877124..97bc3fc 100644
--- a/doc/README.mdwn
+++ b/doc/README.mdwn
@@ -12,7 +12,7 @@ It's quite modular and configurable, while also being simple to use if you
 understand the basics of working with version control.
 
 
-## security warnings
+## Security warnings
 
 First, a big warning: By checking /etc into version control, you are
 creating a copy of files like /etc/shadow that must remain secret. Anytime
@@ -35,7 +35,7 @@ Also note that `etckeeper init` runs code stored in the repository.
 So don't use it on repositories from untrusted sources.
 
 
-## what etckeeper does
+## What etckeeper does
 
 etckeeper has special support to handle changes to /etc caused by
 installing and upgrading packages. Before apt installs packages,
@@ -79,7 +79,7 @@ Darcs doesn't support symlinks, so they are also stored in
 `/etc/.etckeeper`.
 
 
-## tutorial
+## Tutorial
 
 A quick walkthrough of using etckeeper.
 
@@ -194,7 +194,7 @@ machines, to deploy changes to /etc. Once /etc is under version control, the
 sky's the limit..
 
 
-## configuration
+## Configuration
 
 The main configuration file is `/etc/etckeeper/etckeeper.conf`
 
@@ -257,7 +257,7 @@ edit `etckeeper.conf` to change the VCS setting, and finally
 `etckeeper init`. This procedure is clearly only for the brave.
 
 
-## inspiration
+## Inspiration
 
 Two blog posts provided inspiration for techniques used by etckeeper:
 
@@ -272,16 +272,16 @@ setup procedure and hooks for setting up an /etc repository, and then gets
 out of your way; you manage the repository using regular VCS commands.
 
 
-## license
+## License
 
 etckeeper is licensed under version 2 or greater of the GNU GPL.
 
 
-## website
+## Website
 
 <https://etckeeper.branchable.com/>
 
 
-## author
+## Author
 
 Joey Hess <id@joeyh.name>

add news item for etckeeper 1.18.5
diff --git a/doc/news/version_1.17.mdwn b/doc/news/version_1.17.mdwn
deleted file mode 100644
index 2858376..0000000
--- a/doc/news/version_1.17.mdwn
+++ /dev/null
@@ -1,7 +0,0 @@
-etckeeper 1.17 released with [[!toggle text="these changes"]]
-[[!toggleable text="""
-   * Fix name of DNF plugin.
-   * Add --version
-     Thanks Andreas Wansner.
-   * New website, http://etckeeper.branchable.com/
-   * Add build-depends on dh-python."""]]
\ No newline at end of file
diff --git a/doc/news/version_1.18.5.mdwn b/doc/news/version_1.18.5.mdwn
new file mode 100644
index 0000000..0d44e7b
--- /dev/null
+++ b/doc/news/version_1.18.5.mdwn
@@ -0,0 +1,8 @@
+etckeeper 1.18.5 released with [[!toggle text="these changes"]]
+[[!toggleable text="""
+   * Make etckeeper commit store metadata changes. The pre-commit
+     hook has always (and continues) to do that, but pre-commit is only
+     run when there are changes to tommit. This makes metadata-only
+     changes get committed.
+   * Move systemd files to /lib/systemd; /usr/lib/systemd is not used
+     on Debian."""]]
\ No newline at end of file

Make etckeeper commit store metadata changes.
The pre-commit hook has always (and continues) to do that, but pre-commit
is only run when there are changes to tommit. This makes metadata-only
changes get committed.
Note that the reason the pre-commit hook continues to also store metadata
changes is to support manual git commit run in /etc.
diff --git a/commit.d/20store-metadata b/commit.d/20store-metadata
new file mode 120000
index 0000000..5698d64
--- /dev/null
+++ b/commit.d/20store-metadata
@@ -0,0 +1 @@
+../pre-commit.d/30store-metadata
\ No newline at end of file
diff --git a/debian/changelog b/debian/changelog
index bfbf713..36521e5 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,12 @@
+etckeeper (1.18.5) UNRELEASED; urgency=medium
+
+  * Make etckeeper commit store metadata changes. The pre-commit
+    hook has always (and continues) to do that, but pre-commit is only
+    run when there are changes to tommit. This makes metadata-only
+    changes get committed.
+
+ -- Joey Hess <id@joeyh.name>  Sun, 17 Jul 2016 18:45:18 -0400
+
 etckeeper (1.18.4) unstable; urgency=medium
 
   * Optimised find for special and hard linked files.
diff --git a/doc/todo/metadata_changes_don__39__t_cause_a_new_commit.mdwn b/doc/todo/metadata_changes_don__39__t_cause_a_new_commit.mdwn
index 5d4c9db..ad1813a 100644
--- a/doc/todo/metadata_changes_don__39__t_cause_a_new_commit.mdwn
+++ b/doc/todo/metadata_changes_don__39__t_cause_a_new_commit.mdwn
@@ -3,3 +3,5 @@ If the only changes in /etc are metadata changes that the VCS doesn't natively t
 This is because the metadata in `/etc/.etckeeper` is only updated from `etckeeper pre-commit`, which is only called by the VCS pre-commit hook; and since the VCS doesn't track the metadata changes, it doesn't think that a new commit needs to be made, and doesn't call the hook!
 
 I think the best solution might be to call `etckeeper pre-commit` from in `etckeeper commit`.
+
+> [[fixed|done]] --[[Joey]]

diff --git a/doc/todo/metadata_changes_don__39__t_cause_a_new_commit.mdwn b/doc/todo/metadata_changes_don__39__t_cause_a_new_commit.mdwn
new file mode 100644
index 0000000..5d4c9db
--- /dev/null
+++ b/doc/todo/metadata_changes_don__39__t_cause_a_new_commit.mdwn
@@ -0,0 +1,5 @@
+If the only changes in /etc are metadata changes that the VCS doesn't natively track, then etckeeper refuses to make a new commit for them.  At least with git.
+
+This is because the metadata in `/etc/.etckeeper` is only updated from `etckeeper pre-commit`, which is only called by the VCS pre-commit hook; and since the VCS doesn't track the metadata changes, it doesn't think that a new commit needs to be made, and doesn't call the hook!
+
+I think the best solution might be to call `etckeeper pre-commit` from in `etckeeper commit`.

add news item for etckeeper 1.18.4
diff --git a/doc/news/version_1.18.4.mdwn b/doc/news/version_1.18.4.mdwn
new file mode 100644
index 0000000..9b9bf0a
--- /dev/null
+++ b/doc/news/version_1.18.4.mdwn
@@ -0,0 +1,12 @@
+etckeeper 1.18.4 released with [[!toggle text="these changes"]]
+[[!toggleable text="""
+   * Optimised find for special and hard linked files.
+     Thanks, Rike-Benjamin Schuppner.
+   * Adjust when Pacman 5 calls etckeeper hooks.
+     Thanks, Tilman Blumenbach and Christian Hesse.
+   * Only run Pacman hooks when files in /etc have changed.
+     Thanks, Christian Hesse.
+   * Added systemd timer that can run etckeeper 10 minutes after boot, and also
+     daily. It's not enabled by default, partly because of overlap with the
+     cron job.
+     Thanks, Christian Hesse."""]]
\ No newline at end of file

diff --git a/doc/todo/Give_preference_to_etckeeper.conf_over_existing_repository_for_defining___36__VCS.mdwn b/doc/todo/Give_preference_to_etckeeper.conf_over_existing_repository_for_defining___36__VCS.mdwn
new file mode 100644
index 0000000..da2f113
--- /dev/null
+++ b/doc/todo/Give_preference_to_etckeeper.conf_over_existing_repository_for_defining___36__VCS.mdwn
@@ -0,0 +1,41 @@
+I'm using etckeeper with hg and I will use git to manage some files under /etc apart from etckeeper for some reason.
+
+However, after I initialize new git repository as /etc/.git, etckeeper starts to use git as $VCS contrary to definition in etckeeper.conf. So I think that definition in etckeeper.conf should be given priority over existing repository.
+
+The patch is below (from https://github.com/hiraku/etckeeper/commit/02f6d37e50cacddc9605dcbc5c8844b3f4658d6e ):
+
+```diff
+diff --git a/etckeeper b/etckeeper
+index 93f2b00..6c63ffb 100755
+--- a/etckeeper
++++ b/etckeeper
+@@ -109,14 +109,16 @@ fi
+ cd "$ETCKEEPER_DIR"
+ export ETCKEEPER_DIR
+ 
+-if [ -d ".git" ]; then
+-       VCS=git
+-elif [ -d ".hg" ]; then
+-       VCS=hg
+-elif [ -d "_darcs" ]; then
+-       VCS=darcs
+-elif [ -d ".bzr" ]; then
+-       VCS=bzr
++if [ -z "$VCS" ]; then
++       if [ -d ".git" ]; then
++               VCS=git
++       elif [ -d ".hg" ]; then
++               VCS=hg
++       elif [ -d "_darcs" ]; then
++               VCS=darcs
++       elif [ -d ".bzr" ]; then
++               VCS=bzr
++       fi
+ fi
+ 
+ if [ -z "$VCS" ]; then
+```
+
+I would appreciate your consideration.
+
+Thank you.

Added a comment: This is needed for FreeBSD
diff --git a/doc/todo/track_multiple_directories/comment_10_89b0ea104e18ec73f743b6d3e9aee1a9._comment b/doc/todo/track_multiple_directories/comment_10_89b0ea104e18ec73f743b6d3e9aee1a9._comment
new file mode 100644
index 0000000..61f73d6
--- /dev/null
+++ b/doc/todo/track_multiple_directories/comment_10_89b0ea104e18ec73f743b6d3e9aee1a9._comment
@@ -0,0 +1,8 @@
+[[!comment format=mdwn
+ username="voltagex@69f6e3462800a695a8565ddc064de13207caf99f"
+ nickname="voltagex"
+ subject="This is needed for FreeBSD"
+ date="2016-03-20T04:43:30Z"
+ content="""
+FreeBSD splits configuration across /etc and /usr/local/etc
+"""]]

Adjust when Pacman 5 calls etckeeper hooks.
diff --git a/debian/changelog b/debian/changelog
index 33f2755..5ffa2f6 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -2,7 +2,7 @@ etckeeper (1.18.4) UNRELEASED; urgency=medium
 
   * Optimised find for special and hard linked files.
     Thanks, Rike-Benjamin Schuppner.
-  * Make Pacman 5 call etckeeper hooks as late as possible.
+  * Adjust when Pacman 5 calls etckeeper hooks.
     Thanks, Tilman Blumenbach.
 
  -- Joey Hess <id@joeyh.name>  Mon, 29 Feb 2016 11:12:08 -0400
diff --git a/doc/todo/Yet_another_patch_for_the_Pacman_5_hooks.mdwn b/doc/todo/Yet_another_patch_for_the_Pacman_5_hooks.mdwn
index b85e13a..e386b8e 100644
--- a/doc/todo/Yet_another_patch_for_the_Pacman_5_hooks.mdwn
+++ b/doc/todo/Yet_another_patch_for_the_Pacman_5_hooks.mdwn
@@ -18,3 +18,5 @@ My patch which makes Pacman call the pre-transaction hook as early as possible c
 <https://github.com/Tblue/etckeeper/commit/6ff4f922cd34689e0d61359ebd822af5f82c40a6.patch>
 
 Hopefully, this will be the last patch related to the Pacman hooks for some time... Sorry for the noise.
+
+> [[done]] --[[Joey]]

diff --git a/doc/todo/Yet_another_patch_for_the_Pacman_5_hooks.mdwn b/doc/todo/Yet_another_patch_for_the_Pacman_5_hooks.mdwn
new file mode 100644
index 0000000..b85e13a
--- /dev/null
+++ b/doc/todo/Yet_another_patch_for_the_Pacman_5_hooks.mdwn
@@ -0,0 +1,20 @@
+It turns out that my last patch ([[Patch:_Make_Pacman_5_call_etckeeper_hooks_as_late_as_possible]])
+was not perfect after all.
+
+Calling both the pre-transaction and the post-transaction hook as late as possible seemed to make
+sense at the time, but now that I think about it, I would say that only the post-transaction hook should be
+called after all other hooks; the **pre-transaction** hook should be called as **early** as possible.
+
+That way, the pre-transaction hook can make sure that...
+
+- ...everything in `/etc` gets committed before any other hook gets the chance to introduce more changes
+  (therefore making any changes made by other hooks part of the post-transaction commit) *and*...
+- ...it can abort the transaction and thus all hooks that come after the pre-transaction hook if `/etc`
+  is not clean and the user wants to prevent the package manager from running in that case. This prevents
+  any later hooks from making changes that should not be made in the first place (since the entire transaction
+  is being aborted due to a dirty `/etc`).
+
+My patch which makes Pacman call the pre-transaction hook as early as possible can be found here:
+<https://github.com/Tblue/etckeeper/commit/6ff4f922cd34689e0d61359ebd822af5f82c40a6.patch>
+
+Hopefully, this will be the last patch related to the Pacman hooks for some time... Sorry for the noise.

Added a comment
diff --git a/doc/todo/automatic_git_gc/comment_1_a0d10512edff8765066bac4bbc8a0561._comment b/doc/todo/automatic_git_gc/comment_1_a0d10512edff8765066bac4bbc8a0561._comment
new file mode 100644
index 0000000..b0413df
--- /dev/null
+++ b/doc/todo/automatic_git_gc/comment_1_a0d10512edff8765066bac4bbc8a0561._comment
@@ -0,0 +1,8 @@
+[[!comment format=mdwn
+ username="florian.kaiser@0f461a60da03d93431a5fdc965f53e6265e3f91e"
+ nickname="florian.kaiser"
+ subject="comment 1"
+ date="2016-03-08T13:32:03Z"
+ content="""
+Git does git gc automatically when needed.
+"""]]

Make Pacman 5 call etckeeper hooks as late as possible. Thanks, Tilman Blumenbach.
diff --git a/debian/changelog b/debian/changelog
index 7952bc7..33f2755 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -2,6 +2,8 @@ etckeeper (1.18.4) UNRELEASED; urgency=medium
 
   * Optimised find for special and hard linked files.
     Thanks, Rike-Benjamin Schuppner.
+  * Make Pacman 5 call etckeeper hooks as late as possible.
+    Thanks, Tilman Blumenbach.
 
  -- Joey Hess <id@joeyh.name>  Mon, 29 Feb 2016 11:12:08 -0400
 
diff --git a/doc/todo/Patch:_Make_Pacman_5_call_etckeeper_hooks_as_late_as_possible.mdwn b/doc/todo/Patch:_Make_Pacman_5_call_etckeeper_hooks_as_late_as_possible.mdwn
index 08f6721..59a42c8 100644
--- a/doc/todo/Patch:_Make_Pacman_5_call_etckeeper_hooks_as_late_as_possible.mdwn
+++ b/doc/todo/Patch:_Make_Pacman_5_call_etckeeper_hooks_as_late_as_possible.mdwn
@@ -3,3 +3,5 @@ have no numerical prefix -- which is needed in order to ensure that Pacman calls
 
 My patch remedies that minor issue by adding the proper numerical prefix to the filenames of the Pacman 5 hooks. It may be found here:
 <https://github.com/Tblue/etckeeper/commit/33b2d1edb9dac1ad04cf8ab100b8edff0b004dd1.patch>
+
+> [[done]] thanks --[[Joey]] 

Fix typo in my comment.
diff --git a/doc/todo/Patch:_Make_Pacman_5_call_etckeeper_hooks_as_late_as_possible.mdwn b/doc/todo/Patch:_Make_Pacman_5_call_etckeeper_hooks_as_late_as_possible.mdwn
index 6b076af..08f6721 100644
--- a/doc/todo/Patch:_Make_Pacman_5_call_etckeeper_hooks_as_late_as_possible.mdwn
+++ b/doc/todo/Patch:_Make_Pacman_5_call_etckeeper_hooks_as_late_as_possible.mdwn
@@ -1,5 +1,5 @@
 Pacman 5 calls its hooks in alphabetical order. The hooks I added in my previous patch (see [[__91__Patch__93___Support_Pacman_5.x_hooks]])
-have no numerical prefix -- which are needed in order to ensure that pacman calls the hooks as late as possible (i. e. after all other hooks).
+have no numerical prefix -- which is needed in order to ensure that Pacman calls the hooks as late as possible (i. e. after all other hooks).
 
 My patch remedies that minor issue by adding the proper numerical prefix to the filenames of the Pacman 5 hooks. It may be found here:
 <https://github.com/Tblue/etckeeper/commit/33b2d1edb9dac1ad04cf8ab100b8edff0b004dd1.patch>

diff --git a/doc/todo/Patch:_Make_Pacman_5_call_etckeeper_hooks_as_late_as_possible.mdwn b/doc/todo/Patch:_Make_Pacman_5_call_etckeeper_hooks_as_late_as_possible.mdwn
new file mode 100644
index 0000000..6b076af
--- /dev/null
+++ b/doc/todo/Patch:_Make_Pacman_5_call_etckeeper_hooks_as_late_as_possible.mdwn
@@ -0,0 +1,5 @@
+Pacman 5 calls its hooks in alphabetical order. The hooks I added in my previous patch (see [[__91__Patch__93___Support_Pacman_5.x_hooks]])
+have no numerical prefix -- which are needed in order to ensure that pacman calls the hooks as late as possible (i. e. after all other hooks).
+
+My patch remedies that minor issue by adding the proper numerical prefix to the filenames of the Pacman 5 hooks. It may be found here:
+<https://github.com/Tblue/etckeeper/commit/33b2d1edb9dac1ad04cf8ab100b8edff0b004dd1.patch>

add news item for etckeeper 1.18.3
diff --git a/doc/news/version_1.18.3.mdwn b/doc/news/version_1.18.3.mdwn
new file mode 100644
index 0000000..e713eae
--- /dev/null
+++ b/doc/news/version_1.18.3.mdwn
@@ -0,0 +1,14 @@
+etckeeper 1.18.3 released with [[!toggle text="these changes"]]
+[[!toggleable text="""
+   * Added support for pacmatic, contributed by nicolaichuk.
+   * bzr: make sure EMAIL is defined
+     Thanks, Serge E. Hallyn
+   * Fix Makefile version patterns to ignore non-native version number
+     (Antoine Beaupré)
+   * Support ~/.config/git/config when determining the author name and email.
+     Thanks, Richard Savio
+   * Added support for Arch's pacman package manager version 5.
+     Thanks, Tilman Blumenbach.
+   * Set HOME if it's not set, as is the case when using ubuntu's
+     update-manager.
+   * Move bash completion out of etc and into usr."""]]
\ No newline at end of file

Set HOME if it's not set, as is the case when using ubuntu's update-manager.
diff --git a/debian/changelog b/debian/changelog
index 133618f..aecd60f 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -9,6 +9,7 @@ etckeeper (1.18.3) UNRELEASED; urgency=medium
     Thanks, Richard Savio
   * Added support for Arch's pacman package manager version 5.
     Thanks, Tilman Blumenbach.
+  * Set HOME if it's not set, as is the case when using ubuntu's update-manager.
 
  -- Joey Hess <id@joeyh.name>  Mon, 21 Sep 2015 16:38:03 -0400
 
diff --git a/doc/todo/etckeeper_with_git_breaks_update-manager_.mdwn b/doc/todo/etckeeper_with_git_breaks_update-manager_.mdwn
index b74f97c..b2bfe96 100644
--- a/doc/todo/etckeeper_with_git_breaks_update-manager_.mdwn
+++ b/doc/todo/etckeeper_with_git_breaks_update-manager_.mdwn
@@ -28,3 +28,5 @@ But when the update-manger install new packet versions it ends with an "installa
     SourcePackage: etckeeper
     UpgradeStatus: No upgrade log present (probably fresh install)
     mtime.conffile..etc.etckeeper.etckeeper.conf: 2014-03-30T16:33:03.109833
+
+> [[done]] --[[Joey]]
diff --git a/doc/todo/etckeeper_with_git_breaks_update-manager_/comment_2_0324393d5a4f4e6a6174c27f1a53e886._comment b/doc/todo/etckeeper_with_git_breaks_update-manager_/comment_2_0324393d5a4f4e6a6174c27f1a53e886._comment
new file mode 100644
index 0000000..8a25023
--- /dev/null
+++ b/doc/todo/etckeeper_with_git_breaks_update-manager_/comment_2_0324393d5a4f4e6a6174c27f1a53e886._comment
@@ -0,0 +1,10 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 2"""
+ date="2016-02-15T17:09:15Z"
+ content="""
+user.email and user.name are set by etckeeper to sane fallback defaults.
+ubuntu has a seriously ancient version of etckeeper, which predates that.
+
+I've added a default for HOME.
+"""]]
diff --git a/etckeeper b/etckeeper
index d85ebb6..5a3ca25 100755
--- a/etckeeper
+++ b/etckeeper
@@ -59,6 +59,11 @@ if [ ! -z "$PUSH_REMOTE" ]; then
 	export PUSH_REMOTE
 fi
 
+if [ -z "$HOME" ]; then
+	HOME=~root
+	export HOME
+fi
+
 if [ -z "$1" ]; then
 	usage
 elif [ "x$1" = "x-h" ] || [ "x$1" = "x--help" ]; then

Added a comment: Workaround
diff --git a/doc/todo/etckeeper_with_git_breaks_update-manager_/comment_1_2ae8af745340c6f4d5ee87c74c96e870._comment b/doc/todo/etckeeper_with_git_breaks_update-manager_/comment_1_2ae8af745340c6f4d5ee87c74c96e870._comment
new file mode 100644
index 0000000..de0814d
--- /dev/null
+++ b/doc/todo/etckeeper_with_git_breaks_update-manager_/comment_1_2ae8af745340c6f4d5ee87c74c96e870._comment
@@ -0,0 +1,26 @@
+[[!comment format=mdwn
+ username="https://launchpad.net/~codex24"
+ nickname="codex24"
+ subject="Workaround"
+ date="2016-02-14T23:12:10Z"
+ content="""
+With etckeeper installed in Ubuntu using git as its VCS, using the Ubuntu Software Center fails with errors 
+
+    installArchives() failed: fatal: $HOME not set
+
+Correct this by adding the following file, /etc/etckeeper/pre-install.d/20setenv:
+
+    #!/bin/sh
+    # /etc/etckeeper/pre-install.d/20setenv: set HOME dir due to 
+    # unpassed environment in priviledge escallation of Ubuntu Software Center.
+    # see https://bugs.launchpad.net/ubuntu/+source/etckeeper/+bug/1335391
+    if \[[ -z \"$HOME\" ]]; then
+        export HOME=$(getent passwd root | cut -d: -f6)
+    fi
+
+Also, ensure that the root account's git environment is properly initialized:
+
+    root@janus:/etc# git config -l
+    user.name=Root Janus
+    user.email=codex24@gmail.com
+"""]]

removed
diff --git a/doc/todo/etckeeper_with_git_breaks_update-manager_/comment_1_edc0c3a66c1118fefd952b7a9b3c1057._comment b/doc/todo/etckeeper_with_git_breaks_update-manager_/comment_1_edc0c3a66c1118fefd952b7a9b3c1057._comment
deleted file mode 100644
index 9374da4..0000000
--- a/doc/todo/etckeeper_with_git_breaks_update-manager_/comment_1_edc0c3a66c1118fefd952b7a9b3c1057._comment
+++ /dev/null
@@ -1,26 +0,0 @@
-[[!comment format=mdwn
- username="https://launchpad.net/~codex24"
- nickname="codex24"
- subject="comment 1"
- date="2016-02-14T23:06:05Z"
- content="""
-With etckeeper installed in Ubuntu using git as its VCS, using the Ubuntu Software Center fails with errors 
-
-    installArchives() failed: fatal: $HOME not set
-
-Correct this by adding the following file, /etc/etckeeper/pre-install.d/20setenv:
-
-    #!/bin/sh
-    # /etc/etckeeper/pre-install.d/20setenv: set HOME dir due to 
-    # unpassed environment in priviledge escallation of Ubuntu Software Center.
-    # see https://bugs.launchpad.net/ubuntu/+source/etckeeper/+bug/1335391
-    if [[ -z \"$HOME\" ]]; then
-        export HOME=$(getent passwd root | cut -d: -f6)
-    fi
-
-Also, ensure that the root account's git environment is properly initialized:
-
-    root@janus:/etc# git config -l
-    user.name=Root Janus
-    user.email=codex24@gmail.com
-"""]]

Added a comment
diff --git a/doc/todo/etckeeper_with_git_breaks_update-manager_/comment_1_edc0c3a66c1118fefd952b7a9b3c1057._comment b/doc/todo/etckeeper_with_git_breaks_update-manager_/comment_1_edc0c3a66c1118fefd952b7a9b3c1057._comment
new file mode 100644
index 0000000..9374da4
--- /dev/null
+++ b/doc/todo/etckeeper_with_git_breaks_update-manager_/comment_1_edc0c3a66c1118fefd952b7a9b3c1057._comment
@@ -0,0 +1,26 @@
+[[!comment format=mdwn
+ username="https://launchpad.net/~codex24"
+ nickname="codex24"
+ subject="comment 1"
+ date="2016-02-14T23:06:05Z"
+ content="""
+With etckeeper installed in Ubuntu using git as its VCS, using the Ubuntu Software Center fails with errors 
+
+    installArchives() failed: fatal: $HOME not set
+
+Correct this by adding the following file, /etc/etckeeper/pre-install.d/20setenv:
+
+    #!/bin/sh
+    # /etc/etckeeper/pre-install.d/20setenv: set HOME dir due to 
+    # unpassed environment in priviledge escallation of Ubuntu Software Center.
+    # see https://bugs.launchpad.net/ubuntu/+source/etckeeper/+bug/1335391
+    if [[ -z \"$HOME\" ]]; then
+        export HOME=$(getent passwd root | cut -d: -f6)
+    fi
+
+Also, ensure that the root account's git environment is properly initialized:
+
+    root@janus:/etc# git config -l
+    user.name=Root Janus
+    user.email=codex24@gmail.com
+"""]]

fix formatting of example text
diff --git a/doc/todo/etckeeper_with_git_breaks_update-manager_.mdwn b/doc/todo/etckeeper_with_git_breaks_update-manager_.mdwn
index 1b76c8d..b74f97c 100644
--- a/doc/todo/etckeeper_with_git_breaks_update-manager_.mdwn
+++ b/doc/todo/etckeeper_with_git_breaks_update-manager_.mdwn
@@ -1,29 +1,30 @@
 [Ubuntu LaunchPad bug #1335391](https://bugs.launchpad.net/ubuntu/+source/etckeeper/+bug/1335391)
+(Quoting the LaunchPad bug below, but I have experienced this issue in an identical manner.)
 
-I have configured etckeeper to use git. It works fine if I use apt-get or synaptic paket manager.
+I have configured etckeeper to use git. It works fine if I use apt-get or synaptic packet manager.
 
-But when the update-manger install new packet versions it ends with an "installation falied" message. When I check the status of the git repository in the etc directory, some changes are not commited, e.g.:
+But when the update-manger install new packet versions it ends with an "installation failed" message. When I check the status of the git repository in the etc directory, some changes are not commited, e.g.:
 
-On branch master
-Changes to be committed:
-  (use "git reset HEAD <file>..." to unstage)
+    On branch master
+    Changes to be committed:
+      (use "git reset HEAD <file>..." to unstage)
+    
+      modified: apt/apt.conf.d/01autoremove-kernels
+      modified: init.d/resolvconf
 
- modified: apt/apt.conf.d/01autoremove-kernels
- modified: init.d/resolvconf
-
-ProblemType: Bug
-DistroRelease: Ubuntu 14.04
-Package: etckeeper 1.9ubuntu2
-ProcVersionSignature: Ubuntu 3.13.0-29.53-generic 3.13.11.2
-Uname: Linux 3.13.0-29-generic x86_64
-NonfreeKernelModules: wl tbs6982fe tbs6680fe tbs6923fe tbs6985se tbs6928se tbs6982se tbs6991fe tbs6618fe tbs6922fe tbs6928fe tbs6991se
-ApportVersion: 2.14.1-0ubuntu3.2
-Architecture: amd64
-CurrentDesktop: Unity
-Date: Sat Jun 28 09:42:13 2014
-InstallationDate: Installed on 2014-03-30 (89 days ago)
-InstallationMedia: Ubuntu 14.04 LTS "Trusty Tahr" - Daily amd64 (20140329)
-PackageArchitecture: all
-SourcePackage: etckeeper
-UpgradeStatus: No upgrade log present (probably fresh install)
-mtime.conffile..etc.etckeeper.etckeeper.conf: 2014-03-30T16:33:03.109833
+    ProblemType: Bug
+    DistroRelease: Ubuntu 14.04
+    Package: etckeeper 1.9ubuntu2
+    ProcVersionSignature: Ubuntu 3.13.0-29.53-generic 3.13.11.2
+    Uname: Linux 3.13.0-29-generic x86_64
+    NonfreeKernelModules: wl tbs6982fe tbs6680fe tbs6923fe tbs6985se tbs6928se tbs6982se tbs6991fe tbs6618fe tbs6922fe tbs6928fe tbs6991se
+    ApportVersion: 2.14.1-0ubuntu3.2
+    Architecture: amd64
+    CurrentDesktop: Unity
+    Date: Sat Jun 28 09:42:13 2014
+    InstallationDate: Installed on 2014-03-30 (89 days ago)
+    InstallationMedia: Ubuntu 14.04 LTS "Trusty Tahr" - Daily amd64 (20140329)
+    PackageArchitecture: all
+    SourcePackage: etckeeper
+    UpgradeStatus: No upgrade log present (probably fresh install)
+    mtime.conffile..etc.etckeeper.etckeeper.conf: 2014-03-30T16:33:03.109833

Pointer to etckeeper in Ubuntu LaunchPad
diff --git a/doc/todo/etckeeper_with_git_breaks_update-manager_.mdwn b/doc/todo/etckeeper_with_git_breaks_update-manager_.mdwn
new file mode 100644
index 0000000..1b76c8d
--- /dev/null
+++ b/doc/todo/etckeeper_with_git_breaks_update-manager_.mdwn
@@ -0,0 +1,29 @@
+[Ubuntu LaunchPad bug #1335391](https://bugs.launchpad.net/ubuntu/+source/etckeeper/+bug/1335391)
+
+I have configured etckeeper to use git. It works fine if I use apt-get or synaptic paket manager.
+
+But when the update-manger install new packet versions it ends with an "installation falied" message. When I check the status of the git repository in the etc directory, some changes are not commited, e.g.:
+
+On branch master
+Changes to be committed:
+  (use "git reset HEAD <file>..." to unstage)
+
+ modified: apt/apt.conf.d/01autoremove-kernels
+ modified: init.d/resolvconf
+
+ProblemType: Bug
+DistroRelease: Ubuntu 14.04
+Package: etckeeper 1.9ubuntu2
+ProcVersionSignature: Ubuntu 3.13.0-29.53-generic 3.13.11.2
+Uname: Linux 3.13.0-29-generic x86_64
+NonfreeKernelModules: wl tbs6982fe tbs6680fe tbs6923fe tbs6985se tbs6928se tbs6982se tbs6991fe tbs6618fe tbs6922fe tbs6928fe tbs6991se
+ApportVersion: 2.14.1-0ubuntu3.2
+Architecture: amd64
+CurrentDesktop: Unity
+Date: Sat Jun 28 09:42:13 2014
+InstallationDate: Installed on 2014-03-30 (89 days ago)
+InstallationMedia: Ubuntu 14.04 LTS "Trusty Tahr" - Daily amd64 (20140329)
+PackageArchitecture: all
+SourcePackage: etckeeper
+UpgradeStatus: No upgrade log present (probably fresh install)
+mtime.conffile..etc.etckeeper.etckeeper.conf: 2014-03-30T16:33:03.109833

Added support for Arch's pacman package manager version 5. Thanks, Tilman Blumenbach.
diff --git a/debian/changelog b/debian/changelog
index f47b051..133618f 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -7,6 +7,8 @@ etckeeper (1.18.3) UNRELEASED; urgency=medium
     (Antoine Beaupré)
   * Support ~/.config/git/config when determining the author name and email.
     Thanks, Richard Savio
+  * Added support for Arch's pacman package manager version 5.
+    Thanks, Tilman Blumenbach.
 
  -- Joey Hess <id@joeyh.name>  Mon, 21 Sep 2015 16:38:03 -0400
 
diff --git a/doc/todo/__91__Patch__93___Support_Pacman_5.x_hooks.mdwn b/doc/todo/__91__Patch__93___Support_Pacman_5.x_hooks.mdwn
index 2854740..02c8ff5 100644
--- a/doc/todo/__91__Patch__93___Support_Pacman_5.x_hooks.mdwn
+++ b/doc/todo/__91__Patch__93___Support_Pacman_5.x_hooks.mdwn
@@ -6,3 +6,5 @@ I have added the necessary hook files to etckeeper and also modified the `Makefi
 `pacman` as the `LOWLEVEL_PACKAGE_MANAGER`.
 
 You can find my patch [here](https://github.com/joeyh/etckeeper/compare/master...Tblue:master.patch). Please consider applying it. :-)
+
+> merged, thanks. [[done]] --[[Joey]]

diff --git a/doc/todo/__91__Patch__93___Support_Pacman_5.x_hooks.mdwn b/doc/todo/__91__Patch__93___Support_Pacman_5.x_hooks.mdwn
new file mode 100644
index 0000000..2854740
--- /dev/null
+++ b/doc/todo/__91__Patch__93___Support_Pacman_5.x_hooks.mdwn
@@ -0,0 +1,8 @@
+The 5.0.0 release of Arch Linux' *Pacman* package manager
+[finally supports hooks](https://projects.archlinux.org/pacman.git/tree/NEWS?id=fea9abc8db3b8161ab32774a0ddd7c405cfbe44f),
+making it possible to properly integrate etckeeper with it.
+
+I have added the necessary hook files to etckeeper and also modified the `Makefile` to install them if the user chooses
+`pacman` as the `LOWLEVEL_PACKAGE_MANAGER`.
+
+You can find my patch [here](https://github.com/joeyh/etckeeper/compare/master...Tblue:master.patch). Please consider applying it. :-)

close this
diff --git a/doc/todo/freebsd_pkgng_plugin.mdwn b/doc/todo/freebsd_pkgng_plugin.mdwn
index 359f37b..431562f 100644
--- a/doc/todo/freebsd_pkgng_plugin.mdwn
+++ b/doc/todo/freebsd_pkgng_plugin.mdwn
@@ -4,4 +4,5 @@ Basic working plugin available at: <https://github.com/radhus/etckeeper/commit/f
 
 > I've merged this. Of course it would be good to get the main Makefile
 > able to install it. Please open new todos if you have updates and thanks!
+> [[done]]
 > --[[Joey]]

Added a comment: Track multiple dirs for all commands
diff --git a/doc/todo/track_multiple_directories/comment_9_63c1293cf56b1229d3b7e454306b74e0._comment b/doc/todo/track_multiple_directories/comment_9_63c1293cf56b1229d3b7e454306b74e0._comment
new file mode 100644
index 0000000..381a2c7
--- /dev/null
+++ b/doc/todo/track_multiple_directories/comment_9_63c1293cf56b1229d3b7e454306b74e0._comment
@@ -0,0 +1,18 @@
+[[!comment format=mdwn
+ username="abozhenko@10aed7e09adef30729c54d5f74e1d94bc22dc6e2"
+ nickname="abozhenko"
+ subject="Track multiple dirs for all commands"
+ date="2015-11-22T04:03:37Z"
+ content="""
+Hello. 
+Please take a look:
+https://github.com/joeyh/etckeeper/pull/30
+
+I tried to add support for multiple dirs for all commands, and leave it compatible with default old config and cli.
+
+This feature may be useful when you want to have more control on your system. There are other locations which do contain config/code that may be changed, and affects system, e.g.: 
+python code at /usr/lib/python2.7/dist-packages/
+pacemaker scripts at /usr/lib/ocf/resource.d/fuel
+libvirt vms xmls at /var/lib/nova/instances/*/*.xml
+...
+"""]]

Added support for pacmatic, contributed by nicolaichuk.
diff --git a/debian/changelog b/debian/changelog
index 23996b8..5e6dba2 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+etckeeper (1.18.3) UNRELEASED; urgency=medium
+
+  * Added support for pacmatic, contributed by nicolaichuk.
+
+ -- Joey Hess <id@joeyh.name>  Mon, 21 Sep 2015 16:38:03 -0400
+
 etckeeper (1.18.2) unstable; urgency=medium
 
   * Use getent utility instead of perl. (Elan Ruusamäe)
diff --git a/doc/todo/add_support_pacmatic_http:__47____47__kmkeen.com__47__pacmatic__47__.mdwn b/doc/todo/add_support_pacmatic_http:__47____47__kmkeen.com__47__pacmatic__47__.mdwn
index a2bec83..a1e71fe 100644
--- a/doc/todo/add_support_pacmatic_http:__47____47__kmkeen.com__47__pacmatic__47__.mdwn
+++ b/doc/todo/add_support_pacmatic_http:__47____47__kmkeen.com__47__pacmatic__47__.mdwn
@@ -3,3 +3,5 @@ Please add support pacmatic http://kmkeen.com/pacmatic/
 https://github.com/nicolaichuk/etckeeper/commit/52846aebb91770e3bbc466881998714c88cbcaa6
 
 Patch attached: 'add_support_pacmatic.patch'
+
+> [[merged|done]] --[[Joey]]

Patch for support pacmatic
diff --git a/doc/todo/add_support_pacmatic_http:__47____47__kmkeen.com__47__pacmatic__47__.mdwn b/doc/todo/add_support_pacmatic_http:__47____47__kmkeen.com__47__pacmatic__47__.mdwn
new file mode 100644
index 0000000..a2bec83
--- /dev/null
+++ b/doc/todo/add_support_pacmatic_http:__47____47__kmkeen.com__47__pacmatic__47__.mdwn
@@ -0,0 +1,5 @@
+Please add support pacmatic http://kmkeen.com/pacmatic/
+
+https://github.com/nicolaichuk/etckeeper/commit/52846aebb91770e3bbc466881998714c88cbcaa6
+
+Patch attached: 'add_support_pacmatic.patch'

diff --git a/doc/todo/Do_not_recreate_ignored_empty_directory.mdwn b/doc/todo/Do_not_recreate_ignored_empty_directory.mdwn
new file mode 100644
index 0000000..ee13ae6
--- /dev/null
+++ b/doc/todo/Do_not_recreate_ignored_empty_directory.mdwn
@@ -0,0 +1,8 @@
+Hi
+
+* I made some change to have a more powerful ignore_filter https://github.com/jeremiejig/etckeeper/commit/faed9ba87a71a2d09cf078c0154bd3a6bd36786a
+The filtering process concern only **git**.
+
+* And I filter the empty directories to avoid creating ignored empty directories https://github.com/jeremiejig/etckeeper/commit/4f257707ed85097a93289b4a33f18ea21dcf3a6e
+
+Tell me what you think.

Added a comment: Very good idea
diff --git a/doc/todo/track_multiple_directories/comment_8_98d099e5947fb750e5ae9f79b70e318e._comment b/doc/todo/track_multiple_directories/comment_8_98d099e5947fb750e5ae9f79b70e318e._comment
new file mode 100644
index 0000000..c01841b
--- /dev/null
+++ b/doc/todo/track_multiple_directories/comment_8_98d099e5947fb750e5ae9f79b70e318e._comment
@@ -0,0 +1,8 @@
+[[!comment format=mdwn
+ username="godblessfq@70ee431d0873d190e6376c984749de668791e42c"
+ nickname="godblessfq"
+ subject="Very good idea"
+ date="2015-08-14T20:40:28Z"
+ content="""
+It would be very nice to keep all my configuration in one repo. 
+"""]]

add news item for etckeeper 1.18.2
diff --git a/doc/news/version_1.18.2.mdwn b/doc/news/version_1.18.2.mdwn
new file mode 100644
index 0000000..fe38994
--- /dev/null
+++ b/doc/news/version_1.18.2.mdwn
@@ -0,0 +1,7 @@
+etckeeper 1.18.2 released with [[!toggle text="these changes"]]
+[[!toggleable text="""
+   * Use getent utility instead of perl. (Elan Ruusamäe)
+   * Initial FreeBSD support with pkgng plugin. (William Johansson)
+   * Fix README.md symlink in package (Sebastian Schmidt, Antoine Beaupré,
+     closes: #[791566](http://bugs.debian.org/791566))
+   * Fix typo of GIT\_COMMITTER\_EMAIL."""]]
\ No newline at end of file

Fix typo of GIT_COMMITTER_EMAIL.
diff --git a/commit.d/50vcs-commit b/commit.d/50vcs-commit
index 1d9ade4..43af353 100755
--- a/commit.d/50vcs-commit
+++ b/commit.d/50vcs-commit
@@ -55,8 +55,8 @@ if [ "$VCS" = git ] && [ -d .git ]; then
 			fi
 		fi
 		if [ -z "$GIT_COMMITTER_EMAIL" ]; then
-			GIT_COMMITER_EMAIL="$(git config --global user.email)" || true
-			export GIT_COMMITER_EMAIL
+			GIT_COMMITTER_EMAIL="$(git config --global user.email)" || true
+			export GIT_COMMITTER_EMAIL
 		fi
 
 		if [ -z "$GIT_AUTHOR_NAME" ]; then
diff --git a/debian/changelog b/debian/changelog
index cd12ca5..7f99d09 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -4,6 +4,7 @@ etckeeper (1.18.2) UNRELEASED; urgency=medium
   * Initial FreeBSD support with pkgng plugin. (William Johansson)
   * Fix README.md symlink in package (Sebastian Schmidt, Antoine Beaupré,
     closes: #791566)
+  * Fix typo of GIT_COMMITTER_EMAIL.
 
  -- Joey Hess <id@joeyh.name>  Mon, 01 Jun 2015 09:15:34 -0400
 
diff --git a/doc/todo/Correct_misspelling_of___34__committer__34__.mdwn b/doc/todo/Correct_misspelling_of___34__committer__34__.mdwn
index 9ecd90d..2f0fc92 100644
--- a/doc/todo/Correct_misspelling_of___34__committer__34__.mdwn
+++ b/doc/todo/Correct_misspelling_of___34__committer__34__.mdwn
@@ -4,3 +4,4 @@ https://github.com/joeyh/etckeeper/blob/master/commit.d/50vcs-commit#L58-L59
 
 This is causing git to incorrectly attribute commits to root instead of the name and email specified in ~/.gitconfig.
 
+> [[fixed|done]] --[[Joey]]

diff --git a/doc/todo/Correct_misspelling_of___34__committer__34__.mdwn b/doc/todo/Correct_misspelling_of___34__committer__34__.mdwn
new file mode 100644
index 0000000..9ecd90d
--- /dev/null
+++ b/doc/todo/Correct_misspelling_of___34__committer__34__.mdwn
@@ -0,0 +1,6 @@
+In commit.d/50vcs-commit the word "committer" is misspelled twice (as "commiter"). Here it is in the code:
+
+https://github.com/joeyh/etckeeper/blob/master/commit.d/50vcs-commit#L58-L59
+
+This is causing git to incorrectly attribute commits to root instead of the name and email specified in ~/.gitconfig.
+

Typo
Is it really **h**ackup?
diff --git a/doc/README.mdwn b/doc/README.mdwn
index 4528eb3..1877124 100644
--- a/doc/README.mdwn
+++ b/doc/README.mdwn
@@ -187,7 +187,7 @@ run "etckeeper init" to update file permissions.)
 Incidentially, this also means I have a backup of dodo's /etc on darkstar.
 So if darkstar is compromised, that data could be used to attack dodo
 too. On the other hand, if dodo's disk dies, I can restore it from this
-handy hackup.
+handy backup.
 
 Of course, it's also possible to pull changes from a server onto client
 machines, to deploy changes to /etc. Once /etc is under version control, the

review
diff --git a/doc/todo/remove_remaining_perl_usage/comment_1_c901ff31a0cddf4912123c6443876327._comment b/doc/todo/remove_remaining_perl_usage/comment_1_c901ff31a0cddf4912123c6443876327._comment
new file mode 100644
index 0000000..0841dad
--- /dev/null
+++ b/doc/todo/remove_remaining_perl_usage/comment_1_c901ff31a0cddf4912123c6443876327._comment
@@ -0,0 +1,15 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 1"""
+ date="2015-06-10T19:50:30Z"
+ content="""
+Reviewing this patch, I noticed a bug in the first hunk. lsscripts
+currently limits the files it finds to those matching a regexp. IIRC, this
+is needed, amoung other things, to avoid .dpkg-old files being run.
+
+Looking at the second hunk, I suspect that calling `id` twice per file is
+going to be significantly slower than the perl implementation.
+
+There also seems to be missing escaping of single quotes in filenames in
+the second hunk.
+"""]]

merged pkgng plugin
diff --git a/debian/changelog b/debian/changelog
index 8157f10..6e319fa 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,6 +1,7 @@
 etckeeper (1.18.2) UNRELEASED; urgency=medium
 
   * Use getent utility instead of perl. (Elan Ruusamäe)
+  * Initial FreeBSD support with pkgng plugin. (William Johansson)
 
  -- Joey Hess <id@joeyh.name>  Mon, 01 Jun 2015 09:15:34 -0400
 
diff --git a/doc/todo/freebsd_pkgng_plugin.mdwn b/doc/todo/freebsd_pkgng_plugin.mdwn
index 81edb89..359f37b 100644
--- a/doc/todo/freebsd_pkgng_plugin.mdwn
+++ b/doc/todo/freebsd_pkgng_plugin.mdwn
@@ -1,3 +1,7 @@
 Get the same integration with FreeBSD pkg as with other package managers.
 
 Basic working plugin available at: <https://github.com/radhus/etckeeper/commit/f849bcc558c2c83b8738e31d2aee56d979c39555>
+
+> I've merged this. Of course it would be good to get the main Makefile
+> able to install it. Please open new todos if you have updates and thanks!
+> --[[Joey]]

diff --git a/doc/todo/freebsd_pkgng_plugin.mdwn b/doc/todo/freebsd_pkgng_plugin.mdwn
new file mode 100644
index 0000000..81edb89
--- /dev/null
+++ b/doc/todo/freebsd_pkgng_plugin.mdwn
@@ -0,0 +1,3 @@
+Get the same integration with FreeBSD pkg as with other package managers.
+
+Basic working plugin available at: <https://github.com/radhus/etckeeper/commit/f849bcc558c2c83b8738e31d2aee56d979c39555>

diff --git a/doc/todo/remove_remaining_perl_usage.mdwn b/doc/todo/remove_remaining_perl_usage.mdwn
new file mode 100644
index 0000000..baa593a
--- /dev/null
+++ b/doc/todo/remove_remaining_perl_usage.mdwn
@@ -0,0 +1,4 @@
+In order to run etckeeper on e.g. embedded systems which does not have perl, I've removed the last parts using perl.
+I have run this on my custom system and it works as expected for me.
+
+Link to github commit: <https://github.com/radhus/etckeeper/commit/d05837ed617bac0163a158ba1cfeca68994bc8f3>

Use getent utility instead of perl. (Elan Ruusamäe)
diff --git a/debian/changelog b/debian/changelog
index c369d99..8157f10 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+etckeeper (1.18.2) UNRELEASED; urgency=medium
+
+  * Use getent utility instead of perl. (Elan Ruusamäe)
+
+ -- Joey Hess <id@joeyh.name>  Mon, 01 Jun 2015 09:15:34 -0400
+
 etckeeper (1.18.1) unstable; urgency=medium
 
   * Add myself as maintainer (Closes: #768516)
diff --git a/doc/todo/use_getent__40__1__41___from_glibc_to_retrieve_user_home___35__27.mdwn b/doc/todo/use_getent__40__1__41___from_glibc_to_retrieve_user_home___35__27.mdwn
index a75ee8c..ee6e9ed 100644
--- a/doc/todo/use_getent__40__1__41___from_glibc_to_retrieve_user_home___35__27.mdwn
+++ b/doc/todo/use_getent__40__1__41___from_glibc_to_retrieve_user_home___35__27.mdwn
@@ -4,3 +4,11 @@ https://github.com/joeyh/etckeeper/pull/27
 
 url for git am:
 https://patch-diff.githubusercontent.com/raw/joeyh/etckeeper/pull/27.patch
+
+> I had to guess at the motivation for this patch, which is never the best
+> position for a patch to leave its receiver in.
+> 
+> I guess that getent is a little faster than running perl to do the same
+> thing. And, getent seems to always be available, at least on debian.
+> 
+> So, applied, with some doubt. [[done]] --[[Joey]] 

diff --git a/doc/todo/use_getent__40__1__41___from_glibc_to_retrieve_user_home___35__27.mdwn b/doc/todo/use_getent__40__1__41___from_glibc_to_retrieve_user_home___35__27.mdwn
new file mode 100644
index 0000000..a75ee8c
--- /dev/null
+++ b/doc/todo/use_getent__40__1__41___from_glibc_to_retrieve_user_home___35__27.mdwn
@@ -0,0 +1,6 @@
+use getent(1) from glibc to retrieve user home #27
+
+https://github.com/joeyh/etckeeper/pull/27
+
+url for git am:
+https://patch-diff.githubusercontent.com/raw/joeyh/etckeeper/pull/27.patch

Added a comment: Very much needed
diff --git a/doc/todo/track_multiple_directories/comment_7_10615b0102e73f1b33f5a8d7207f8edb._comment b/doc/todo/track_multiple_directories/comment_7_10615b0102e73f1b33f5a8d7207f8edb._comment
new file mode 100644
index 0000000..f607a5b
--- /dev/null
+++ b/doc/todo/track_multiple_directories/comment_7_10615b0102e73f1b33f5a8d7207f8edb._comment
@@ -0,0 +1,11 @@
+[[!comment format=mdwn
+ username="apaz"
+ subject="Very much needed"
+ date="2015-04-29T08:44:04Z"
+ content="""
+This is very much needed!
+Example of some folders in debian/ubuntu that people want to keep track of:
+/var/spool/cron/crontabs - user crontabs, yes you can use /etc/cron.d but not everyone does.
+/lib/ufw/ - If you use ufw, the rules will be saved here
+/usr/local/bin - for your own shellscripts and stuff
+"""]]

Added a comment: intrusion detection?
diff --git a/doc/todo/track_multiple_directories/comment_6_bedb701e0175b2d3833041f2f496d3aa._comment b/doc/todo/track_multiple_directories/comment_6_bedb701e0175b2d3833041f2f496d3aa._comment
new file mode 100644
index 0000000..f5d9831
--- /dev/null
+++ b/doc/todo/track_multiple_directories/comment_6_bedb701e0175b2d3833041f2f496d3aa._comment
@@ -0,0 +1,10 @@
+[[!comment format=mdwn
+ username="https://www.google.com/accounts/o8/id?id=AItOawnZJhzx-nwZRTgh9kjy2Q8zKYsgTLNM2zc"
+ nickname="Evan"
+ subject="intrusion detection?"
+ date="2015-04-10T20:32:40Z"
+ content="""
+It seems to me that this would be particularly useful for narrowly scoped intrusion detection.
+
+For example, if I have an installed instance of a popular web app (Wordpress, Django, what have you) that is compromised (SQL injection, brute force, etcetera), every part of that app may become suspect even after the initial vulnerability is patched...in which case, a versioned log of what files were changed within the app directory(s) would be *extremely* useful.
+"""]]

comment
diff --git a/doc/todo/how_to_restore_from_etckeeper/comment_1_e97948136569a070265c1cd757e3c889._comment b/doc/todo/how_to_restore_from_etckeeper/comment_1_e97948136569a070265c1cd757e3c889._comment
new file mode 100644
index 0000000..4886c50
--- /dev/null
+++ b/doc/todo/how_to_restore_from_etckeeper/comment_1_e97948136569a070265c1cd757e3c889._comment
@@ -0,0 +1,12 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 1"""
+ date="2015-03-28T16:10:49Z"
+ content="""
+I would definitely go with #3. Unless I knew that the new system was
+identical to the old before any customizations to /etc -- in that case,
+cloning to /etc would work.
+
+Note that `etckeeper init` will fix up the file permissions of a clone of
+the repo, since etckeeper stores them.
+"""]]

diff --git a/doc/todo/how_to_restore_from_etckeeper.mdwn b/doc/todo/how_to_restore_from_etckeeper.mdwn
new file mode 100644
index 0000000..a5af73b
--- /dev/null
+++ b/doc/todo/how_to_restore_from_etckeeper.mdwn
@@ -0,0 +1,9 @@
+Could we get in the README some info about how to restore from etckeeper assuming it's even possible. So say I hose my system. I reinstall everything.  But now I'd like to migrate my old config but keep tracking changes going forward. What I've tried:
+
+1) Renaming /etc breaks sudo
+2) clone over /etc breaks passwd
+3) clone to staging area and then move things over selectively
+
+Is #3 the proper way to restore an /etc
+
+Thanks

add news item for etckeeper 1.18
diff --git a/doc/news/version_1.18.mdwn b/doc/news/version_1.18.mdwn
new file mode 100644
index 0000000..b2a9088
--- /dev/null
+++ b/doc/news/version_1.18.mdwn
@@ -0,0 +1,6 @@
+etckeeper 1.18 released with [[!toggle text="these changes"]]
+[[!toggleable text="""
+   * Send yum pre-commit output to /dev/null
+     Thanks, Andrew Colin Kissa
+   * Set LANG=C internally when doing some operations that have
+     been reported to fail in other locales."""]]
\ No newline at end of file

diff --git a/doc/todo/automatic_git_gc.mdwn b/doc/todo/automatic_git_gc.mdwn
new file mode 100644
index 0000000..1359661
--- /dev/null
+++ b/doc/todo/automatic_git_gc.mdwn
@@ -0,0 +1,4 @@
+Hi
+
+You should add so it runs "git gc" automatic.
+I know I can add it manually but better if its included

diff --git a/doc/todo/Adding_support_for_.hgignore.mdwn b/doc/todo/Adding_support_for_.hgignore.mdwn
index 054bb8d..cb694c7 100644
--- a/doc/todo/Adding_support_for_.hgignore.mdwn
+++ b/doc/todo/Adding_support_for_.hgignore.mdwn
@@ -163,5 +163,14 @@ I only did the hg source part. Using bash arrays could be better, I tried to sta
  	# We don't handle xattrs.
 """]]
 
+I added an init hook for any update, so after cloning to a new location and updating, all permissions are going to be fixed:
+[hooks]
+
+[[!format python """
+# pre-commit hook for etckeeper, to store metadata and do sanity checks
+pre-commit	= etckeeper pre-commit -d "$(hg root)"
+post-update	= etckeeper init "$(hg root)"
+"""]]
+
 Best regards,
 Massimo

diff --git a/doc/todo/Adding_support_for_.hgignore.mdwn b/doc/todo/Adding_support_for_.hgignore.mdwn
index 7d31a47..054bb8d 100644
--- a/doc/todo/Adding_support_for_.hgignore.mdwn
+++ b/doc/todo/Adding_support_for_.hgignore.mdwn
@@ -71,6 +71,97 @@ Since some distros are already considered please integrate the Gentoo package ma
 
 <http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/sys-apps/etckeeper/files/etckeeper-1.15-gentoo.patch>
 
+# There is something missing if only recording uid/gid/mode for tracked files...
+All dirnames of every file must also get the right permissions.
+
+I only did the hg source part. Using bash arrays could be better, I tried to stay sh compatible. This is a quick hack, not completely tested...
+
+[[!format  bash """
+# diff -uNr /root/src/etckeeper/pre-commit.d/30store-metadata /etc/etckeeper/pre-commit.d/30store-metadata 
+--- /root/src/etckeeper/pre-commit.d/30store-metadata	2015-02-20 15:36:24.912374338 +0100
++++ /etc/etckeeper/pre-commit.d/30store-metadata	2015-02-20 15:34:10.770378997 +0100
+@@ -44,6 +44,21 @@
+ 	sed -e "s/'/'\"'\"'/g" -e "s/^/'/" -e "s/$/'/"
+ }
+ 
++getdirname() {
++    # Permissions of all parent dirnames must also be recorded
++    local p
++    # Print the file itself
++    printf '%s' "$p"
++    p=${1%/*}
++    #  Print the files dirnames
++    while [[ $p = */* ]]; do
++        printf ' %s' "$p"
++        p=${p%/*}
++    done
++    #  Print the parent dirname
++    printf ' %s' "$p"
++}
++
+ generate_metadata() {
+ 	# This function generates the script commands to fix any file
+ 	# ownerships that aren't owner=root, group=root, as well as to 
+@@ -57,9 +72,17 @@
+ 	# but we want find to ignore the VCS files themselves.
+ 	# 
+ 	# (Note that when using this, the find expression must end with 
+-	# -print or -exec, else the excluded directories will actually be
+-	# printed!)
+-	NOVCS='. -path ./.git -prune -o -path ./.bzr -prune -o -path ./.hg -prune -o -path ./_darcs -prune -o'
++        # -print or -exec, else the excluded directories will actually be
++        # printed!)
++        if [ "$VCS" = hg ]; then
++            HG_FILES="$(hg status -nacu)"
++            HG_FILES_DIRS=""
++            for file in $HG_FILES; do
++                HG_FILES_DIRS+=" $(getdirname $file)"
++            done
++
++        fi
++	NOVCS="${ALL_FILES:-.} -path ./.git -prune -o -path ./.bzr -prune -o -path ./.hg -prune -o -path ./_darcs -prune -o"
+ 
+ 	# Keep the sort order the same at all times.
+ 	LC_COLLATE=C
+@@ -68,8 +91,9 @@
+ 	if [ "$VCS" = git ] || [ "$VCS" = hg ]; then
+ 		# These version control systems do not track directories,
+ 		# so empty directories must be stored specially.
+-		find $NOVCS -type d -empty -print |
+-			sort | shellquote | sed -e "s/^/mkdir -p /"
++#		find ${ALL_FILES:- } $NOVCS -type d -empty -print |
++#			sort | shellquote | sed -e "s/^/mkdir -p /"
++                true
+ 	fi
+ 
+ 	if [ "$VCS" = darcs ]; then
+@@ -83,7 +107,8 @@
+  
+ 	# Store things that don't have the default user or group.
+ 	# Store all file modes, in case the user has an unusual umask.
+-	find $NOVCS \( -type f -or -type d \) -print | filter_ignore | sort | perl -ne '
++	#find $NOVCS \( -type f -or -type d \) -print | filter_ignore | sort | perl -ne '
++	echo $HG_FILES_DIRS | tr " " "\n" | sort -u | perl -ne '
+ 		BEGIN { $q=chr(39) }
+ 		sub uidname {
+ 			my $want=shift;
+@@ -110,12 +135,12 @@
+ 		s/^/$q/;
+ 		s/$/$q/;
+ 		if ($uid != $>) {
+-			printf "maybe chown $q%s$q %s\n", uidname($uid), $_;
++			printf "maybe chown -c $q%s$q %s\n", uidname($uid), $_;
+ 		}
+ 		if ($gid != $)) {
+-			printf "maybe chgrp $q%s$q %s\n", gidname($gid), $_;
++			printf "maybe chgrp -c $q%s$q %s\n", gidname($gid), $_;
+ 		}
+-		printf "maybe chmod %04o %s\n", $mode & 07777, $_;
++		printf "maybe chmod -c %04o %s\n", $mode & 07777, $_;
+ 	'
+ 
+ 	# We don't handle xattrs.
+"""]]
 
 Best regards,
 Massimo

diff --git a/doc/todo/Adding_support_for_.hgignore.mdwn b/doc/todo/Adding_support_for_.hgignore.mdwn
index a7ee10a..7d31a47 100644
--- a/doc/todo/Adding_support_for_.hgignore.mdwn
+++ b/doc/todo/Adding_support_for_.hgignore.mdwn
@@ -64,3 +64,13 @@ As for 30store-metadata I added hg status -nacu for getting all relevant files:
 +		printf "maybe chmod -c %04o %s\n", $mode & 07777, $_;
  	'
 """]]
+
+Thanks for the new website beside the very basic debian bugtracker. Please provide a bug tracker or ticket system. Please provide also simple tar-balls with the release-versions beside git-tags, that can be used by other package managers and distributions.
+
+Since some distros are already considered please integrate the Gentoo package manager so we can drop our patches:
+
+<http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/sys-apps/etckeeper/files/etckeeper-1.15-gentoo.patch>
+
+
+Best regards,
+Massimo

diff --git a/doc/todo/Adding_support_for_.hgignore.mdwn b/doc/todo/Adding_support_for_.hgignore.mdwn
new file mode 100644
index 0000000..a7ee10a
--- /dev/null
+++ b/doc/todo/Adding_support_for_.hgignore.mdwn
@@ -0,0 +1,66 @@
+Hi, I wrote emails and a bugreport for this issue but never got an answer...
+
+Currently eetckeeper does ignore the .hgignore file. My workflow is like this:
+I have a hgignore to ignore everything and adding files explicitly. There are also exceptions from that where I want to track for new files:
+
+Ignoring everyhing would be:
+    
+    syntax: glob
+    **
+
+With exceptions:
+
+    syntax: regexp
+
+    # Ignore anything in root folder but include .hgignore and special folders:
+    #^(?!.hgignore|data|DATA|NFS|usr(/local(/lib(/site_perl|$)|$)|$)|etc(/init.d(/*.sh$|$)|$))
+    # OR
+    ^(?!boot(/config|$)|etc(/runlevels|$))
+
+The long time problem is that etckeeper tries to scan the whole repo root which is / here because I also track some items in /usr/local or /root. Those find on / take far too long and never come back.
+
+Therefore I dropped pre-commit.d/20warn-problem-files completely since I know which files I added explicitly. I also dropped the search for empty directories because I only add specific files.
+As for 30store-metadata I added hg status -nacu for getting all relevant files:
+
+[[!format  bash """
+--- /root/src/etckeeper/pre-commit.d/30store-metadata	2015-02-19 13:13:46.171485949 +0100
++++ pre-commit.d/30store-metadata	2015-02-19 13:28:01.593456235 +0100
+@@ -59,7 +59,10 @@ generate_metadata() {
+ 	# (Note that when using this, the find expression must end with 
+ 	# -print or -exec, else the excluded directories will actually be
+ 	# printed!)
+-	NOVCS='. -path ./.git -prune -o -path ./.bzr -prune -o -path ./.hg -prune -o -path ./_darcs -prune -o'
++	if [ "$VCS" = hg ]; then
++            HG_FILES="$(hg status -nacu)"
++        fi
++	NOVCS="${HG_FILES:-.} -path ./.git -prune -o -path ./.bzr -prune -o -path ./.hg -prune -o -path ./_darcs -prune -o"
+ 
+ 	# Keep the sort order the same at all times.
+ 	LC_COLLATE=C
+@@ -68,8 +71,9 @@ generate_metadata() {
+ 	if [ "$VCS" = git ] || [ "$VCS" = hg ]; then
+ 		# These version control systems do not track directories,
+ 		# so empty directories must be stored specially.
+-		find $NOVCS -type d -empty -print |
+-			sort | shellquote | sed -e "s/^/mkdir -p /"
++#		find ${HG_FILES:- } $NOVCS -type d -empty -print |
++#			sort | shellquote | sed -e "s/^/mkdir -p /"
++                true
+ 	fi
+ 
+ 	if [ "$VCS" = darcs ]; then
+@@ -110,12 +114,12 @@ generate_metadata() {
+ 		s/^/$q/;
+ 		s/$/$q/;
+ 		if ($uid != $>) {
+-			printf "maybe chown $q%s$q %s\n", uidname($uid), $_;
++			printf "maybe chown -c $q%s$q %s\n", uidname($uid), $_;
+ 		}
+ 		if ($gid != $)) {
+-			printf "maybe chgrp $q%s$q %s\n", gidname($gid), $_;
++			printf "maybe chgrp -c $q%s$q %s\n", gidname($gid), $_;
+ 		}
+-		printf "maybe chmod %04o %s\n", $mode & 07777, $_;
++		printf "maybe chmod -c %04o %s\n", $mode & 07777, $_;
+ 	'
+"""]]

a question I have after reading about etckeepr
diff --git a/doc/todo/what_if_there_is_a_Git_repo_somewhere_underneath___47__etc__63__.mdwn b/doc/todo/what_if_there_is_a_Git_repo_somewhere_underneath___47__etc__63__.mdwn
new file mode 100644
index 0000000..8b1d4a1
--- /dev/null
+++ b/doc/todo/what_if_there_is_a_Git_repo_somewhere_underneath___47__etc__63__.mdwn
@@ -0,0 +1,5 @@
+What will and what could be done if there is a Git repo somewhere underneath /etc?
+
+Perhaps, it could be stored verbatim, or as a submodule.
+
+Simply ignoring it would definitely loose information from the backup.

format
diff --git a/doc/index.mdwn b/doc/index.mdwn
index 7f76bb2..da80eb6 100644
--- a/doc/index.mdwn
+++ b/doc/index.mdwn
@@ -16,7 +16,7 @@ understand the basics of working with version control.
 </html>
 
 [[!sidebar content="""
-[[README]]
+[[README]]  
 [[install]]  
 [[news]]  
 [[todo]]  

update docs
diff --git a/debian/control b/debian/control
index 252b210..59a4d0c 100644
--- a/debian/control
+++ b/debian/control
@@ -5,7 +5,7 @@ Build-Depends: debhelper (>= 7), dpkg-dev (>= 1.9.0), bzr (>= 1.5~), python, dh-
 Maintainer: Debian QA Group <packages@qa.debian.org>
 Standards-Version: 3.9.4
 XS-Python-Version: all
-Vcs-Git: git://git.kitenet.net/etckeeper
+Vcs-Git: git://git.joeyh.name/etckeeper
 Homepage: http://etckeeper.branchable.com/
 
 Package: etckeeper
diff --git a/debian/copyright b/debian/copyright
index cfd479b..78cd5b5 100644
--- a/debian/copyright
+++ b/debian/copyright
@@ -1,7 +1,7 @@
 Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
 
 Files: *
-Copyright: © 2007-2014 Joey Hess <joey@kitenet.net> and contributors
+Copyright: © 2007-2014 Joey Hess <id@joeyh.name> and contributors
 License: GPL-2+
  The full text of the GPL is distributed as doc/GPL in etckeeper's source,
  and is distributed in /usr/share/common-licenses/GPL-2 on Debian systems.
diff --git a/doc/README.mdwn b/doc/README.mdwn
index 33ff4a7..4528eb3 100644
--- a/doc/README.mdwn
+++ b/doc/README.mdwn
@@ -284,4 +284,4 @@ etckeeper is licensed under version 2 or greater of the GNU GPL.
 
 ## author
 
-Joey Hess <joey@kitenet.net>
+Joey Hess <id@joeyh.name>
diff --git a/doc/index.mdwn b/doc/index.mdwn
index 54ad97e..7f76bb2 100644
--- a/doc/index.mdwn
+++ b/doc/index.mdwn
@@ -1,10 +1,22 @@
+etckeeper is a collection of tools to let `/etc` be stored in a git,
+mercurial, bazaar or darcs repository. This lets you use git to review or
+revert changes that were made to `/etc`. Or even push the repository
+elsewhere for backups or cherry-picking configuration changes.
+
+It hooks into package managers like apt to automatically commit changes
+made to /etc during package upgrades. It tracks file metadata that git does
+not normally support, but that is important for /etc, such as the
+permissions of `/etc/shadow`.
+
+It's quite modular and configurable, while also being simple to use if you
+understand the basics of working with version control.
+
 <html>
 <video controls width=400 title="introduction to etckeeper by Francois Marier" src="https://downloads.kitenet.net/videos/etckeeper.ogv"></video>
 </html>
 
-[[!inline raw=yes pages="README"]]
-
 [[!sidebar content="""
+[[README]]
 [[install]]  
 [[news]]  
 [[todo]]  
diff --git a/doc/install.mdwn b/doc/install.mdwn
index 2997373..346082c 100644
--- a/doc/install.mdwn
+++ b/doc/install.mdwn
@@ -1,5 +1,5 @@
-etckeeper is available in git at `git://git.kitenet.net/etckeeper`, or
-[in gitweb](http://git.kitenet.net/?p=etckeeper.git). 
+etckeeper is available in git at `git://git.joeyh.name/etckeeper`, or
+[in gitweb](http://git.joeyh.name/?p=etckeeper.git). 
 
 It's packaged in Debian, Ubuntu, Fedora, etc.
 
diff --git a/etckeeper.8 b/etckeeper.8
index 62ae976..6164351 100644
--- a/etckeeper.8
+++ b/etckeeper.8
@@ -69,4 +69,4 @@ ETCKEEPER_CONF_DIR path to configuration directory instead of default /etc/etcke
 .SH SEE ALSO
 /usr/share/doc/etckeeper/README.md.gz
 .SH AUTHOR 
-Joey Hess <joey@kitenet.net>
+Joey Hess <id@joeyh.name>

apt-get
diff --git a/doc/README.mdwn b/doc/README.mdwn
index c6c774b..33ff4a7 100644
--- a/doc/README.mdwn
+++ b/doc/README.mdwn
@@ -86,6 +86,10 @@ A quick walkthrough of using etckeeper.
 Note that the default VCS is git, and this tutorial assumes you're using
 it. Using other VCSes should be broadly similar. 
 
+First, get etckeeper installed. Something like:
+
+	apt-get install etckeeper
+
 The `etckeeper init` command initialises an /etc/.git/ repository. 
 If you installed etckeeper from a package, this was probably automatically
 performed during the package installation. If not, your first step is to

add etckeeper video clip excerpted from http://mirror.linux.org.au/pub/linux.conf.au/2015/OGGB_260098/Monday/Supporting_Debian_machines_for_friends_and_family.webm
diff --git a/doc/index.mdwn b/doc/index.mdwn
index 35adb47..54ad97e 100644
--- a/doc/index.mdwn
+++ b/doc/index.mdwn
@@ -1,3 +1,7 @@
+<html>
+<video controls width=400 title="introduction to etckeeper by Francois Marier" src="https://downloads.kitenet.net/videos/etckeeper.ogv"></video>
+</html>
+
 [[!inline raw=yes pages="README"]]
 
 [[!sidebar content="""

Added a comment: myrepos
diff --git a/doc/todo/track_multiple_directories/comment_5_bec408cef5932ace7d6d136600827a1f._comment b/doc/todo/track_multiple_directories/comment_5_bec408cef5932ace7d6d136600827a1f._comment
new file mode 100644
index 0000000..5584087
--- /dev/null
+++ b/doc/todo/track_multiple_directories/comment_5_bec408cef5932ace7d6d136600827a1f._comment
@@ -0,0 +1,8 @@
+[[!comment format=mdwn
+ username="https://www.google.com/accounts/o8/id?id=AItOawlCXirWXlbn1_Ma9G5w3KYILEmb75-I9Do"
+ nickname="Salve J."
+ subject="myrepos"
+ date="2014-12-30T16:25:04Z"
+ content="""
+Not familiar with myrepos. Does it have any integration with packaging systems? (e.g. autocommit before apt-get install)
+"""]]

Added a comment: On putting everything in /etc
diff --git a/doc/todo/track_multiple_directories/comment_4_50fad97b58a7f1875092c7acb3f3acd8._comment b/doc/todo/track_multiple_directories/comment_4_50fad97b58a7f1875092c7acb3f3acd8._comment
new file mode 100644
index 0000000..f48b68c
--- /dev/null
+++ b/doc/todo/track_multiple_directories/comment_4_50fad97b58a7f1875092c7acb3f3acd8._comment
@@ -0,0 +1,12 @@
+[[!comment format=mdwn
+ username="https://www.google.com/accounts/o8/id?id=AItOawlCXirWXlbn1_Ma9G5w3KYILEmb75-I9Do"
+ nickname="Salve J."
+ subject="On putting everything in /etc"
+ date="2014-12-30T15:38:19Z"
+ content="""
+Yes, it's *easy* to put everything in /etc. But sometimes it's also *wrong* to do so (eg. for templates, some application-specific config, app localization files, etc.). And sometimes it's not *possible* to do so (eg. for 3rd party applications where we need to keep track of changes). Sometimes I (the dev/admin) have full control of the workflow, other times I don't. There's a LOT of crazy stuff out there (not all in /etc), and having something like etckeeper help keep track of changes would make life a lot easier for people.
+
+But perhaps more importantly, there are people out there (myself included) who would love to use etckeeper in this way, but who would prefer this feature was committed to \"upstream\" (your git repo) instead of having to manage a fork of the project in order to get things done.
+
+I hope you understand.
+"""]]

foo
diff --git a/doc/todo.mdwn b/doc/todo.mdwn
index 81cf3ed..5372bb6 100644
--- a/doc/todo.mdwn
+++ b/doc/todo.mdwn
@@ -1,4 +1,5 @@
-This is etckeeper's todo list. Link items to [[todo/done]] when done.
+This is etckeeper's todo list, for both posting feature requests, and merge
+requests. Link items to [[todo/done]] when done.
 
 See also: [Debian BTS](http://bugs.debian.org/etckeeper).
 

Added a comment: How should we send you new patches?
diff --git a/doc/todo/multiple_highlevel_package_managers/comment_1_be96d2f726ce5c9adabdaf46cd17dcc6._comment b/doc/todo/multiple_highlevel_package_managers/comment_1_be96d2f726ce5c9adabdaf46cd17dcc6._comment
new file mode 100644
index 0000000..0a1932e
--- /dev/null
+++ b/doc/todo/multiple_highlevel_package_managers/comment_1_be96d2f726ce5c9adabdaf46cd17dcc6._comment
@@ -0,0 +1,17 @@
+[[!comment format=mdwn
+ username="https://www.google.com/accounts/o8/id?id=AItOawkZ9t02dAh3YsUhVRJ9uBE4xUt_ZUrDs8s"
+ nickname="さんご"
+ subject="How should we send you new patches?"
+ date="2014-12-24T00:37:10Z"
+ content="""
+I will rewrite the patch of supporting multi highlevel-package-manager.
+
+But, how should we send you new patches?
+
+a) pullrequest on GitHub.
+
+b) the others(????????)
+
+Please tell us.
+
+"""]]

reformat
diff --git a/doc/index.mdwn b/doc/index.mdwn
index 2ae37ff..35adb47 100644
--- a/doc/index.mdwn
+++ b/doc/index.mdwn
@@ -1,8 +1,8 @@
 [[!inline raw=yes pages="README"]]
 
 [[!sidebar content="""
-* [[install]]  
-* [[news]]  
-* [[todo]]  
-* [Flattr this](http://flattr.com/thing/39940/etckeeper)
+[[install]]  
+[[news]]  
+[[todo]]  
+[Flattr this](http://flattr.com/thing/39940/etckeeper)  
 """]]

redo sidebar
diff --git a/doc/index.mdwn b/doc/index.mdwn
index 0783ba5..2ae37ff 100644
--- a/doc/index.mdwn
+++ b/doc/index.mdwn
@@ -1,10 +1,8 @@
 [[!inline raw=yes pages="README"]]
 
 [[!sidebar content="""
-[[Install]]  
-[[News]]  
-[[Todo]]  
-
-<a href="http://flattr.com/thing/39940/etckeeper" target="_blank">
-<img src="http://api.flattr.com/button/button-static-50x60.png" alt="Flattr this" title="Flattr this" border="0" /></a>
+* [[install]]  
+* [[news]]  
+* [[todo]]  
+* [Flattr this](http://flattr.com/thing/39940/etckeeper)
 """]]

Added a comment
diff --git a/doc/todo/track_multiple_directories/comment_3_5e52734a98bff9ccd4cd088cf6a4381d._comment b/doc/todo/track_multiple_directories/comment_3_5e52734a98bff9ccd4cd088cf6a4381d._comment
new file mode 100644
index 0000000..b2ecfea
--- /dev/null
+++ b/doc/todo/track_multiple_directories/comment_3_5e52734a98bff9ccd4cd088cf6a4381d._comment
@@ -0,0 +1,7 @@
+[[!comment format=mdwn
+ username="http://joeyh.name/"
+ subject="comment 3"
+ date="2014-12-23T18:30:15Z"
+ content="""
+It seems to me that it's easy to build a system where all configuration is in /etc. Or, it might make sense to use <http://myrepos.branchable.com/> to manage the non-/etc repositories. 
+"""]]

add
diff --git a/doc/todo/push_remote_branch.mdwn b/doc/todo/push_remote_branch.mdwn
new file mode 100644
index 0000000..a9c35dc
--- /dev/null
+++ b/doc/todo/push_remote_branch.mdwn
@@ -0,0 +1,12 @@
+Several people have written patches to extend `PUSH_REMOTE` to be able to
+push a branch other than master. For example,
+<https://github.com/joeyh/etckeeper/pull/26>
+
+It seems that these are not fully flexible either. Maybe someone wants to
+push 2 branches, or push different branches to different remotes.
+
+I think that adding `PUSH_REMOTE` was a mistake. It would be better to
+remove it, and add to the readme an example of writing your own
+`/etc/etckeeper/commit.d/99push` script that does exactly the kind of
+pushing you want. The only reason I've not done so is it would break
+compatability for anyone using this feature. --[[Joey]]

Added a comment: track multiple directories = good
diff --git a/doc/todo/track_multiple_directories/comment_2_042f7831f641c66396ef38c912692ae3._comment b/doc/todo/track_multiple_directories/comment_2_042f7831f641c66396ef38c912692ae3._comment
new file mode 100644
index 0000000..629c2ce
--- /dev/null
+++ b/doc/todo/track_multiple_directories/comment_2_042f7831f641c66396ef38c912692ae3._comment
@@ -0,0 +1,21 @@
+[[!comment format=mdwn
+ username="https://www.google.com/accounts/o8/id?id=AItOawlCXirWXlbn1_Ma9G5w3KYILEmb75-I9Do"
+ nickname="Salve J."
+ subject="track multiple directories = good"
+ date="2014-12-23T05:26:22Z"
+ content="""
+Allright, here's my use case.
+
+I have some applications i develop, where others now and then update its configurations. These applications may be installed using the packaging system in use on that machine (we make RPM and DEB packages), and that the accompaning \"configuration files\" might include templates, customer configuration files, documentation, and lots of other things that are deemed safe by $bosses to be \"safe for editing\". Some of these files are in /etc, most are not. The important thing is that they are regular text files.I'
+
+I also have some other regular services that have all their important/useful files outside /etc (e.g. our BIND installation, which has their zone files deep in some directory in /usr/local/etc somewhere). I'd like to track changes in those files too, with the useful features etckeeper do so well.
+
+For me, the important thing is to make sure that when someone does something stupid (as people sometimes do, myself included), that we have an easy undo facility to rely on. I think etckeeper would fit this role nicely, because etckeeper helps checking for uncommitted files in lots of useful situations, and does the committing if some of us happen to forget to do it. This means we get to have an \"undo button\" that actually WORKS (since stuff is actually committed!). I like that.
+
+Now, how would this actually be managed by etckeeper? No idea, but I'm happy to help and have a conversation around this. Maybe the best way is to allow for several etckeeper \"instances\" to run independently. Maybe it's a simple feature for defining a list of directories to check...
+
+Hope this gives you an idea of what I tried to do with my pull request at https://github.com/joeyh/etckeeper/pull/2
+
+-- Salve
+
+"""]]