dpkg-mergechangelogs(1) 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-anew-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

翻訳者

高橋 基信 <[email protected]>. 喜瀬 浩 <[email protected]>. 関戸 幸一 <[email protected]>. 鍋谷 栄展 <[email protected]>. 倉澤 望 <[email protected]>. 石川 睦 <[email protected]>. 鵜飼 文敏 <[email protected]>. 中野 武雄 <[email protected]>.

翻訳校正

Debian JP Documentation ML <[email protected]>.