#
# dispatch-conf.conf
#

# Directory to archive replaced configs
archive-dir=/etc/config-archive

# Use rcs for storing files in the archive directory?
# WARNING: When configured to use rcs, read and execute permissions of
# archived files may be inherited from the first check in of a working
# file, as documented in the ci(1) man page. This means that even if
# the permissions of the working file have since changed, the older
# permissions of the first check in may be inherited. As mentioned in
# the ci(1) man page, users can control access to RCS files by setting
# the permissions of the directory containing the files (see
# archive-dir above).
# (yes or no)
use-rcs=no

# Diff for display
# %s old file
# %s new file
# If using colordiff instead of diff, the less -R option may be required
# for correct display.
diff="diff -Nu '%s' '%s' | less --no-init --QUIT-AT-EOF"

# Diff for interactive merges.
# %s output file
# %s old file
# %s new file
merge="sdiff --suppress-common-lines --output='%s' '%s' '%s'"

# Automerge files comprising only CVS interpolations (e.g. Header or Id)
# (yes or no)
replace-cvs=yes

# Automerge files comprising only whitespace and/or comments
# (yes or no)
replace-wscomments=no

# Automerge files that the user hasn't modified
# (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
# Note that emerge already has a similar feature enabled by default,
# which can be disabled by the emerge --noconfmem option.
# (yes or no)
ignore-previously-merged=no

# Per-session log file of changes made to configuration files
#log-file=/var/log/dispatch-conf.log

# List of frozen files for which dispatch-conf will automatically zap updates
#frozen-files=""
