Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package etckeeper for openSUSE:Factory 
checked in at 2024-09-12 16:56:22
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/etckeeper (Old)
 and      /work/SRC/openSUSE:Factory/.etckeeper.new.17570 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "etckeeper"

Thu Sep 12 16:56:22 2024 rev:12 rq:1200140 version:1.18.21

Changes:
--------
--- /work/SRC/openSUSE:Factory/etckeeper/etckeeper.changes      2024-02-21 
18:02:19.272122275 +0100
+++ /work/SRC/openSUSE:Factory/.etckeeper.new.17570/etckeeper.changes   
2024-09-12 16:57:30.087709533 +0200
@@ -1,0 +2,17 @@
+Thu Aug  8 11:16:35 UTC 2024 - ecsos <ec...@opensuse.org>
+
+- Update to 1.18.21
+  - Consistently use mktemp if available, falling back to tempfile
+     otherwise.
+- Changes from 1.18.20
+  - Fix a reversion in etckeeper init in version 1.18.19.
+- Changes from 1.18.19
+  - Added support for Gentoo (emerge, qlist, and cave)
+  - Skip running pre-commit hook inside linked worktrees,
+    to avoid it updating .etckeeper with the permissions of
+    files not in /etc.
+  - commit: Run bzr with --quiet, since it outputs non-errors to
+    stderr. Closes: #1018874
+- Rebase etckeeper-set-package-manager.patch
+
+-------------------------------------------------------------------
@@ -353 +369,0 @@
-

Old:
----
  etckeeper-1.18.18.tar.gz

New:
----
  etckeeper-1.18.21.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ etckeeper.spec ++++++
--- /var/tmp/diff_new_pack.T4WIch/_old  2024-09-12 16:57:33.195838977 +0200
+++ /var/tmp/diff_new_pack.T4WIch/_new  2024-09-12 16:57:33.195838977 +0200
@@ -34,7 +34,7 @@
 %define make_args systemddir=%{_unitdir} PYTHON=%{python_versioned} 
%{python_args}
 
 Name:           etckeeper
-Version:        1.18.18
+Version:        1.18.21
 Release:        0
 Summary:        Store /etc under Version Control
 License:        GPL-2.0-or-later

++++++ etckeeper-1.18.18.tar.gz -> etckeeper-1.18.21.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/etckeeper-1.18.18/CHANGELOG 
new/etckeeper-1.18.21/CHANGELOG
--- old/etckeeper-1.18.18/CHANGELOG     2022-09-08 18:13:15.000000000 +0200
+++ new/etckeeper-1.18.21/CHANGELOG     2023-11-28 19:09:38.000000000 +0100
@@ -1,3 +1,31 @@
+etckeeper (1.18.21) upstream; urgency=medium
+
+  * Consistently use mktemp if available, falling back to tempfile
+    otherwise.
+    Thanks, Adam Dinwoodie
+
+ -- Joey Hess <i...@joeyh.name>  Tue, 28 Nov 2023 14:09:16 -0400
+
+etckeeper (1.18.20) upstream; urgency=medium
+
+  * Fix a reversion in etckeeper init in version 1.18.19.
+    Thanks, Georgy Yakovlev
+
+ -- Joey Hess <i...@joeyh.name>  Wed, 04 Jan 2023 13:23:19 -0400
+
+etckeeper (1.18.19) upstream; urgency=medium
+
+  * Added support for Gentoo (emerge, qlist, and cave)
+    Thanks, Sam James
+  * Skip running pre-commit hook inside linked worktrees,
+    to avoid it updating .etckeeper with the permissions of files
+    not in /etc.
+    Thanks, Håkon Løvdal
+  * commit: Run bzr with --quiet, since it outputs non-errors to stderr.
+    Closes: #1018874
+
+ -- Joey Hess <i...@joeyh.name>  Mon, 02 Jan 2023 14:18:29 -0400
+
 etckeeper (1.18.18) upstream; urgency=medium
 
   * Replace deprecated egrep with grep -E.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/etckeeper-1.18.18/commit.d/50vcs-commit 
new/etckeeper-1.18.21/commit.d/50vcs-commit
--- old/etckeeper-1.18.18/commit.d/50vcs-commit 2022-09-08 18:13:15.000000000 
+0200
+++ new/etckeeper-1.18.21/commit.d/50vcs-commit 2023-11-28 19:09:38.000000000 
+0100
@@ -7,8 +7,17 @@
        fi
 }
 if [ -n "$1" ]; then
+       if command -v mktemp >/dev/null; then
+               tempfile="mktemp -t etckeeper-$VCS.XXXXXXXXXX"
+       elif command -v tempfile >/dev/null; then
+               tempfile="tempfile"
+       else
+               echo "etckeeper warning: can't find tempfile or mktemp" >&2
+               exit 1
+       fi
+
        trap cleanup EXIT
-       logfile="$(mktemp -t etckeeper-$VCS.XXXXXXXXXX)"
+       logfile="$($tempfile)"
        if [ "x$1" = "x--stdin" ]; then
                cat > "$logfile"
        else
@@ -128,7 +137,7 @@
        if [ -n "$logfile" ]; then
                bzr commit $BZR_COMMIT_OPTIONS -F "$logfile"
        else
-               bzr commit $BZR_COMMIT_OPTIONS
+               bzr commit --quiet $BZR_COMMIT_OPTIONS
        fi
 elif [ "$VCS" = darcs ] && [ -d _darcs ]; then
        if [ -z "$USER" ]; then
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/etckeeper-1.18.18/doc/forum/Does_not_create_config/comment_1_295ecd7681224829e833536203269129._comment
 
new/etckeeper-1.18.21/doc/forum/Does_not_create_config/comment_1_295ecd7681224829e833536203269129._comment
--- 
old/etckeeper-1.18.18/doc/forum/Does_not_create_config/comment_1_295ecd7681224829e833536203269129._comment
  2022-09-08 18:13:15.000000000 +0200
+++ 
new/etckeeper-1.18.21/doc/forum/Does_not_create_config/comment_1_295ecd7681224829e833536203269129._comment
  1970-01-01 01:00:00.000000000 +0100
@@ -1,9 +0,0 @@
-[[!comment format=mdwn
- username="katja.decuir@4e7c83f07a1d91a09af5d3eb1c954d7e0f5bae3a"
- nickname="katja.decuir"
- avatar="http://cdn.libravatar.org/avatar/133a3d2faf199a882a1ad990659907a0";
- subject="edit"
- date="2020-07-11T08:51:50Z"
- content="""
-i can't even find a default config to copypaste on google. all those websites 
say \"default is fine\" but i dont even have default and the readme on the 
website isn't helpful
-"""]]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/etckeeper-1.18.18/doc/forum/How_to_submit_pull_requests__63__/comment_1_a1ef90ca5f66af6c35ea66b6c520ddd5._comment
 
new/etckeeper-1.18.21/doc/forum/How_to_submit_pull_requests__63__/comment_1_a1ef90ca5f66af6c35ea66b6c520ddd5._comment
--- 
old/etckeeper-1.18.18/doc/forum/How_to_submit_pull_requests__63__/comment_1_a1ef90ca5f66af6c35ea66b6c520ddd5._comment
       1970-01-01 01:00:00.000000000 +0100
+++ 
new/etckeeper-1.18.21/doc/forum/How_to_submit_pull_requests__63__/comment_1_a1ef90ca5f66af6c35ea66b6c520ddd5._comment
       2023-11-28 19:09:38.000000000 +0100
@@ -0,0 +1,8 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 1"""
+ date="2022-11-16T20:47:32Z"
+ content="""
+Just go to [[todo]] and make a post there, and include the url of the git
+repository and branch to pull.
+"""]]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/etckeeper-1.18.18/doc/forum/How_to_submit_pull_requests__63__.mdwn 
new/etckeeper-1.18.21/doc/forum/How_to_submit_pull_requests__63__.mdwn
--- old/etckeeper-1.18.18/doc/forum/How_to_submit_pull_requests__63__.mdwn      
1970-01-01 01:00:00.000000000 +0100
+++ new/etckeeper-1.18.21/doc/forum/How_to_submit_pull_requests__63__.mdwn      
2023-11-28 19:09:38.000000000 +0100
@@ -0,0 +1 @@
+I have a few improvements that I'd like to submit, do you accept pull requests?
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/etckeeper-1.18.18/doc/forum/How_would_I_rebase_all_commits_older_than_two_weeks__63__/comment_1_f4d51ea1f265f09ebbc37ef9d3242be1._comment
 
new/etckeeper-1.18.21/doc/forum/How_would_I_rebase_all_commits_older_than_two_weeks__63__/comment_1_f4d51ea1f265f09ebbc37ef9d3242be1._comment
--- 
old/etckeeper-1.18.18/doc/forum/How_would_I_rebase_all_commits_older_than_two_weeks__63__/comment_1_f4d51ea1f265f09ebbc37ef9d3242be1._comment
       1970-01-01 01:00:00.000000000 +0100
+++ 
new/etckeeper-1.18.21/doc/forum/How_would_I_rebase_all_commits_older_than_two_weeks__63__/comment_1_f4d51ea1f265f09ebbc37ef9d3242be1._comment
       2023-11-28 19:09:38.000000000 +0100
@@ -0,0 +1,9 @@
+[[!comment format=mdwn
+ username="hlovdal"
+ nickname="kode"
+ avatar="http://cdn.libravatar.org/avatar/e513ee57b6b0d2c0ae8dfa4b9e85f566";
+ subject="This should not be necessary"
+ date="2022-11-27T17:50:02Z"
+ content="""
+Unless you have a super constrained environment like 
[openwrt](https://openwrt.org/) then disk usage of `/etc/.git` is completely 
ignorable (and even so, my openwrt router only uses 2.1Mb for `/etc/.git`, 
initial commit 2016). I checked all my servers and desktops and the largest was 
196Mb on a machine that used to be my main desktop with the repository started 
in 2017.
+"""]]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/etckeeper-1.18.18/doc/forum/Is_there_a_bug_tracker_for_etckeeper___63__/comment_1_33806aefc8706e6db0afec2a9672f3f0._comment
 
new/etckeeper-1.18.21/doc/forum/Is_there_a_bug_tracker_for_etckeeper___63__/comment_1_33806aefc8706e6db0afec2a9672f3f0._comment
--- 
old/etckeeper-1.18.18/doc/forum/Is_there_a_bug_tracker_for_etckeeper___63__/comment_1_33806aefc8706e6db0afec2a9672f3f0._comment
     1970-01-01 01:00:00.000000000 +0100
+++ 
new/etckeeper-1.18.21/doc/forum/Is_there_a_bug_tracker_for_etckeeper___63__/comment_1_33806aefc8706e6db0afec2a9672f3f0._comment
     2023-11-28 19:09:38.000000000 +0100
@@ -0,0 +1,7 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 1"""
+ date="2022-10-04T16:37:11Z"
+ content="""
+See [[todo]].
+"""]]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/etckeeper-1.18.18/doc/forum/Is_there_a_bug_tracker_for_etckeeper___63__/comment_2_67b06a471f9021ec7e4d41cbaeb8b5bd._comment
 
new/etckeeper-1.18.21/doc/forum/Is_there_a_bug_tracker_for_etckeeper___63__/comment_2_67b06a471f9021ec7e4d41cbaeb8b5bd._comment
--- 
old/etckeeper-1.18.18/doc/forum/Is_there_a_bug_tracker_for_etckeeper___63__/comment_2_67b06a471f9021ec7e4d41cbaeb8b5bd._comment
     1970-01-01 01:00:00.000000000 +0100
