man-pages/man1/dpkg-mergechangelogs.1.html
2021-03-31 01:06:50 +01:00

132 lines
4.0 KiB
HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML><HEAD><TITLE>Man page of dpkg-mergechangelogs</TITLE>
</HEAD><BODY>
<H1>dpkg-mergechangelogs</H1>
Section: dpkg suite (1)<BR>Updated: 2020-03-23<BR><A HREF="#index">Index</A>
<A HREF="/cgi-bin/man/man2html">Return to Main Contents</A><HR>
<A NAME="lbAB">&nbsp;</A>
<H2>NAME</H2>
dpkg-mergechangelogs - 3-way merge of debian/changelog files
<A NAME="lbAC">&nbsp;</A>
<H2>SYNOPSIS</H2>
<B>dpkg-mergechangelogs</B>
[<I>option</I>...] <I>old</I> <I>new-a</I> <I>new-b</I> [<I>out</I>]
<A NAME="lbAD">&nbsp;</A>
<H2>DESCRIPTION</H2>
<P>
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 <I>out</I> or output to the standard output if that parameter is
not given.
<P>
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 <B>--merge-prereleases</B> 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 <I>new-a</I> and <I>new-b</I>, 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).
<A NAME="lbAE">&nbsp;</A>
<H2>OPTIONS</H2>
<DL COMPACT>
<DT id="1"><B>-m</B>, <B>--merge-prereleases</B>
<DD>
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.
<P>
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.
<DT id="2"><B>--help</B>
<DD>
Show the usage message and exit.
<DT id="3"><B>--version</B>
<DD>
Show the version and exit.
</DL>
<A NAME="lbAF">&nbsp;</A>
<H2>ENVIRONMENT</H2>
<DL COMPACT>
<DT id="4"><B>DPKG_COLORS</B>
<DD>
Sets the color mode (since dpkg 1.18.5).
The currently accepted values are: <B>auto</B> (default), <B>always</B> and
<B>never</B>.
<DT id="5"><B>DPKG_NLS</B>
<DD>
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: <B>0</B> and <B>1</B> (default).
</DL>
<A NAME="lbAG">&nbsp;</A>
<H2>LIMITATIONS</H2>
<P>
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.
<A NAME="lbAH">&nbsp;</A>
<H2>INTEGRATION WITH GIT</H2>
<P>
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
<B>.git/config</B> or <B>~/.gitconfig</B>:
<P>
<BR>&nbsp;[merge&nbsp;&quot;dpkg-mergechangelogs&quot;]
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;name&nbsp;=&nbsp;debian/changelog&nbsp;merge&nbsp;driver
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;driver&nbsp;=&nbsp;dpkg-mergechangelogs&nbsp;-m&nbsp;%O&nbsp;%A&nbsp;%B&nbsp;%A
<P>
Then you have to setup the merge attribute for the debian/changelog file
either in <B>.gitattributes</B> in the repository itself, or in
<B>.git/info/attributes</B>:
<P>
<BR>&nbsp;debian/changelog&nbsp;merge=dpkg-mergechangelogs
<P>
<HR>
<A NAME="index">&nbsp;</A><H2>Index</H2>
<DL>
<DT id="6"><A HREF="#lbAB">NAME</A><DD>
<DT id="7"><A HREF="#lbAC">SYNOPSIS</A><DD>
<DT id="8"><A HREF="#lbAD">DESCRIPTION</A><DD>
<DT id="9"><A HREF="#lbAE">OPTIONS</A><DD>
<DT id="10"><A HREF="#lbAF">ENVIRONMENT</A><DD>
<DT id="11"><A HREF="#lbAG">LIMITATIONS</A><DD>
<DT id="12"><A HREF="#lbAH">INTEGRATION WITH GIT</A><DD>
</DL>
<HR>
This document was created by
<A HREF="/cgi-bin/man/man2html">man2html</A>,
using the manual pages.<BR>
Time: 00:05:11 GMT, March 31, 2021
</BODY>
</HTML>