summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xbin/dispatch-conf8
-rw-r--r--cnf/dispatch-conf.conf5
2 files changed, 13 insertions, 0 deletions
diff --git a/bin/dispatch-conf b/bin/dispatch-conf
index a62a0ef40..816de0de3 100755
--- a/bin/dispatch-conf
+++ b/bin/dispatch-conf
@@ -141,6 +141,14 @@ class dispatch:
else:
newconf = conf['new']
+ if newconf == mrgconf and \
+ self.options.get('ignore-previously-merged') != 'yes' and \
+ len(commands.getoutput(DIFF_CONTENTS % (conf['current'], mrgconf))) == 0:
+ # The current update is identical to the archived .dist
+ # version that has previously been merged.
+ os.unlink(mrgconf)
+ newconf = conf['new']
+
mystatus, myoutput = commands.getstatusoutput(
DIFF_CONTENTS % (conf ['current'], newconf))
same_file = 0 == len(myoutput)
diff --git a/cnf/dispatch-conf.conf b/cnf/dispatch-conf.conf
index b1ece73bb..d4caa9557 100644
--- a/cnf/dispatch-conf.conf
+++ b/cnf/dispatch-conf.conf
@@ -32,6 +32,11 @@ replace-wscomments=no
# (yes or no)
replace-unmodified=no
+# Ignore a version that is identical to the previously merged version,
+# even though it is different from the current user modified version
+# (yes or no)
+ignore-previously-merged=yes
+
# Per-session log file of changes made to configuration files
#log-file=/var/log/dispatch-conf.log