summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitattributes1
-rw-r--r--debian/changelog7
-rwxr-xr-xpre-commit.d/30store-metadata29
3 files changed, 27 insertions, 10 deletions
diff --git a/.gitattributes b/.gitattributes
new file mode 100644
index 0000000..5d42584
--- /dev/null
+++ b/.gitattributes
@@ -0,0 +1 @@
+debian/changelog merge=dpkg-mergechangelogs
diff --git a/debian/changelog b/debian/changelog
index 7720597..82b149d 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,10 @@
+etckeeper (1.8) UNRELEASED; urgency=low
+
+ * Avoid listing .gitignored files in .etckeeper file. Closes: #607665
+ Thanks, Zdenek Crha
+
+ -- Joey Hess <joeyh@debian.org> Wed, 31 Jul 2013 11:33:45 -0400
+
etckeeper (1.7) unstable; urgency=low
* Fix hilarious typo hardcoding my name. Closes: #718425
diff --git a/pre-commit.d/30store-metadata b/pre-commit.d/30store-metadata
index 03ce475..3bb52e5 100755
--- a/pre-commit.d/30store-metadata
+++ b/pre-commit.d/30store-metadata
@@ -15,16 +15,25 @@ filter_unknown() {
}
filter_ignore() {
- if [ "$VCS" = darcs ]; then
- ignorefile=.darcsignore
- fi
+ case "$VCS" in
+ darcs) ignorefile=.darcsignore ;;
+ git) ignorefile=.gitignore ;;
+ esac
- if [ "$VCS" = darcs ] && [ -e "$ignorefile" ]; then
- patternsfile="$( mktemp -t etckeeper-$VCS.XXXXXXXXXX )"
- grep -v '^[[:space:]]*\(#\|$\)' "$ignorefile" > "$patternsfile" || true
- grep -Evf "$patternsfile"
- rm -f "$patternsfile"
- unset patternsfile
+ if [ -n "$ignorefile" ] && [ -e "$ignorefile" ]; then
+ listfile="$( mktemp -t etckeeper-$VCS.XXXXXXXXXX )"
+ case "$VCS" in
+ darcs)
+ grep -v '^[[:space:]]*\(#\|$\)' "$ignorefile" > "$listfile" || true
+ grep -Evf "$listfile"
+ ;;
+ git)
+ git ls-files --others --ignore --directory > "$listfile" || true
+ grep -Fvf "$listfile"
+ ;;
+ esac
+ rm -f "$listfile"
+ unset listfile
else
cat -
fi
@@ -74,7 +83,7 @@ generate_metadata() {
# 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 | sort | perl -ne '
+ find $NOVCS \( -type f -or -type d \) -print | filter_ignore | sort | perl -ne '
BEGIN { $q=chr(39) }
sub uidname {
my $want=shift;