dpkg-mergechangelogs(1)

名前
dpkg-mergechangelogs - debian/changelogs ファイルの 3-way マージ

書式
dpkg-mergechangelogs [option...] old new-a new-b [out]

説明

このプログラムは、3 つの Debian changelog のバージョンから、マージされたchangelog ファイルを生成する。生成された changelog は out ファイルに保存されるが、パラメータが指定されなかった場合は 標準出力に出力される。

各エントリはバージョン番号によって区別され、競合が発生していないことが前提となる。これらは右から順番に (バージョン番号を減らすことで) 単純にマージされる。--merge-prereleases が指定された場合、バージョン番号の最後のチルダより後の部分が除外されるため、1.0-1~exp1 と 1.0-1~exp5 は同じエントリだと見なされる。new-a と new-b とに同じバージョンがある場合、標準的な行ベースの 3-way マージが試行される (Algorithm::Merge モジュールが利用可能な場合。— これは、libalgorithm-merge-perl パッケージの一部である。 — 利用できない場合は、該当のエントリにおいて競合が発生する)。

オプション

-m, --merge-prereleases
    2 つのエントリが同一と見なされるかどうかを確認するバージョン比較の際に、バージョン番号の最後のチルダより後の部分を除外する。

    これは、バージョン番号を常に増加させているものの、同一の changelog エントリの使用を継続したい場合に有用である。一例として、2.3-1~exp1, 2.3-1~exp2 というバージョンが公式なリリースである 2.3-1 まで続くような場合に、これらを時系列順に並べて同一の changelog エントリにしたい場合などが挙げられる。

--help
    利用方法を表示して終了する。

--version
    バージョン情報を表示して終了する。

制限事項

Dpkg::Changelog で解析できない内容は、マージの際に消失する。これには vim のモードライン、存在しているとは見なされないコメントなどが挙げられる。

GIT との連携

このプログラムを git リポジトリにある Debian changelog ファイルのマージに用いる場合は、最初に .git/config もしくは ~/.gitconfig に新しいマージドライバを登録しておく必要がある:

 [merge "dpkg-mergechangelogs"]
     name = debian/changelog merge driver
     driver = dpkg-mergechangelogs -m %O %A %B %A

ついで、debian/changelog ファイルの merge 属性をリポジトリ内の .gitattributes もしくは .git/info/attributes 中に設定する必要がある:

 debian/changelog merge=dpkg-mergechangelogs

翻訳者
高橋 基信 <monyo@monyo.com>. 喜瀬 浩 <kise@fuyuneko.jp>. 関戸 幸一 <sekido@mbox.kyoto-inet.or.jp>. 鍋谷 栄展 <nabe@debian.or.jp>. 倉澤 望 <nabetaro@debian.or.jp>. 石川 睦 <ishikawa@linux.or.jp>. 鵜飼 文敏 <ukai@debian.or.jp>. 中野 武雄 <nakano@apm.seikei.ac.jp>.

翻訳校正
Debian JP Documentation ML <debian-doc@debian.or.jp>.