+++ 
new/etckeeper-1.18.21/doc/forum/Is_there_a_bug_tracker_for_etckeeper___63__/comment_2_67b06a471f9021ec7e4d41cbaeb8b5bd._comment
     2023-11-28 19:09:38.000000000 +0100
@@ -0,0 +1,8 @@
+[[!comment format=mdwn
+ username="jerrythepineapple"
+ avatar="http://cdn.libravatar.org/avatar/d152617d7827ea33fe921456f23a7672";
+ subject="comment 2"
+ date="2022-11-17T22:48:28Z"
+ content="""
+Thanks!!
+"""]]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/etckeeper-1.18.18/doc/forum/Is_there_a_bug_tracker_for_etckeeper___63__.mdwn
 
new/etckeeper-1.18.21/doc/forum/Is_there_a_bug_tracker_for_etckeeper___63__.mdwn
--- 
old/etckeeper-1.18.18/doc/forum/Is_there_a_bug_tracker_for_etckeeper___63__.mdwn
    1970-01-01 01:00:00.000000000 +0100
+++ 
new/etckeeper-1.18.21/doc/forum/Is_there_a_bug_tracker_for_etckeeper___63__.mdwn
    2023-11-28 19:09:38.000000000 +0100
@@ -0,0 +1 @@
+Hi, I'm having trouble finding the bug tracker for etckeeper is there actually 
one ? Thanks.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/etckeeper-1.18.18/doc/forum/Is_there_a_workaround_for_a_git_repository_under___47__etc__63__/comment_1_5eb9fcc0e3384f702da7e188b19c3858._comment
 
new/etckeeper-1.18.21/doc/forum/Is_there_a_workaround_for_a_git_repository_under___47__etc__63__/comment_1_5eb9fcc0e3384f702da7e188b19c3858._comment
--- 
old/etckeeper-1.18.18/doc/forum/Is_there_a_workaround_for_a_git_repository_under___47__etc__63__/comment_1_5eb9fcc0e3384f702da7e188b19c3858._comment
        1970-01-01 01:00:00.000000000 +0100
+++ 
new/etckeeper-1.18.21/doc/forum/Is_there_a_workaround_for_a_git_repository_under___47__etc__63__/comment_1_5eb9fcc0e3384f702da7e188b19c3858._comment
        2023-11-28 19:09:38.000000000 +0100
@@ -0,0 +1,35 @@
+[[!comment format=mdwn
+ username="me_and"
+ avatar="http://cdn.libravatar.org/avatar/f8647c2810c056bbdb8857117708ae3d";
+ subject="comment 1"
+ date="2023-02-23T13:27:23Z"
+ content="""
+What are you trying to achieve here?  I'm not sure what your goal is from the 
question. Would you rather…
+
+- Have etckeeper ignore the `/etc/myrepo` directory entirely
+- Have etckeeper automatically commit changes to `/etc/myrepo` as a submodule, 
then automatically commit submodule changes to the `/etc` repository
+- Have etckeeper not run daily commits at all
+- Something else…
+
+If you _just_ want to disable the non-zero exit status, you can change 
`/etc/etckeeper/commit.d/50vcs-commit` to suppress the exit status.  To do 
that, change the following lines:
+
+```
+        if [ -n \"$logfile\" ]; then
+                git $GIT_GC_OPTIONS commit $GIT_COMMIT_OPTIONS -F \"$logfile\"
+        else
+                git $GIT_GC_OPTIONS commit $GIT_COMMIT_OPTIONS
+        fi
+```
+
+to
+
+```
+        if [ -n \"$logfile\" ]; then
+                git $GIT_GC_OPTIONS commit $GIT_COMMIT_OPTIONS -F \"$logfile\" 
|| :
+        else
+                git $GIT_GC_OPTIONS commit $GIT_COMMIT_OPTIONS || :
+        fi
+```
+
+But all that will do is prevent any errors from being reported, which I 
suspect isn't what you're after! All `etckeeper commit` is doing is running the 
scripts in `/etc/etckeeper/commit`, though, so you should be able to change it 
to do whatever you want just by editing those scripts.
+"""]]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/etckeeper-1.18.18/doc/forum/Is_there_a_workaround_for_a_git_repository_under___47__etc__63__/comment_2_a9d66633132fe5d135499720e0beaaa3._comment
 
new/etckeeper-1.18.21/doc/forum/Is_there_a_workaround_for_a_git_repository_under___47__etc__63__/comment_2_a9d66633132fe5d135499720e0beaaa3._comment
--- 
old/etckeeper-1.18.18/doc/forum/Is_there_a_workaround_for_a_git_repository_under___47__etc__63__/comment_2_a9d66633132fe5d135499720e0beaaa3._comment
        1970-01-01 01:00:00.000000000 +0100
+++ 
new/etckeeper-1.18.21/doc/forum/Is_there_a_workaround_for_a_git_repository_under___47__etc__63__/comment_2_a9d66633132fe5d135499720e0beaaa3._comment
        2023-11-28 19:09:38.000000000 +0100
@@ -0,0 +1,8 @@
+[[!comment format=mdwn
+ username="pulk"
+ avatar="http://cdn.libravatar.org/avatar/3aca97ac14e8c43b9da4a9070d45e443";
+ subject="Comment 2"
+ date="2023-02-28T11:41:37Z"
+ content="""
+Hi! And thanks for the tip. I think I am okay with the first and second option 
(ignore the dir completely or have as submodule) you provided. And I would 
indeed like to know about any other error messages, I do not wish to ignore 
them completely.
+"""]]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/etckeeper-1.18.18/doc/forum/Is_there_a_workaround_for_a_git_repository_under___47__etc__63__/comment_3_39cb7f40edffb43b79fdb275670ffbd9._comment
 
new/etckeeper-1.18.21/doc/forum/Is_there_a_workaround_for_a_git_repository_under___47__etc__63__/comment_3_39cb7f40edffb43b79fdb275670ffbd9._comment
--- 
old/etckeeper-1.18.18/doc/forum/Is_there_a_workaround_for_a_git_repository_under___47__etc__63__/comment_3_39cb7f40edffb43b79fdb275670ffbd9._comment
        1970-01-01 01:00:00.000000000 +0100
+++ 
new/etckeeper-1.18.21/doc/forum/Is_there_a_workaround_for_a_git_repository_under___47__etc__63__/comment_3_39cb7f40edffb43b79fdb275670ffbd9._comment
        2023-11-28 19:09:38.000000000 +0100
@@ -0,0 +1,12 @@
+[[!comment format=mdwn
+ username="me_and"
+ avatar="http://cdn.libravatar.org/avatar/f8647c2810c056bbdb8857117708ae3d";
+ subject="comment 3"
+ date="2023-03-02T20:46:48Z"
+ content="""
+In that case, I'd recommend just having the directory ignored:
+
+```
+sudo sed -i 1i/myrepo /etc/.gitignore
+```
+"""]]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/etckeeper-1.18.18/doc/forum/Is_there_a_workaround_for_a_git_repository_under___47__etc__63__/comment_4_fb987b5a4ea73f83d01536f60f301a1a._comment
 
new/etckeeper-1.18.21/doc/forum/Is_there_a_workaround_for_a_git_repository_under___47__etc__63__/comment_4_fb987b5a4ea73f83d01536f60f301a1a._comment
--- 
old/etckeeper-1.18.18/doc/forum/Is_there_a_workaround_for_a_git_repository_under___47__etc__63__/comment_4_fb987b5a4ea73f83d01536f60f301a1a._comment
        1970-01-01 01:00:00.000000000 +0100
+++ 
new/etckeeper-1.18.21/doc/forum/Is_there_a_workaround_for_a_git_repository_under___47__etc__63__/comment_4_fb987b5a4ea73f83d01536f60f301a1a._comment
        2023-11-28 19:09:38.000000000 +0100
@@ -0,0 +1,16 @@
+[[!comment format=mdwn
+ username="pulk"
+ avatar="http://cdn.libravatar.org/avatar/3aca97ac14e8c43b9da4a9070d45e443";
+ subject="comment 4"
+ date="2023-03-16T14:18:17Z"
+ content="""
+Unfortunately that does not work. I tried all these in /etc/.gitignore:
+     
+     myrepo
+     myrepo/*
+     /myrepo
+     /myrepo/*
+     
+But I still get the error each time.
+
+"""]]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/etckeeper-1.18.18/doc/forum/Is_there_a_workaround_for_a_git_repository_under___47__etc__63__/comment_5_b6a7557835e91cf2e8f362913b6fc6ee._comment
 
new/etckeeper-1.18.21/doc/forum/Is_there_a_workaround_for_a_git_repository_under___47__etc__63__/comment_5_b6a7557835e91cf2e8f362913b6fc6ee._comment
--- 
old/etckeeper-1.18.18/doc/forum/Is_there_a_workaround_for_a_git_repository_under___47__etc__63__/comment_5_b6a7557835e91cf2e8f362913b6fc6ee._comment
        1970-01-01 01:00:00.000000000 +0100
+++ 
new/etckeeper-1.18.21/doc/forum/Is_there_a_workaround_for_a_git_repository_under___47__etc__63__/comment_5_b6a7557835e91cf2e8f362913b6fc6ee._comment
        2023-11-28 19:09:38.000000000 +0100
