dpkg-mergechangelogs - 3-way merge of debian/changelog files
...] old new-a
This program will use the 3 provided versions of the Debian changelog to
generate a merged changelog file. The resulting changelog is stored in the
or output to the standard output if that parameter is not
Each entry is identified by its version number and they are assumed to be not
conflicting, they are simply merged in the right order (by decreasing version
number). When --merge-prereleases
is used, the part of the version
number after the last tilde is dropped so that 1.0-1~exp1 and 1.0-1~exp5 are
considered to be the same entry. When the same version is available in both
, a standard line-based 3-way merge is attempted
(provided that the module Algorithm::Merge is available — it's part of
the package libalgorithm-merge-perl — otherwise you get a global
conflict on the content of the entry).
- -m, --merge-prereleases
- Drop the part after the last tilde in the version number
when doing version comparison to identify if two entries are supposed to
be the same or not.
This is useful when you keep using the same changelog entry but you increase
its version number regularly. For instance, you might have 2.3-1~exp1,
2.3-1~exp2, ... until the official release 2.3-1 and they are all the same
changelog entry that has evolved over time.
- Show the usage message and exit.
- Show the version and exit.
Anything that is not parsed by Dpkg::Changelog is lost during the merge. This
might include stuff like Vim modelines, Emacs variables, comments which were
not supposed to be there, etc.
If you want to use this program to merge Debian changelog files in a git
repository, you have first to register a new merge driver in
name = debian/changelog merge driver
driver = dpkg-mergechangelogs -m %O %A %B %A
Then you have to setup the merge attribute for the debian/changelog file either
in the repository itself, or in