# dpkg-mergechangelogs

## NAME



           dpkg-mergechangelogs - 3-way merge of debian/changelog files
    


## SYNOPSIS



           **dpkg-mergechangelogs**[_option_...] _old new-a new-b_ [_out_]
    


## DESCRIPTION



           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 file _out_ or output to the standard
           output if that parameter is not given.
    
           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 _new-a_ and
           _new-b_ , 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).
    
           This program was introduced in dpkg 1.15.7.
    


## OPTIONS



           **--merge-unreleased**
               Ignore the version number when the entries are marked as
               **UNRELEASED**(since dpkg 1.21.0).
    
               This is useful when you have diverging development for
               versions that have not yet been released.  For instance 2.1-1
               is released, then development happens for the new 2.2-1 and
               then for 2.3-1, where it makes sense to just end with a
               coalesced entry for 2.3-1 including all the development done
               in 2.2-1.
    
           **-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.
    
           **--help**
               Show the usage message and exit.
    
           **--version**
               Show the version and exit.
    


## ENVIRONMENT



           **DPKG_COLORS**
               Sets the color mode (since dpkg 1.18.5).  The currently
               accepted values are: **auto**(default), **always** and **never**.
    
           **DPKG_NLS**
               If set, it will be used to decide whether to activate Native
               Language Support, also known as internationalization (or i18n)
               support (since dpkg 1.19.0).  The accepted values are: **0** and **1**
               (default).
    


## LIMITATIONS



           Anything that is not parsed by Dpkg::Changelog is lost during the
           merge.  This might include stuff like comments which were not
           supposed to be there, etc.
    


## INTEGRATION WITH GIT



           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
           **.git/config** or **~/.gitconfig** :
    
            [merge "dpkg-mergechangelogs"]
               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 **.gitattributes** in the repository
           itself, or in **.git/info/attributes** :
    
            debian/changelog merge=dpkg-mergechangelogs
    


* * *