@@ -0,0 +1,17 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 5"""
+ date="2023-04-21T16:02:43Z"
+ content="""
+Your repo has already been added as a submodule. That's why git commit is
+complaining about it.
+
+If you put it in /etc/.gitignore before `etckeeper commit`,
+it will be ignored from the beginning.
+
+At this point you will need to remove the submodule as well as ignoring it.
+
+I was a little surprised to see etckeeper adding git repos within /etc
+as submodules, but it turns out that `git add --all` or `git add .` do add
+submodules that way.
+"""]]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/etckeeper-1.18.18/doc/forum/Is_there_a_workaround_for_a_git_repository_under___47__etc__63__/comment_6_cc18dab78617cec7efddb8b0450f7f07._comment
 
new/etckeeper-1.18.21/doc/forum/Is_there_a_workaround_for_a_git_repository_under___47__etc__63__/comment_6_cc18dab78617cec7efddb8b0450f7f07._comment
--- 
old/etckeeper-1.18.18/doc/forum/Is_there_a_workaround_for_a_git_repository_under___47__etc__63__/comment_6_cc18dab78617cec7efddb8b0450f7f07._comment
        1970-01-01 01:00:00.000000000 +0100
+++ 
new/etckeeper-1.18.21/doc/forum/Is_there_a_workaround_for_a_git_repository_under___47__etc__63__/comment_6_cc18dab78617cec7efddb8b0450f7f07._comment
        2023-11-28 19:09:38.000000000 +0100
@@ -0,0 +1,8 @@
+[[!comment format=mdwn
+ username="pulk"
+ avatar="http://cdn.libravatar.org/avatar/3aca97ac14e8c43b9da4a9070d45e443";
+ subject="comment 6"
+ date="2023-04-25T05:43:57Z"
+ content="""
+Thanks! That solved the issue. I did not remember that I had previously 
attempted to add it as submodule to workaround the issue.
+"""]]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/etckeeper-1.18.18/doc/forum/Is_there_a_workaround_for_a_git_repository_under___47__etc__63__.mdwn
 
new/etckeeper-1.18.21/doc/forum/Is_there_a_workaround_for_a_git_repository_under___47__etc__63__.mdwn
--- 
old/etckeeper-1.18.18/doc/forum/Is_there_a_workaround_for_a_git_repository_under___47__etc__63__.mdwn
       1970-01-01 01:00:00.000000000 +0100
+++ 
new/etckeeper-1.18.21/doc/forum/Is_there_a_workaround_for_a_git_repository_under___47__etc__63__.mdwn
       2023-11-28 19:09:38.000000000 +0100
@@ -0,0 +1,17 @@
+I did some research and found out that there is no good way to avoid etckeeper 
commit "daily autocommit" exiting with status code other than zero if there is 
a git repository under the /etc hierarchy? This causes the 
/etc/cron.daily/etckeeper to send an e-mail every day with body "run-parts: 
/etc/cron.daily/etckeeper exited with return code 1."
+
+I've attempted to add the repo as git submodule in /etc/.gitmodules and tried 
to add "-path ./myrepo -prune -o" to the NOVCS in 
/etc/etckeeper/pre-commit.d/30store-metadata but neither of these fixed the 
issue.
+
+If I have a git repo in /etc/myrepo:
+
+    # etckeeper commit "daily autocommit"
+    On branch master
+    Changes not staged for commit:
+      (use "git add <file>..." to update what will be committed)
+      (use "git restore <file>..." to discard changes in working directory)
+      (commit or discard the untracked or modified content in submodules)
+           modified:   myrepo (untracked content)
+
+    no changes added to commit (use "git add" and/or "git commit -a")
+    # echo $?
+    1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/etckeeper-1.18.18/doc/forum/List_of_files_or_directories_to_daily_auto_commit_or_commit_before_install.mdwn
 
new/etckeeper-1.18.21/doc/forum/List_of_files_or_directories_to_daily_auto_commit_or_commit_before_install.mdwn
--- 
old/etckeeper-1.18.18/doc/forum/List_of_files_or_directories_to_daily_auto_commit_or_commit_before_install.mdwn
     1970-01-01 01:00:00.000000000 +0100
+++ 
new/etckeeper-1.18.21/doc/forum/List_of_files_or_directories_to_daily_auto_commit_or_commit_before_install.mdwn
     2023-11-28 19:09:38.000000000 +0100
@@ -0,0 +1,5 @@
+Hello,
+
+There is a solution include in etckeeper that allow to create a list of files 
or directories that can be automatically commit even if we desactivate global 
daily autocommit or install before install ?
+
+Regards
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/etckeeper-1.18.18/doc/forum/Prevent_hook_running_during_rebase/comment_1_101f16d09f46b477811b7c864abbc8bb._comment
 
new/etckeeper-1.18.21/doc/forum/Prevent_hook_running_during_rebase/comment_1_101f16d09f46b477811b7c864abbc8bb._comment
--- 
old/etckeeper-1.18.18/doc/forum/Prevent_hook_running_during_rebase/comment_1_101f16d09f46b477811b7c864abbc8bb._comment
      1970-01-01 01:00:00.000000000 +0100
+++ 
new/etckeeper-1.18.21/doc/forum/Prevent_hook_running_during_rebase/comment_1_101f16d09f46b477811b7c864abbc8bb._comment
      2023-11-28 19:09:38.000000000 +0100
@@ -0,0 +1,31 @@
+[[!comment format=mdwn
+ username="hlovdal"
+ nickname="kode"
+ avatar="http://cdn.libravatar.org/avatar/e513ee57b6b0d2c0ae8dfa4b9e85f566";
+ subject="Use git worktree"
+ date="2022-11-27T22:50:32Z"
+ content="""
+While cloning and pulling between repos works, it is as you mentioned a bit 
cumbersome. What works much better is to create a lightweight 
[worktree](https://git-scm.com/docs/git-worktree), e.g. `git worktree add 
/root/etc.worktree main.worktree`. Then `/etc` and `/root/etc.worktree` shares 
all commits and sort of works like instantly synchronised clones. The only 
limitation is that the same branch cannot be checked out in both worktrees (I 
use `main.worktree` as a shadow of `main`).
+
+With that the update scenario will be like
+
+`cd /root/worktree`
+
+`git checkout main.worktree   # Probably default and not needed`
+
+`git merge --ff main # Bring it up to date`
+
+`git rebase --interactive HEAD~10   # Or whatever history modification you 
want to use`
+
+`cd /etc`
+
+Finish with either `git merge main.worktree`
+or `git reset --hard main.worktree   # NB! reset --hard is a command that 
might cause you to loose data if you are not careful.`
+
+I mainly use worktree to painlessly resolve new `*.rpmnew` files which are 
created if a package is updated and a config file update would overwrite some 
custom non-package modification, e.g say for instance you have changed 
`GIT_COMMIT_OPTIONS` in `etckeeper.conf` and a newer version of etckeeper has 
some other update to that config file. If it is the first time I resolve a 
update conflict I create a branch `rpmnew/etckeeper.conf` from a commit right 
before I made the `GIT_COMMIT_OPTIONS` modification (which might have been a 
while ago, so resetting back to that inside /etc would likely be a disaster. 
Inside a linked worktree there is no problem). Then I overwrite 
`/root/etc.worktree/etckeeper/etckeeper.conf` with 
`/etc/etckeeper/etckeeper.conf.rpmnew` and check in. Then the final step is 
`git checkout main.worktree && git merge rpmnew/etckeeper.conf`. This could 
potentially result in merge conflicts, but there are excellent tools like 
[KDiff3](https://kdiff3.sourceforge.net/) to [u
 se for that](https://github.com/hlovdal/git-resolve-conflict-using-kdiff3).
+
+
+The problem with the pre-commit hook still applies in this scenario, but I 
have just [asked for a patch to be applied that will prevent the hook from 
running inside linked 
worktrees](https://etckeeper.branchable.com/todo/Skip_running_pre-commit_hook_inside_linked_worktrees/).
+
+
+"""]]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/etckeeper-1.18.18/doc/forum/check__95__root_test_does_not_work_in_user__95__namespaces.mdwn
 
new/etckeeper-1.18.21/doc/forum/check__95__root_test_does_not_work_in_user__95__namespaces.mdwn
--- 
old/etckeeper-1.18.18/doc/forum/check__95__root_test_does_not_work_in_user__95__namespaces.mdwn
     1970-01-01 01:00:00.000000000 +0100
+++ 
new/etckeeper-1.18.21/doc/forum/check__95__root_test_does_not_work_in_user__95__namespaces.mdwn
     2023-11-28 19:09:38.000000000 +0100
@@ -0,0 +1,7 @@
+when building etckeeper in void linux, which uses user_namespaces(7) to 
chroot, the tests 8 (and sometimes 7) fail.
+see https://github.com/void-linux/void-packages/pull/42192
+and https://github.com/void-linux/void-packages#chroot-methods
+
+this is (likely) due to the check_root test not detecting that the build is 
performed inside a chroot.
+
+any suggestion how one could improve that?
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/etckeeper-1.18.18/doc/forum/git_gc___40__garbage_collection__41___message_triggers_Anacron_mail/comment_1_16b78a25b142a7b9f8cfc52e584a3a22._comment
 
new/etckeeper-1.18.21/doc/forum/git_gc___40__garbage_collection__41___message_triggers_Anacron_mail/comment_1_16b78a25b142a7b9f8cfc52e584a3a22._comment
--- 
old/etckeeper-1.18.18/doc/forum/git_gc___40__garbage_collection__41___message_triggers_Anacron_mail/comment_1_16b78a25b142a7b9f8cfc52e584a3a22._comment
     1970-01-01 01:00:00.000000000 +0100
+++ 
new/etckeeper-1.18.21/doc/forum/git_gc___40__garbage_collection__41___message_triggers_Anacron_mail/comment_1_16b78a25b142a7b9f8cfc52e584a3a22._comment
     2023-11-28 19:09:38.000000000 +0100
@@ -0,0 +1,12 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 1"""
+ date="2023-04-21T16:10:58Z"
+ content="""
+`etckeeper commit` is what the cron job runs. That does not run
+`git gc`.
+
+I don't think a git commit triggers a gc either, normmally.
+
+Have you perhaps added a hook or something that causes the git gc?
+"""]]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/etckeeper-1.18.18/doc/forum/git_gc___40__garbage_collection__41___message_triggers_Anacron_mail.mdwn
 
new/etckeeper-1.18.21/doc/forum/git_gc___40__garbage_collection__41___message_triggers_Anacron_mail.mdwn
--- 
old/etckeeper-1.18.18/doc/forum/git_gc___40__garbage_collection__41___message_triggers_Anacron_mail.mdwn
    1970-01-01 01:00:00.000000000 +0100
+++ 
new/etckeeper-1.18.21/doc/forum/git_gc___40__garbage_collection__41___message_triggers_Anacron_mail.mdwn
    2023-11-28 19:09:38.000000000 +0100
@@ -0,0 +1,19 @@
+Hi there,
+
+I'm using etckeeper 1.18.17 on Ubuntu kinetic (22.10).
+
+Every few days (roughly 4-8 days, the exact frequency varies, probably 
depending on how much I change in /etc) I get a mail from Anacron that has the 
following content:
+
+```
+/etc/cron.daily/etckeeper:
+Auto packing the repository in background for optimum performance.
+See "git help gc" for manual housekeeping.
+```
+
+I guess the automatic garbage collection of git is executed, which prints this 
unimportant bit of information to stdout, thus triggering an e-mail by Anacron.
+
+Since there is no actual problem, we should suppress this output, so that no 
mail will be sent.
+One idea would be to just run 'git gc --auto' on a daily basis, I guess?
+
+Cheers,
+Patrick.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/etckeeper-1.18.18/doc/forum/intended_behavior_of_the_sudo_integration__63__/comment_1_a610753a92db835cdeaf3b870b7c72a5._comment
 
new/etckeeper-1.18.21/doc/forum/intended_behavior_of_the_sudo_integration__63__/comment_1_a610753a92db835cdeaf3b870b7c72a5._comment
--- 
old/etckeeper-1.18.18/doc/forum/intended_behavior_of_the_sudo_integration__63__/comment_1_a610753a92db835cdeaf3b870b7c72a5._comment
 1970-01-01 01:00:00.000000000 +0100
+++ 
new/etckeeper-1.18.21/doc/forum/intended_behavior_of_the_sudo_integration__63__/comment_1_a610753a92db835cdeaf3b870b7c72a5._comment
 2023-11-28 19:09:38.000000000 +0100
@@ -0,0 +1,17 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 1"""
+ date="2023-04-21T15:53:20Z"
+ content="""
+When user.email is not set in the global git config, 
+etckeeper sets `GIT_COMMITTER_EMAIL` to
+
+       `whoami`"@$hostname"
+
+Where $hostname is `hostname` with `dnsdomainname` added as the domain if
+that outputs anything.
+
+It's possible etckeeper could be improved, but I don't have a sufficiently
+broken system to see it fail, so patches or further analysis would be up to
+you.
+"""]]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/etckeeper-1.18.18/doc/forum/intended_behavior_of_the_sudo_integration__63__.mdwn
 
new/etckeeper-1.18.21/doc/forum/intended_behavior_of_the_sudo_integration__63__.mdwn
--- 
old/etckeeper-1.18.18/doc/forum/intended_behavior_of_the_sudo_integration__63__.mdwn
        1970-01-01 01:00:00.000000000 +0100
+++ 
new/etckeeper-1.18.21/doc/forum/intended_behavior_of_the_sudo_integration__63__.mdwn
        2023-11-28 19:09:38.000000000 +0100
@@ -0,0 +1,5 @@
+I noticed that with the `sudo` integration, the author will be set to the
+administrator. However, the commiter is still using the automatically-generated
+email address for root user. The issue is that I still need to set the full 
name
+for that “user”. How about also generating its full name? Or simply use the
+administrator as both author and commiter?
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/etckeeper-1.18.18/doc/forum/move_git_directory_elsewhere__63__/comment_1_1a4787f587c13ec0ce7f59ff52a8ce66._comment
 
new/etckeeper-1.18.21/doc/forum/move_git_directory_elsewhere__63__/comment_1_1a4787f587c13ec0ce7f59ff52a8ce66._comment
--- 
old/etckeeper-1.18.18/doc/forum/move_git_directory_elsewhere__63__/comment_1_1a4787f587c13ec0ce7f59ff52a8ce66._comment
      1970-01-01 01:00:00.000000000 +0100
+++ 
new/etckeeper-1.18.21/doc/forum/move_git_directory_elsewhere__63__/comment_1_1a4787f587c13ec0ce7f59ff52a8ce66._comment
      2023-11-28 19:09:38.000000000 +0100
@@ -0,0 +1,11 @@
+[[!comment format=mdwn
+ 
username="ch-and-etckeeper.branchable.com@6e0ad263d7466ea3783deb474298632f286b1e3e"
+ nickname="ch-and-etckeeper.branchable.com"
+ avatar="http://cdn.libravatar.org/avatar/72e56d8e90557a374d5c1907319b48fc";
+ subject="Yes, it works"
+ date="2023-06-27T18:26:39Z"
+ content="""
+It works!
+
+In hindsight, I probably just should have tested it instead of bothering to 
ask the question, but hey, now you know the answer too!
+"""]]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/etckeeper-1.18.18/doc/forum/move_git_directory_elsewhere__63__.mdwn 
new/etckeeper-1.18.21/doc/forum/move_git_directory_elsewhere__63__.mdwn
--- old/etckeeper-1.18.18/doc/forum/move_git_directory_elsewhere__63__.mdwn     
1970-01-01 01:00:00.000000000 +0100
+++ new/etckeeper-1.18.21/doc/forum/move_git_directory_elsewhere__63__.mdwn     
2023-11-28 19:09:38.000000000 +0100
@@ -0,0 +1,7 @@
+To increase the reliability of our system (it has daily power outages), we've 
made the root partition read-only, and only make it writable when we're making 
a change.
+
+Etckeeper doesn't like it if /etc is read-only, and generates daily emails to 
root about it.
+
+One idea is to move /etc/.git to /var/etckeeper/.git and create a symlink in 
its place; would it work, or is git fussy about that sort of thing?
+
+Thanks
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/etckeeper-1.18.18/doc/news/version_1.18.13.mdwn 
new/etckeeper-1.18.21/doc/news/version_1.18.13.mdwn
--- old/etckeeper-1.18.18/doc/news/version_1.18.13.mdwn 2022-09-08 
18:13:15.000000000 +0200
+++ new/etckeeper-1.18.21/doc/news/version_1.18.13.mdwn 1970-01-01 
01:00:00.000000000 +0100
@@ -1,6 +0,0 @@
-etckeeper 1.18.13 released with [[!toggle text="these changes"]]
-[[!toggleable text="""
-   * Added zsh completion.
-     Thanks, James Rowe
-   * commit: Recent changes added code that does not work on all POSIX shells.
-     Fixed by Thorsten Glaser."""]]
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/etckeeper-1.18.18/doc/news/version_1.18.14.mdwn 
new/etckeeper-1.18.21/doc/news/version_1.18.14.mdwn
--- old/etckeeper-1.18.18/doc/news/version_1.18.14.mdwn 2022-09-08 
18:13:15.000000000 +0200
+++ new/etckeeper-1.18.21/doc/news/version_1.18.14.mdwn 1970-01-01 
01:00:00.000000000 +0100
@@ -1,6 +0,0 @@
-etckeeper 1.18.14 released with [[!toggle text="these changes"]]
-[[!toggleable text="""
-   * pacman 5.2 deprecated File hooks, use Path.
-     Thanks, Christian Hesse
-   * Fix vcs subcommand setup for zsh completion.
-     Thanks, James Rowe."""]]
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/etckeeper-1.18.18/doc/news/version_1.18.15.mdwn 
new/etckeeper-1.18.21/doc/news/version_1.18.15.mdwn
--- old/etckeeper-1.18.18/doc/news/version_1.18.15.mdwn 2022-09-08 
18:13:15.000000000 +0200
+++ new/etckeeper-1.18.21/doc/news/version_1.18.15.mdwn 1970-01-01 
01:00:00.000000000 +0100
@@ -1,14 +0,0 @@
-etckeeper 1.18.15 released with [[!toggle text="these changes"]]
-[[!toggleable text="""  * Use "command -v" rather than "which" to detect 
installed programs,
-    as it is more portable.
-    Thanks, Eli Schwartz.
-  * Improve commit messages generated by package manager changes,
-    listing packages that are responsible for the changed config files.
-    Thanks to emkael for the patch.
-  * If gc.auto is not configured, override the default to make it gc
-    ten times more frequently, to avoid wasting space with loose objects.
-  * update-ignore: Preserve permissions from any preexisting VCS ignore file.
-    Thanks, Austin Chu.
-  * Removed the debian directory from the upstream source package as it's
-    not being maintained; see the debian package for an up-to-date one.
-  * debian/changelog moved to CHANGELOG and debian/copyright to COPYRIGHT."""]]
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/etckeeper-1.18.18/doc/news/version_1.18.18.mdwn 
new/etckeeper-1.18.21/doc/news/version_1.18.18.mdwn
--- old/etckeeper-1.18.18/doc/news/version_1.18.18.mdwn 1970-01-01 
01:00:00.000000000 +0100
+++ new/etckeeper-1.18.21/doc/news/version_1.18.18.mdwn 2023-11-28 
19:09:38.000000000 +0100
@@ -0,0 +1,5 @@
+etckeeper 1.18.18 released with [[!toggle text="these changes"]]
+[[!toggleable text="""  * Replace deprecated egrep with grep -E.
+    Thanks, Sam James
+  * Added support for Void Linux's xbps package manager.
+    Thanks, Zev Weiss."""]]
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/etckeeper-1.18.18/doc/news/version_1.18.19.mdwn 
new/etckeeper-1.18.21/doc/news/version_1.18.19.mdwn
--- old/etckeeper-1.18.18/doc/news/version_1.18.19.mdwn 1970-01-01 
01:00:00.000000000 +0100
+++ new/etckeeper-1.18.21/doc/news/version_1.18.19.mdwn 2023-11-28 
19:09:38.000000000 +0100
@@ -0,0 +1,9 @@
+etckeeper 1.18.19 released with [[!toggle text="these changes"]]
+[[!toggleable text="""  * Added support for Gentoo (emerge, qlist, and cave)
+    Thanks, Sam James
+  * Skip running pre-commit hook inside linked worktrees,
+    to avoid it updating .etckeeper with the permissions of files
+    not in /etc.
+    Thanks, Håkon Løvdal
+  * commit: Run bzr with --quiet, since it outputs non-errors to stderr.
+    Closes: #[1018874](http://bugs.debian.org/1018874)"""]]
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/etckeeper-1.18.18/doc/news/version_1.18.20.mdwn 
new/etckeeper-1.18.21/doc/news/version_1.18.20.mdwn
--- old/etckeeper-1.18.18/doc/news/version_1.18.20.mdwn 1970-01-01 
01:00:00.000000000 +0100
+++ new/etckeeper-1.18.21/doc/news/version_1.18.20.mdwn 2023-11-28 
19:09:38.000000000 +0100
@@ -0,0 +1,3 @@
+etckeeper 1.18.20 released with [[!toggle text="these changes"]]
+[[!toggleable text="""  * Fix a reversion in etckeeper init in version 1.18.19.
+    Thanks, Georgy Yakovlev"""]]
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/etckeeper-1.18.18/doc/todo/50vcs-commit:_add_double_quotes_around_options/comment_1_bece365157ae43694c251ff7866f62f0._comment
 
new/etckeeper-1.18.21/doc/todo/50vcs-commit:_add_double_quotes_around_options/comment_1_bece365157ae43694c251ff7866f62f0._comment
--- 
old/etckeeper-1.18.18/doc/todo/50vcs-commit:_add_double_quotes_around_options/comment_1_bece365157ae43694c251ff7866f62f0._comment
   1970-01-01 01:00:00.000000000 +0100
+++ 
new/etckeeper-1.18.21/doc/todo/50vcs-commit:_add_double_quotes_around_options/comment_1_bece365157ae43694c251ff7866f62f0._comment
   2023-11-28 19:09:38.000000000 +0100
@@ -0,0 +1,8 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 1"""
+ date="2023-06-13T15:01:39Z"
+ content="""
+Wouldn't this break providing multiple space-seperated 
+options in `GIT_COMMIT_OPTIONS`, when it previously worked?
+"""]]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/etckeeper-1.18.18/doc/todo/50vcs-commit:_add_double_quotes_around_options.mdwn
 
new/etckeeper-1.18.21/doc/todo/50vcs-commit:_add_double_quotes_around_options.mdwn
--- 
old/etckeeper-1.18.18/doc/todo/50vcs-commit:_add_double_quotes_around_options.mdwn
  1970-01-01 01:00:00.000000000 +0100
+++ 
new/etckeeper-1.18.21/doc/todo/50vcs-commit:_add_double_quotes_around_options.mdwn
  2023-11-28 19:09:38.000000000 +0100
@@ -0,0 +1,69 @@
+I'm using Arch Linux, and the version number of etckeeper is 1.18.20-2.
+
+Background information: I utilize GitHub to automatically push my /etc 
directory to a repository. However, when etckeeper uses my GitHub account's git 
author information, it affects the contribution graph. Unfortunately, GitHub 
doesn't offer an option to exclude a single repository from the contribution 
graph. As a result, I decided to modify the git author.
+
+Modifying the code directly is not considered good practice. Instead, I chose 
to modify the `/etc/etckeeper/etckeeper.conf` file. After the modification, the 
configuration looks like this:
+
+`GIT_COMMIT_OPTIONS="--author=\"username <username@localhost>\""`
+
+When I execute the `etckeeper commit` command, it displays the following error:
+
+`fatal: --author '"username' is not 'Name <email>' and matches no existing 
author`
+
+Upon inspecting the code, I discovered that the commit.d/50vcs-commit script 
requires fixing. Specifically, double quotes need to be added around 
$GIT_COMMIT_OPTIONS. After including the double quotes, etckeeper functions as 
expected.
+
+I applied the same modification to $HG_COMMIT_OPTIONS, $BZR_COMMIT_OPTIONS, 
and $DARCS_COMMIT_OPTIONS. The resulting patch is provided below:
+
+
+```
+diff --git a/commit.d/50vcs-commit b/commit.d/50vcs-commit
+index a76eb7e..8ac8581 100755
+--- a/commit.d/50vcs-commit
++++ b/commit.d/50vcs-commit
+@@ -109,9 +109,9 @@ if [ "$VCS" = git ] && [ -d .git ]; then
+       fi
+ 
+       if [ -n "$logfile" ]; then
+-              git $GIT_GC_OPTIONS commit $GIT_COMMIT_OPTIONS -F "$logfile"
++              git $GIT_GC_OPTIONS commit "$GIT_COMMIT_OPTIONS" -F "$logfile"
+       else
+-              git $GIT_GC_OPTIONS commit $GIT_COMMIT_OPTIONS
++              git $GIT_GC_OPTIONS commit "$GIT_COMMIT_OPTIONS"
+       fi
+ elif [ "$VCS" = hg ] && [ -d .hg ]; then
+       if [ -n "$USER" ]; then
+@@ -123,9 +123,9 @@ elif [ "$VCS" = hg ] && [ -d .hg ]; then
+               export HGUSER
+       fi
+       if [ -n "$logfile" ]; then
+-              hg commit $HG_COMMIT_OPTIONS -l "$logfile"
++              hg commit "$HG_COMMIT_OPTIONS" -l "$logfile"
+       else
+-              hg commit $HG_COMMIT_OPTIONS
++              hg commit "$HG_COMMIT_OPTIONS"
+       fi
+ elif [ "$VCS" = bzr ] && [ -d .bzr ]; then
+       if [ -z "$EMAIL" ] && [ -n "$USER" ]; then
+@@ -135,17 +135,17 @@ elif [ "$VCS" = bzr ] && [ -d .bzr ]; then
+               bzr whoami >/dev/null 2>&1 || export EMAIL="$ORIG_USER 
<$ORIG_USER@$hostname>"
+       fi
+       if [ -n "$logfile" ]; then
+-              bzr commit $BZR_COMMIT_OPTIONS -F "$logfile"
++              bzr commit "$BZR_COMMIT_OPTIONS" -F "$logfile"
+       else
+-              bzr commit --quiet $BZR_COMMIT_OPTIONS
++              bzr commit --quiet "$BZR_COMMIT_OPTIONS"
+       fi
+ elif [ "$VCS" = darcs ] && [ -d _darcs ]; then
+       if [ -z "$USER" ]; then
+               USER=root
+       fi
+       if [ -n "$logfile" ]; then
+-              darcs record --author="$USER" $DARCS_COMMIT_OPTIONS 
--logfile="$logfile"
++              darcs record --author="$USER" "$DARCS_COMMIT_OPTIONS" 
--logfile="$logfile"
+       else
+-              darcs record --author="$USER" $DARCS_COMMIT_OPTIONS
++              darcs record --author="$USER" "$DARCS_COMMIT_OPTIONS"
+       fi
+ fi
+```
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/etckeeper-1.18.18/doc/todo/Consistent_tempfile_creation.mdwn 
new/etckeeper-1.18.21/doc/todo/Consistent_tempfile_creation.mdwn
--- old/etckeeper-1.18.18/doc/todo/Consistent_tempfile_creation.mdwn    
1970-01-01 01:00:00.000000000 +0100
+++ new/etckeeper-1.18.21/doc/todo/Consistent_tempfile_creation.mdwn    
2023-11-28 19:09:38.000000000 +0100
@@ -0,0 +1,11 @@
+Currently etckeeper has two different mechanisms for creating temporary files. 
 There's no clear reason for that, and it caught me out when I was trying to 
update some of the scripts for my own purposes.
+
+I don't particularly mind how this is resolved, but I'd like it resolved in 
some consistent fashion! I've made two patches for two different resolutions:
+
+- [Allow either `mktemp` or `tempfile` 
everywhere](https://github.com/me-and/etckeeper/commit/96d4da2314ad64147835554371d04372cb4a4612)
 (best for backwards compatibility, as it'll keep working for folk who don't 
have `mktemp`)
+- [Consistently assume `mktemp` is 
available](https://github.com/me-and/etckeeper/commit/3fb703588997590fec4776fb91e3b119ab3f75f9)
 (best for simplicity)
+
+> Thanks, I've applied the first patch. It looks like all the code that
+> assumed mktemp was available only ran when using darcs, so there are
+> presumably systems where mktemp is not available that the second patch
+> would break. [[done]] --[[Joey]]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/etckeeper-1.18.18/doc/todo/Do_not_recreate_ignored_empty_directory/comment_1_3214141a915a102378fc65084cae597a._comment
 
new/etckeeper-1.18.21/doc/todo/Do_not_recreate_ignored_empty_directory/comment_1_3214141a915a102378fc65084cae597a._comment
--- 
old/etckeeper-1.18.18/doc/todo/Do_not_recreate_ignored_empty_directory/comment_1_3214141a915a102378fc65084cae597a._comment
  1970-01-01 01:00:00.000000000 +0100
+++ 
new/etckeeper-1.18.21/doc/todo/Do_not_recreate_ignored_empty_directory/comment_1_3214141a915a102378fc65084cae597a._comment
  2023-11-28 19:09:38.000000000 +0100
@@ -0,0 +1,10 @@
+[[!comment format=mdwn
+ username="anarcat"
+ avatar="http://cdn.libravatar.org/avatar/1bb99a4f017a1d253ad5790c150d0f0b";
+ subject="comment 1"
+ date="2022-11-08T17:27:31Z"
+ content="""
+i'm not sure that's the right way. i think you're right in that `grep -x` 
doesn't do the right thing, but I'm not sure I understand what you're trying to 
do with that extra `sed 's-^///--'` pattern there...
+
+I have proposed another solution which you might be interested in, in 
[[todo/metadata_ignore_filters_do_not_work]], which is basically to stop trying 
to reimplement git-ignore ourselves...
+"""]]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/etckeeper-1.18.18/doc/todo/Pull_request:_Export_key_environment_variables_for_vcs_subcommand/comment_1_43f5a017d6575632d258a57eff429cb3._comment
 
new/etckeeper-1.18.21/doc/todo/Pull_request:_Export_key_environment_variables_for_vcs_subcommand/comment_1_43f5a017d6575632d258a57eff429cb3._comment
--- 
old/etckeeper-1.18.18/doc/todo/Pull_request:_Export_key_environment_variables_for_vcs_subcommand/comment_1_43f5a017d6575632d258a57eff429cb3._comment
        1970-01-01 01:00:00.000000000 +0100
+++ 
new/etckeeper-1.18.21/doc/todo/Pull_request:_Export_key_environment_variables_for_vcs_subcommand/comment_1_43f5a017d6575632d258a57eff429cb3._comment
        2023-11-28 19:09:38.000000000 +0100
@@ -0,0 +1,29 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 1"""
+ date="2023-08-07T17:47:11Z"
+ content="""
+Looking back at [[!commit 65eda73020e0aa6bf15e64106dae955bf17a41dd]], the
+initial idea of `etckeeper vcs` was to run the command in the same
+environment that etckeeper uses. Which it does do for `HOME` and a few
+other things.
+
+So I'm broadly in agreement that this might be a good idea. But copying
+86 lines of quite hairy code is certainly not a maintainable way to do it.
+
+There's also the question of whether a user might be surprised to find
+specific things that happen to be set in the `etckeeper commit` environment
+being set.
+
+Also worth bearing in mind that `etckeeper commit` needs to run
+successfully even if the host doesn't have a hostname configured or in the
+face of other problems that typically prevent git from committing. Because
+it's run by eg apt hooks, and generally is an abstraction layer where the
+user may not be comfortable setting up git. That does not really apply to
+`etckeeper vcs`, and so a certian amount of the code from `etckeeper
+commit` doesn't seem necessary in `etckeeper vcs`.
+
+(Also you have this line that was accidentially left in:
+       echo "Testing; \$USER: $USER"`
+)
+"""]]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/etckeeper-1.18.18/doc/todo/Pull_request:_Export_key_environment_variables_for_vcs_subcommand.mdwn
 
