summaryrefslogtreecommitdiffstats
path: root/man/dpkg-mergechangelogs.pod
diff options
context:
space:
mode:
Diffstat (limited to 'man/dpkg-mergechangelogs.pod')
-rw-r--r--man/dpkg-mergechangelogs.pod121
1 files changed, 121 insertions, 0 deletions
diff --git a/man/dpkg-mergechangelogs.pod b/man/dpkg-mergechangelogs.pod
new file mode 100644
index 0000000..3db49ae
--- /dev/null
+++ b/man/dpkg-mergechangelogs.pod
@@ -0,0 +1,121 @@
+# dpkg manual page - dpkg-mergechangelogs(1)
+#
+# Copyright © 2009-2010 Raphaël Hertzog <hertzog@debian.org>
+#
+# This is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <https://www.gnu.org/licenses/>.
+
+=encoding utf8
+
+=head1 NAME
+
+dpkg-mergechangelogs - 3-way merge of debian/changelog files
+
+=head1 SYNOPSIS
+
+B<dpkg-mergechangelogs>
+[I<option>...] I<old> I<new-a> I<new-b> [I<out>]
+
+=head1 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 I<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 B<--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 I<new-a> and I<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).
+
+=head1 OPTIONS
+
+=over
+
+=item B<--merge-unreleased>
+
+Ignore the version number when the entries are marked as B<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.
+
+=item B<-m>, B<--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.
+
+=item B<--help>
+
+Show the usage message and exit.
+
+=item B<--version>
+
+Show the version and exit.
+
+=back
+
+=head1 ENVIRONMENT
+
+=over
+
+=item B<DPKG_COLORS>
+
+Sets the color mode (since dpkg 1.18.5).
+The currently accepted values are: B<auto> (default), B<always> and
+B<never>.
+
+=item B<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: B<0> and B<1> (default).
+
+=back
+
+=head1 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.
+
+=head1 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
+B<.git/config> or B<~/.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 B<.gitattributes> in the repository itself, or in
+B<.git/info/attributes>:
+
+ debian/changelog merge=dpkg-mergechangelogs