new/etckeeper-1.18.21/doc/todo/Pull_request:_Export_key_environment_variables_for_vcs_subcommand.mdwn
--- 
old/etckeeper-1.18.18/doc/todo/Pull_request:_Export_key_environment_variables_for_vcs_subcommand.mdwn
       1970-01-01 01:00:00.000000000 +0100
+++ 
new/etckeeper-1.18.21/doc/todo/Pull_request:_Export_key_environment_variables_for_vcs_subcommand.mdwn
       2023-11-28 19:09:38.000000000 +0100
@@ -0,0 +1,3 @@
+Currently, the `vcs` subcommand does not export environment variables in the 
same way that the `commit` subcommand does.  It can be useful to have those 
environment variables in some cases, though, such as when you're using git and 
wanting to run a `revert` subcommand (e.g. with `$ sudo etckeeper vcs revert 
$REVISION`), as the `revert` functionality includes committing the reverted 
change.
+
+I submit [this pull 
request](https://github.com/Juanc1to/etckeeper/tree/vcs_export) as a possible 
strategy to implement this: it currently duplicates the environment export 
logic from the `commit` subcommand.  It might make sense to refactor this out 
into some sort of library, but I'm not really familiar enough with shell script 
project conventions (or the maintainer's style goals) to suggest a strategy for 
this.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/etckeeper-1.18.18/doc/todo/Skip_running_pre-commit_hook_inside_linked_worktrees.mdwn
 
new/etckeeper-1.18.21/doc/todo/Skip_running_pre-commit_hook_inside_linked_worktrees.mdwn
--- 
old/etckeeper-1.18.18/doc/todo/Skip_running_pre-commit_hook_inside_linked_worktrees.mdwn
    1970-01-01 01:00:00.000000000 +0100
+++ 
new/etckeeper-1.18.21/doc/todo/Skip_running_pre-commit_hook_inside_linked_worktrees.mdwn
    2023-11-28 19:09:38.000000000 +0100
@@ -0,0 +1,9 @@
+Adding a git [worktree](https://git-scm.com/docs/git-worktree) is a great way 
to being able to change the version history without changing all the other 
files under `/etc` to some arbitrary old version while doing interactive 
rebases etc. With a worktree you can do all the work there and then merge in 
the final result in a clean operation in `/etc` later on.
+
+This could be done by cloning the repository and add it as a remote instead, 
but that is more cumbersome.
+
+However the pre-commit hook messes things up when it is being run inside the 
linked worktree as well. It really should only run in the main worktree.
+
+Could you please merge the 
[worktree](https://github.com/hlovdal/etkeeper/compare/master...worktree) 
branch which contains one commit that adds a check to avoid running the 
pre-commit hook in linked worktrees?
+
+> Good patch, [[done]]! --[[Joey]]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/etckeeper-1.18.18/doc/todo/__91__BUG__93___Arch_Linux:_hooks_don__39__t_trigger_when___47__etc_is_only_modified_by_post-install_scripts./comment_1_2e5c41b9d32669974703285279c05784._comment
 
new/etckeeper-1.18.21/doc/todo/__91__BUG__93___Arch_Linux:_hooks_don__39__t_trigger_when___47__etc_is_only_modified_by_post-install_scripts./comment_1_2e5c41b9d32669974703285279c05784._comment
--- 
old/etckeeper-1.18.18/doc/todo/__91__BUG__93___Arch_Linux:_hooks_don__39__t_trigger_when___47__etc_is_only_modified_by_post-install_scripts./comment_1_2e5c41b9d32669974703285279c05784._comment
    1970-01-01 01:00:00.000000000 +0100
+++ 
new/etckeeper-1.18.21/doc/todo/__91__BUG__93___Arch_Linux:_hooks_don__39__t_trigger_when___47__etc_is_only_modified_by_post-install_scripts./comment_1_2e5c41b9d32669974703285279c05784._comment
    2023-11-28 19:09:38.000000000 +0100
@@ -0,0 +1,8 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 1"""
+ date="2022-12-14T18:02:09Z"
+ content="""
+Since I'm not in a position to test this myself, it would be great if you
+could develop a patch, test it, and send the patch.
+"""]]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/etckeeper-1.18.18/doc/todo/__91__BUG__93___Arch_Linux:_hooks_don__39__t_trigger_when___47__etc_is_only_modified_by_post-install_scripts..mdwn
 
new/etckeeper-1.18.21/doc/todo/__91__BUG__93___Arch_Linux:_hooks_don__39__t_trigger_when___47__etc_is_only_modified_by_post-install_scripts..mdwn
--- 
old/etckeeper-1.18.18/doc/todo/__91__BUG__93___Arch_Linux:_hooks_don__39__t_trigger_when___47__etc_is_only_modified_by_post-install_scripts..mdwn
   1970-01-01 01:00:00.000000000 +0100
+++ 
new/etckeeper-1.18.21/doc/todo/__91__BUG__93___Arch_Linux:_hooks_don__39__t_trigger_when___47__etc_is_only_modified_by_post-install_scripts..mdwn
   2023-11-28 19:09:38.000000000 +0100
@@ -0,0 +1,21 @@
+The pacman hooks that etckeeper use only trigger if a package changes a file 
in /etc. This breaks when a package only changes /etc in it's post-install 
script.
+
+An example of this is archlinux-keyring, which runs a post install script to 
update the gpg trust db in /etc/pacman.
+
+The solution is to change the hooks to always run. Instead of:
+
+```
+Type = Path
+Target = etc/*
+```
+
+use something like:
+
+```
+Type = Package
+Target = *
+```
+
+At least when using git, `etckeeper pre-install` and `etckeeper post-install` 
are quick enough on my computer that running when not needed is not a big deal.
+
+Here is the Arch Linux bug about this: https://bugs.archlinux.org/task/76826
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/etckeeper-1.18.18/doc/todo/metadata_ignore_filters_do_not_work/comment_1_a0a00282ce442b3b485d0c3b6f1a8b32._comment
 
new/etckeeper-1.18.21/doc/todo/metadata_ignore_filters_do_not_work/comment_1_a0a00282ce442b3b485d0c3b6f1a8b32._comment
--- 
old/etckeeper-1.18.18/doc/todo/metadata_ignore_filters_do_not_work/comment_1_a0a00282ce442b3b485d0c3b6f1a8b32._comment
      1970-01-01 01:00:00.000000000 +0100
+++ 
new/etckeeper-1.18.21/doc/todo/metadata_ignore_filters_do_not_work/comment_1_a0a00282ce442b3b485d0c3b6f1a8b32._comment
      2023-11-28 19:09:38.000000000 +0100
@@ -0,0 +1,16 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 1"""
+ date="2022-11-08T18:11:53Z"
+ content="""
+You have misunderstood (and oddly, misquoted) the code.
+
+30store-metadata already uses `git ls-files -oi --exclude-standard` to list
+gitignored files. The use of grep is only to search through the resulting
+list of ignored files, to find an exact match for a filename.. That is
+indeed inefficient when there are a lot of ignored files. But it matches
+ignored files correctly.
+
+(30store-metadata does grep .darcsignore, I don't know if that is a good
+idea.)
+"""]]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/etckeeper-1.18.18/doc/todo/metadata_ignore_filters_do_not_work/comment_2_23349351fd7f424bfd3073136a6f606c._comment
 
new/etckeeper-1.18.21/doc/todo/metadata_ignore_filters_do_not_work/comment_2_23349351fd7f424bfd3073136a6f606c._comment
--- 
old/etckeeper-1.18.18/doc/todo/metadata_ignore_filters_do_not_work/comment_2_23349351fd7f424bfd3073136a6f606c._comment
      1970-01-01 01:00:00.000000000 +0100
+++ 
new/etckeeper-1.18.21/doc/todo/metadata_ignore_filters_do_not_work/comment_2_23349351fd7f424bfd3073136a6f606c._comment
      2023-11-28 19:09:38.000000000 +0100
@@ -0,0 +1,18 @@
+[[!comment format=mdwn
+ username="anarcat"
+ avatar="http://cdn.libravatar.org/avatar/1bb99a4f017a1d253ad5790c150d0f0b";
+ subject="comment 2"
+ date="2022-11-15T17:49:48Z"
+ content="""
+> You have misunderstood (and oddly, misquoted) the code.
+>
+> 30store-metadata already uses git ls-files -oi --exclude-standard to list 
gitignored files. The use of grep is only to search through the resulting list 
of ignored files, to find an exact match for a filename.. That is indeed 
inefficient when there are a lot of ignored files. But it matches ignored files 
correctly.
+
+But why do we list *all* the ignored files in the metadata store? Shouldn't we 
store data only about files tracked with git?
+
+Maybe you are correct and I do not understand the purpose of this code, I 
thought the point of the metadata store was to restore modes when checking out 
files, and therefore that adding ignored files in there was not necessary.
+
+> (30store-metadata does grep .darcsignore, I don't know if that is a good 
idea.)
+
+that, i cannot say. i haven't used darcs in ages.
+"""]]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/etckeeper-1.18.18/doc/todo/metadata_ignore_filters_do_not_work/comment_3_eff7bec1a6b87cc6c2546d181ce8296e._comment
 
new/etckeeper-1.18.21/doc/todo/metadata_ignore_filters_do_not_work/comment_3_eff7bec1a6b87cc6c2546d181ce8296e._comment
--- 
old/etckeeper-1.18.18/doc/todo/metadata_ignore_filters_do_not_work/comment_3_eff7bec1a6b87cc6c2546d181ce8296e._comment
      1970-01-01 01:00:00.000000000 +0100
+++ 
new/etckeeper-1.18.21/doc/todo/metadata_ignore_filters_do_not_work/comment_3_eff7bec1a6b87cc6c2546d181ce8296e._comment
      2023-11-28 19:09:38.000000000 +0100
@@ -0,0 +1,26 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 3"""
+ date="2022-11-16T17:15:50Z"
+ content="""
+> But why do we list _all_ the ignored files in the metadata store?
+
+It doesn't. This code is what filters those ignored files out of the ones
+that are included. It's easy to show it works:
+
+       root@darkstar:~>grep mtab /etc/.gitignore
+       mtab
+       mtab.fuselock
+       root@darkstar:~>ls /etc/mtab
+       /etc/mtab@
+       root@darkstar:~>grep mtab /etc/.etckeeper
+       - exit 1
+       root@darkstar:~>grep adjtime /etc/.gitignore 
+       adjtime
+       root@darkstar:~>ls /etc/adjtime 
+       /etc/adjtime
+       root@darkstar:~>grep adjtime /etc/.etckeeper 
+       - exit 1
+
+You have not yet given an example of it not working.
+"""]]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/etckeeper-1.18.18/doc/todo/metadata_ignore_filters_do_not_work/comment_4_dc188a789e1b40158b14a88d7d088ee2._comment
 
new/etckeeper-1.18.21/doc/todo/metadata_ignore_filters_do_not_work/comment_4_dc188a789e1b40158b14a88d7d088ee2._comment
--- 
old/etckeeper-1.18.18/doc/todo/metadata_ignore_filters_do_not_work/comment_4_dc188a789e1b40158b14a88d7d088ee2._comment
      1970-01-01 01:00:00.000000000 +0100
+++ 
new/etckeeper-1.18.21/doc/todo/metadata_ignore_filters_do_not_work/comment_4_dc188a789e1b40158b14a88d7d088ee2._comment
      2023-11-28 19:09:38.000000000 +0100
@@ -0,0 +1,54 @@
+[[!comment format=mdwn
+ username="anarcat"
+ avatar="http://cdn.libravatar.org/avatar/1bb99a4f017a1d253ad5790c150d0f0b";
+ subject="some examples"
+ date="2022-11-23T16:32:38Z"
+ content="""
+here's an example, from my workstation, which has a similar configuration to 
the server i was working on for this:
+
+    root@curie:/etc# grep puppet/code/production .gitignore .etckeeper 
+    .gitignore:puppet/code/production
+    .etckeeper:mkdir -p './puppet/code/production'
+    .etckeeper:maybe chown 'puppet' 'puppet/code/production'
+    .etckeeper:maybe chgrp 'puppet' 'puppet/code/production'
+    .etckeeper:maybe chmod 0750 'puppet/code/production'
+    root@curie:/etc# ls -al puppet/code/production/
+    total 18
+    drwxr-x--- 2 puppet puppet 2 30 jun  2020 .
+    drwxr-xr-x 3 root   root   3 30 jun  2020 ..
+
+here you see the empty directory is managed in .etckeeper even though it's 
ignored.
+
+i thought i provided clearer examples of this in the original article, but i 
guess it wasn't very explicit... here's an example:
+
+right now, if i revert the changes I made to 
`etckeeper/pre-commit.d/30store-metadata`, and run the hook:
+
+    VCS=git /etc/etckeeper/pre-commit.d/30store-metadata
+
+... i get this:
+
+    root@marcos:/etc# grep puppet/code/production .gitignore 
+    puppet/code/production
+    root@marcos:/etc# grep -c puppet/code/production .etckeeper 
+    87
+
+it's mostly empty directories, but there's also other stuff:
+
+    root@marcos:/etc# grep puppet/code/production .etckeeper | head -3
+    mkdir -p 
'./puppet/code/production/.g10k/CraigWatson1987-transmission-2.2.1/spec/fixtures'
+    mkdir -p 
'./puppet/code/production/.g10k/duritong-sysctl-0.0.12/spec/fixtures/manifests'
+    mkdir -p 
'./puppet/code/production/.g10k/duritong-sysctl-0.0.12/spec/fixtures/modules/sysctl'
+    root@marcos:/etc# grep puppet/code/production .etckeeper | tail -3
+    mkdir -p './puppet/code/production/modules/inifile/locales/ja'
+    maybe chown 'anarcat' 'puppet/code/production'
+    maybe chmod 0755 'puppet/code/production'
+
+with the patch, it looks like this instead:
+
+    root@marcos:/etc# grep puppet/code/production .gitignore 
+    puppet/code/production
+    root@marcos:/etc# grep -c puppet/code/production .etckeeper 
+    0
+
+the patch proposed here, together with the one on 
[[todo/metadata_ignore_filters_do_not_work]] improve etckeeper performance 
tremendously in my case.
+"""]]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/etckeeper-1.18.18/doc/todo/metadata_ignore_filters_do_not_work/comment_5_e43de8fe580d3f6884cc7b94c52e0a5b._comment
 
new/etckeeper-1.18.21/doc/todo/metadata_ignore_filters_do_not_work/comment_5_e43de8fe580d3f6884cc7b94c52e0a5b._comment
--- 
old/etckeeper-1.18.18/doc/todo/metadata_ignore_filters_do_not_work/comment_5_e43de8fe580d3f6884cc7b94c52e0a5b._comment
      1970-01-01 01:00:00.000000000 +0100
+++ 
new/etckeeper-1.18.21/doc/todo/metadata_ignore_filters_do_not_work/comment_5_e43de8fe580d3f6884cc7b94c52e0a5b._comment
      2023-11-28 19:09:38.000000000 +0100
@@ -0,0 +1,8 @@
+[[!comment format=mdwn
+ username="anarcat"
+ avatar="http://cdn.libravatar.org/avatar/1bb99a4f017a1d253ad5790c150d0f0b";
+ subject="comment 5"
+ date="2022-11-23T16:33:06Z"
+ content="""
+argh, i meant [[todo/optimize_mode_metadata:_ignore_defaults]]...
+"""]]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/etckeeper-1.18.18/doc/todo/metadata_ignore_filters_do_not_work.mdwn 
new/etckeeper-1.18.21/doc/todo/metadata_ignore_filters_do_not_work.mdwn
--- old/etckeeper-1.18.18/doc/todo/metadata_ignore_filters_do_not_work.mdwn     
1970-01-01 01:00:00.000000000 +0100
+++ new/etckeeper-1.18.21/doc/todo/metadata_ignore_filters_do_not_work.mdwn     
2023-11-28 19:09:38.000000000 +0100
@@ -0,0 +1,61 @@
+I'm seeing numerous performance problems with etckeeper on my servers. It 
generally happens when there is a git repository underneath `/etc` or some 
other thing that generates lots of small files. Typically, what I try next is 
to make git ignore those files, which works for the git side of things, but not 
for the etckeeper side of things, as all those files still get listed (and 
parsed) by etckeeper's `.etckeeper` metadata file.
+
+The problem here is the metadata "ignore" filter doesn't really work. We can 
see this in multiple different bug reports here, like 
[[todo/etkeeper_warning_about_hardlinks_doesn__39__t_exclude_ignored_files]], 
[[todo/Do_not_recreate_ignored_empty_directory]], or 
[[todo/what_if_there_is_a_Git_repo_somewhere_underneath___47__etc__63__/]]. I 
think the approach taken to solve this problem is incorrect, which is why I am 
opening this issue to regroup all of them in one single place.
+
+From what I can tell, the `30store-metadata` script tries to ignore files 
ignored by git. But it tries to do that using `grep`, and git ignore files are 
not `grep` patterns at all. In fact, they're not even regular expressions, they 
are like glob patterns, but with many different exceptions (like `!` to negate 
a pattern, for example). I do not think there is a command that can faithfully 
reproduce this outside of git itself.
+
+Right now, we basically do this:
+
+ 1. list all empty directories, and add them to the metadata, regardless of 
gitignore (which is [[todo/Do_not_recreate_ignored_empty_directory]])
+ 2. then list all files and directories (empty or not), try to filter out 
ignored files, and try to ignore normal modes, which means:
+    1. `find $NOVCS \( -type f -or -type d \)` (basically skips `.git` and 
friends)
+    2. `sed 's/^\.\///' | grep -xFvf $(git ls-files -oi --exclude-standard; 
git ls-files -oi --exclude-standard --directory | sort -u)`
+    3. some inline perl script which actually systematically chmods all files, 
and optionally changes the owner and group if they are not the EUID/EGID
+
+Now, the problem that concerns us here is mostly in step 2.2 above. That 
`grep` command is bad for many reasons, but the first of which is `-x`: that 
will do a full match on the entire line so if you have, say, `puppet` in your 
`.gitignore` that will match the `puppet` directory, but nothing *underneath*, 
which is not how gitignore files work *at all*.
+
+I think the proper way to do this is to actually start from files git actually 
tracks, since in that step, we're trying to keep track of modes and owners of 
actual files managed by git. It seems to me much better to make git list the 
files, then process *that*, than try to reimplement git-ignore outside of git.
+
+I think the pseudocode then would be something like, for the git case:
+
+ 1. `git ls-files | sort -u | maybe_chmod_chown`
+ 2. `git ls-files --others --exclude-standard --directory | sed -e "s/^/mkdir 
-p /"`
+
+... and that's it! The trick here is we separate the normal file tracking 
(first step) from the empty directory listing (second step). I haven't actually 
tested this because I'm out of battery in that third yak razor, but I wanted to 
brainstorm this here first to see if we could somehow make sense of this.
+
+(Also, I don't think that the `maybe_chmod_chown` script should systematically 
change the mode on files, but that's a different story (and optimization)...)
+
+-- [[anarcat]]
+
+Update: and I think the patch is [something like 
this](https://salsa.debian.org/debian/etckeeper/-/commit/0a4305886c6e9501eec223880fa9ae8776b4947e)
 (see 
[branch](https://salsa.debian.org/debian/etckeeper/-/commits/new-git-ignores) 
for latest. it doesn't *quite* work the way I expected, unfortunately. a few 
examples:
+
+[[!format diff """
+diff --git a/.etckeeper b/.etckeeper
+index 71fb3188..8b34a087 100755
+--- a/.etckeeper
++++ b/.etckeeper
+@@ -3,34 +3,28 @@
+ mkdir -p './ImageMagick'
+ mkdir -p './X11/xkb'
+ mkdir -p './X11/xorg.conf.d'
+-mkdir -p './apm/event.d'
+-mkdir -p './apm/scripts.d'
++mkdir -p './apm'
+[...]
+"""]]
+
+in the above example, you see that `apm` is correctly added but not the 
underlying `events.d` and `scripts.d`...
+
+it *does* correctly follow ignores for most stuff however, which is an 
improvement. I did have to bend over backwards to remove symlinks from the 
listing, with that ungodly `sed`. and, in general, we have quoting problems 
here because we pipe filenames that might have newlines in them... thankfully, 
we might consider `/etc` trusted, but that's something that makes me 
uncomfortable about this whole thing in the first place...
+
+here at least, a bunch of stuff is cleaned up:
+
+[[!format txt """
+root@marcos:/etc# git diff --cached --stat
+ .etckeeper | 636 
++++------------------------------------------------------------------------------------------------------------------------------------------------
+ 1 file changed, 17 insertions(+), 619 deletions(-)
+root@marcos:/etc# wc -l .etckeeper
+7419 .etckeeper
+"""]]
+
+Anyways, let me know what you think. The main tradeoff here is that we lose 
empty subdirectories, which maybe is a big deal, but for my use cases, I don't 
expect etckeeper to recover everything like this, that's what backups are for. 
;)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/etckeeper-1.18.18/doc/todo/optimize_mode_metadata:_ignore_defaults/comment_1_bd12401aec0d25d31e2cb260389cb98e._comment
 
new/etckeeper-1.18.21/doc/todo/optimize_mode_metadata:_ignore_defaults/comment_1_bd12401aec0d25d31e2cb260389cb98e._comment
--- 
old/etckeeper-1.18.18/doc/todo/optimize_mode_metadata:_ignore_defaults/comment_1_bd12401aec0d25d31e2cb260389cb98e._comment
  1970-01-01 01:00:00.000000000 +0100
+++ 
new/etckeeper-1.18.21/doc/todo/optimize_mode_metadata:_ignore_defaults/comment_1_bd12401aec0d25d31e2cb260389cb98e._comment
  2023-11-28 19:09:38.000000000 +0100
@@ -0,0 +1,8 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 1"""
+ date="2022-11-08T18:49:10Z"
+ content="""
+You are assuming that root has a umask of 022. With other umasks, git uses
+other modes.
+"""]]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/etckeeper-1.18.18/doc/todo/optimize_mode_metadata:_ignore_defaults/comment_2_fb6294e6d3d04eb26609aca0163d0720._comment
 
new/etckeeper-1.18.21/doc/todo/optimize_mode_metadata:_ignore_defaults/comment_2_fb6294e6d3d04eb26609aca0163d0720._comment
--- 
old/etckeeper-1.18.18/doc/todo/optimize_mode_metadata:_ignore_defaults/comment_2_fb6294e6d3d04eb26609aca0163d0720._comment
  1970-01-01 01:00:00.000000000 +0100
+++ 
new/etckeeper-1.18.21/doc/todo/optimize_mode_metadata:_ignore_defaults/comment_2_fb6294e6d3d04eb26609aca0163d0720._comment
  2023-11-28 19:09:38.000000000 +0100
@@ -0,0 +1,8 @@
+[[!comment format=mdwn
+ username="anarcat"
+ avatar="http://cdn.libravatar.org/avatar/1bb99a4f017a1d253ad5790c150d0f0b";
+ subject="comment 2"
+ date="2022-11-15T17:50:17Z"
+ content="""
+sure, parsing umask is a possible improvement to this patch.
+"""]]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/etckeeper-1.18.18/doc/todo/optimize_mode_metadata:_ignore_defaults.mdwn 
new/etckeeper-1.18.21/doc/todo/optimize_mode_metadata:_ignore_defaults.mdwn
--- old/etckeeper-1.18.18/doc/todo/optimize_mode_metadata:_ignore_defaults.mdwn 
1970-01-01 01:00:00.000000000 +0100
+++ new/etckeeper-1.18.21/doc/todo/optimize_mode_metadata:_ignore_defaults.mdwn 
2023-11-28 19:09:38.000000000 +0100
@@ -0,0 +1,51 @@
+here's another idea: why do we store metadata for files that have "default" 
modes (as understood by git) like `0755` (for directories) or `0644` (for 
files)? This seems like a huge waste of time and something that grows the 
`.etckeeper` metadata file needlessly.
+
+I believe the following patch would improve things quite a bit:
+
+[[!format diff """
+modified   pre-commit.d/30store-metadata
+@@ -92,7 +92,9 @@ maybe_chmod_chown() {
+                       if ($gid != $)) {
+                               printf "maybe chgrp $q%s$q %s\n", 
gidname($gid), $_;
+                       }
+-                      printf "maybe chmod %04o %s\n", $mode & 07777, $_;
++                      if ($mode != 0100644 and $mode != 040755) {
++                              printf "maybe chmod %04o %s\n", $mode & 07777, 
$_;
++                      }
+               '
+               return $?
+       else
+
+"""]]
+
+See also [this 
commit](https://salsa.debian.org/debian/etckeeper/-/commit/73fccbde9c30156209362d74811e04dd12de9106)
 which is the current HEAD of [my optimize-default-metadata 
branch](https://salsa.debian.org/debian/etckeeper/-/commits/optimize-default-metadata).
+
+In my messy home server, this gives me that resulting diff:
+
+[[!format txt """
+root@marcos:/etc# git diff --cached --stat
+ .etckeeper | 10231 
--------------------------------------------------------------------------------------------------------------------------------------------------
+ 1 file changed, 10231 deletions(-)
+"""]]
+
+yes, you read that right, that's 10 *thousand* files cleaned up. and yes, it 
seems like i have over 20,000 files in /etc. yikes. (it's mostly because this 
is a puppet server and there's lots of git repos under there, and cache files. 
and yes, those are in the .gitignore and shouldn't even be in the `.etckeeper` 
file in the first place, but that's a different story, see 
[[todo/metadata_ignore_filters_do_not_work]].
+
+before this and the git ignore patch:
+
+[[!format txt """
+root@marcos:/etc# VCS=git time sh  
/home/anarcat/src/etckeeper/pre-commit.d/30store-metadata
+0.22user 0.13system 0:00.34elapsed 104%CPU (0avgtext+0avgdata 
11500maxresident)k
+0inputs+12088outputs (0major+4497minor)pagefaults 0swaps
+"""]]
+
+after:
+
+[[!format txt """
+root@marcos:/etc# VCS=git  time sh /etc/etckeeper/pre-commit.d/30store-metadata
+0.07user 0.02system 0:00.09elapsed 106%CPU (0avgtext+0avgdata 7748maxresident)k
+0inputs+2080outputs (0major+3287minor)pagefaults 0swaps
+"""]]
+
+it doesn't look like much, but that's a 10-fold improvement. and it doesn't 
count the time it takes to actually do the commit, which I haven't benchmarked, 
but it takes a few *seconds* to commit before the change, and a few miliseconds 
after.
+
+so anyways, i figured that would be a worthwhile optimisation! :) --[[anarcat]]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/etckeeper-1.18.18/doc/todo/what_if_there_is_a_Git_repo_somewhere_underneath___47__etc__63__/comment_3_f3618a15792640feef3f055ac108e940._comment
 
new/etckeeper-1.18.21/doc/todo/what_if_there_is_a_Git_repo_somewhere_underneath___47__etc__63__/comment_3_f3618a15792640feef3f055ac108e940._comment
--- 
old/etckeeper-1.18.18/doc/todo/what_if_there_is_a_Git_repo_somewhere_underneath___47__etc__63__/comment_3_f3618a15792640feef3f055ac108e940._comment
 1970-01-01 01:00:00.000000000 +0100
+++ 
new/etckeeper-1.18.21/doc/todo/what_if_there_is_a_Git_repo_somewhere_underneath___47__etc__63__/comment_3_f3618a15792640feef3f055ac108e940._comment
 2023-11-28 19:09:38.000000000 +0100
@@ -0,0 +1,8 @@
+[[!comment format=mdwn
+ username="anarcat"
+ avatar="http://cdn.libravatar.org/avatar/1bb99a4f017a1d253ad5790c150d0f0b";
+ subject="comment 3"
+ date="2022-11-08T17:25:58Z"
+ content="""
+i think the proper solution here is to stop trying to replace gitignore with 
our own implementation and defer everything to `git-ls-files`. i lay out that 
idea in [[todo/metadata_ignore_filters_do_not_work]] and would very much 
welcome feedback on that.
+"""]]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/etckeeper-1.18.18/etckeeper 
new/etckeeper-1.18.21/etckeeper
--- old/etckeeper-1.18.18/etckeeper     2022-09-08 18:13:15.000000000 +0200
+++ new/etckeeper-1.18.21/etckeeper     2023-11-28 19:09:38.000000000 +0100
@@ -71,7 +71,7 @@
        exit 0
 elif [ "x$1" = "x-v" ] || [ "x$1" = "x--version" ]; then
        # This is automatically updated by the Makefile.
-       echo "Version: 1.18.18"
+       echo "Version: 1.18.21"
        exit 0
 fi
 command="$1"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/etckeeper-1.18.18/etckeeper.conf 
new/etckeeper-1.18.21/etckeeper.conf
--- old/etckeeper-1.18.18/etckeeper.conf        2022-09-08 18:13:15.000000000 
+0200
+++ new/etckeeper-1.18.21/etckeeper.conf        2023-11-28 19:09:38.000000000 
+0100
@@ -32,11 +32,11 @@
 #AVOID_COMMIT_BEFORE_INSTALL=1
 
 # The high-level package manager that's being used.
-# (apt, pacman, pacman-g2, yum, dnf, zypper, apk, xbps etc)
+# (apt, pacman, pacman-g2, yum, dnf, zypper, apk, xbps, emerge, cave, etc)
 HIGHLEVEL_PACKAGE_MANAGER=apt
 
 # The low-level package manager that's being used.
-# (dpkg, rpm, pacman, pacmatic, pacman-g2, apk, xbps etc)
+# (dpkg, rpm, pacman, pacmatic, pacman-g2, apk, xbps, cave, qlist, etc)
 LOWLEVEL_PACKAGE_MANAGER=dpkg
 
 # To push each commit to a remote, put the name of the remote here.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/etckeeper-1.18.18/etckeeper.spec 
new/etckeeper-1.18.21/etckeeper.spec
--- old/etckeeper-1.18.18/etckeeper.spec        2022-09-08 18:13:15.000000000 
+0200
+++ new/etckeeper-1.18.21/etckeeper.spec        2023-11-28 19:09:38.000000000 
+0100
@@ -1,5 +1,5 @@
 Name: etckeeper
-Version: 1.18.18
+Version: 1.18.21
 Release: 4%{?dist}
 Summary: store /etc in git, mercurial, bzr or darcs
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/etckeeper-1.18.18/init.d/50vcs-pre-commit-hook 
new/etckeeper-1.18.21/init.d/50vcs-pre-commit-hook
--- old/etckeeper-1.18.18/init.d/50vcs-pre-commit-hook  2022-09-08 
18:13:15.000000000 +0200
+++ new/etckeeper-1.18.21/init.d/50vcs-pre-commit-hook  2023-11-28 
19:09:38.000000000 +0100
@@ -12,6 +12,37 @@
 #!/bin/sh
 # pre-commit hook for etckeeper, to store metadata and do sanity checks
 set -e
+
+################################################################################
+# Do not run etckeeper inside linked worktrees. An additional worktree can be
+# very useful for resolving *.rpmsave/*.rpmnew files where you are able to 
merge
+# and check out older versions without changing the whole content of /etc.
+# However while doing such work, avoid modifying .etckeeper since only the /etc
+# directory should track permissions.
+#
+#
+# $ cd /etc
+# $ git worktree list
+# /etc                2984704 [main]
+# /root/etc.worktree  aeae148 [main.worktree]
+# $ git rev-parse --git-dir
+# .git
+# $ cd /root/etc.worktree
+# $ git rev-parse --git-dir
+# /etc/.git/worktrees/etc.worktree
+# $
+#
+################################################################################
+
+# Using 'rev-parse' + 'grep' rather than for instance parsing output from
+# 'worktree list' since the worktree command is not present in older git 
version
+# and parsing it would be slightly more complex.
+if git rev-parse --git-dir | grep -q /.git/worktrees
+then
+       # Inside worktree, do nothing.
+       exit
+fi
+
 etckeeper pre-commit -d `pwd`
 EOF
                chmod +x .git/hooks/pre-commit
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/etckeeper-1.18.18/init.d/60darcs-deleted-symlinks 
new/etckeeper-1.18.21/init.d/60darcs-deleted-symlinks
--- old/etckeeper-1.18.18/init.d/60darcs-deleted-symlinks       2022-09-08 
18:13:15.000000000 +0200
+++ new/etckeeper-1.18.21/init.d/60darcs-deleted-symlinks       2023-11-28 
19:09:38.000000000 +0100
@@ -1,5 +1,14 @@
 #!/bin/sh
 set -e
+       
+if command -v mktemp >/dev/null; then
+       tempfile="mktemp -t etckeeper-$VCS.XXXXXXXXXX"
+elif command -v tempfile >/dev/null; then
+       tempfile="tempfile"
+else
+       echo "etckeeper warning: can't find tempfile or mktemp" >&2
+       exit 1
+fi
 
 filter_ignore() {
        if [ "$VCS" = darcs ]; then
@@ -13,7 +22,7 @@
                #grep -Ev $patterns
                #unset patterns
                # Alternative using a temp file
-               patternsfile="$( mktemp -t etckeeper-$VCS.XXXXXXXXXX )"
+               patternsfile="$($tempfile)"
                grep -v '^[[:space:]]*\(#\|$\)' "$ignorefile" > "$patternsfile" 
|| true
                grep -Evf "$patternsfile"
                rm -f "$patternsfile"
@@ -23,13 +32,12 @@
        fi
 }
 
-
 if [ "$VCS" = darcs ];then
        NOVCS='. -path ./.git -prune -o -path ./.bzr -prune -o -path ./.hg 
-prune -o -path ./_darcs -prune -o'
 
        # We assume that if .etckeeper is empty this is the first run
        if [ -s .etckeeper ]; then
-               linksindex="$( mktemp -t etckeeper-$VCS.XXXXXXXXXX )"
+               linksindex="$($tempfile)"
                grep '^ln -s' .etckeeper | while IFS="'" read n n n link n; do
                        printf "%s\n" "$link" >> "$linksindex"
                done
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/etckeeper-1.18.18/list-installed.d/50list-installed 
new/etckeeper-1.18.21/list-installed.d/50list-installed
--- old/etckeeper-1.18.18/list-installed.d/50list-installed     2022-09-08 
18:13:15.000000000 +0200
+++ new/etckeeper-1.18.21/list-installed.d/50list-installed     2023-11-28 
19:09:38.000000000 +0100
@@ -30,5 +30,9 @@
                apk info -v | sort
        elif [ "$LOWLEVEL_PACKAGE_MANAGER" = xbps ]; then
                xbps-query -l | awk '{print $2}' | sed -r 's/-([^-]+)$/ \1/g;'
+       elif [ "$LOWLEVEL_PACKAGE_MANAGER" = qlist ]; then
+               qlist -ICv
+       elif [ "$LOWLEVEL_PACKAGE_MANAGER" = cave ]; then
+               cave print-packages -r installed
        fi
 fi
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/etckeeper-1.18.18/pre-commit.d/30store-metadata 
new/etckeeper-1.18.21/pre-commit.d/30store-metadata
--- old/etckeeper-1.18.18/pre-commit.d/30store-metadata 2022-09-08 
18:13:15.000000000 +0200
+++ new/etckeeper-1.18.21/pre-commit.d/30store-metadata 2023-11-28 
19:09:38.000000000 +0100
@@ -13,7 +13,15 @@
        esac
 
        if [ -n "$ignorefile" ] && [ -e "$ignorefile" ]; then
-               listfile="$( mktemp -t etckeeper-$VCS.XXXXXXXXXX )"
+               if command -v mktemp >/dev/null; then
+                       tempfile="mktemp -t etckeeper-$VCS.XXXXXXXXXX"
+               elif command -v tempfile >/dev/null; then
+                       tempfile="tempfile"
+               else
+                       echo "etckeeper warning: can't find tempfile or mktemp" 
>&2
+                       exit 1
+               fi
+               listfile="$($tempfile)"
                case "$VCS" in
                        darcs)
                                LC_CTYPE=C grep -v '^[[:space:]]*\(#\|$\)' 
"$ignorefile" > "$listfile" || true
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/etckeeper-1.18.18/uninit.d/50vcs-uninit 
new/etckeeper-1.18.21/uninit.d/50vcs-uninit
--- old/etckeeper-1.18.18/uninit.d/50vcs-uninit 2022-09-08 18:13:15.000000000 
+0200
+++ new/etckeeper-1.18.21/uninit.d/50vcs-uninit 2023-11-28 19:09:38.000000000 
+0100
@@ -22,7 +22,7 @@
 else
        realfile="$file"
        if command -v mktemp >/dev/null; then
-               tempfile="mktemp"
+               tempfile="mktemp -t etckeeper-$VCS.XXXXXXXXXX"
        elif command -v tempfile >/dev/null; then
                tempfile="tempfile"
        else
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/etckeeper-1.18.18/update-ignore.d/01update-ignore 
new/etckeeper-1.18.21/update-ignore.d/01update-ignore
--- old/etckeeper-1.18.18/update-ignore.d/01update-ignore       2022-09-08 
18:13:15.000000000 +0200
+++ new/etckeeper-1.18.21/update-ignore.d/01update-ignore       2023-11-28 
19:09:38.000000000 +0100
@@ -107,8 +107,12 @@
                comment "new versions of conffiles, stored by xbps"
                ignore "*.new-*_[0-9]*"
                nl
+       elif [ "$LOWLEVEL_PACKAGE_MANAGER" = "qlist" -o 
"$LOWLEVEL_PACKAGE_MANAGER" = "cave" ]; then
+               comment "new and old versions of conffiles, stored by emerge"
+               ignore "._cfg*"
+               nl
        fi
-       
+
        comment "old versions of files"
        ignore "*.old"
        # Not currently ignored as admins tend to rely on these files.
@@ -181,7 +185,7 @@
        fi
        realfile="$file"
        if command -v mktemp >/dev/null; then
-               tempfile="mktemp"
+               tempfile="mktemp -t etckeeper-$VCS.XXXXXXXXXX"
        elif command -v tempfile >/dev/null; then
                tempfile="tempfile"
        else

++++++ etckeeper-set-package-manager.patch ++++++
--- /var/tmp/diff_new_pack.T4WIch/_old  2024-09-12 16:57:33.375846477 +0200
+++ /var/tmp/diff_new_pack.T4WIch/_new  2024-09-12 16:57:33.379846643 +0200
@@ -1,16 +1,16 @@
-Index: etckeeper-1.18.8/etckeeper.conf
+Index: etckeeper-1.18.21/etckeeper.conf
 ===================================================================
---- etckeeper-1.18.8.orig/etckeeper.conf
-+++ etckeeper-1.18.8/etckeeper.conf
+--- etckeeper-1.18.21.orig/etckeeper.conf
++++ etckeeper-1.18.21/etckeeper.conf
 @@ -33,11 +33,11 @@ DARCS_COMMIT_OPTIONS="-a"
  
  # The high-level package manager that's being used.
- # (apt, pacman, pacman-g2, yum, dnf, zypper, apk, xbps etc)
+ # (apt, pacman, pacman-g2, yum, dnf, zypper, apk, xbps, emerge, cave, etc)
 -HIGHLEVEL_PACKAGE_MANAGER=apt
 +HIGHLEVEL_PACKAGE_MANAGER=zypper
  
  # The low-level package manager that's being used.
- # (dpkg, rpm, pacman, pacmatic, pacman-g2, apk, xbps etc)
+ # (dpkg, rpm, pacman, pacmatic, pacman-g2, apk, xbps, cave, qlist, etc)
 -LOWLEVEL_PACKAGE_MANAGER=dpkg
 +LOWLEVEL_PACKAGE_MANAGER=rpm
  

Reply via email to