2006-08-20 [長年日記]

[Q3] 設定ファイルをSubversionで管理

バージョンアップ時にmenus.xmlやtoolbars.xmlなどが変更されていると自動的に新しいバージョンで上書きされます*1。自分でこれらのファイルを編集している場合、差分を手でマージする必要があるのですが、度重なると結構面倒です。

私の場合これらのファイルをSubversionで管理して、そこそこ自動でマージできるようになっているのですが、menus.xmlを参考にそのやり方を。

  1. まず、デフォルトのmenus.xmlを取得します。menus.xmlを一回削除してQMAIL3を起動すればデフォルトのmenus.xmlが作成されます。
  2. 次にprofilesのならびにprofiles.origディレクトリを作成してデフォルトのmenus.xmlをコピーします。
  3. この状態でprofiles/menus.xmlを好きに編集します。
  4. この状態をSubversionのレポジトリにコミットしておきます。
  5. QMAIL3をバージョンアップしたらmenus.xmlが更新されていて上書きするかどうか尋ねられます。そこでバックアップするように指定して上書きします。
  6. 次にprofiles/menus.xmlをprofiles.orig/menus.xmlに移動して、コミットします。このときのリビジョン番号が例えば10だったとします。
  7. 次にprofiles/menus.xml.bakをmenus.xmlにリネームします。
  8. そして、6でコミットした差分を7にマージします。つまり、今回の配布ファイルで変更されたmenus.xmlの差分を、自分が変更したmenus.xmlにマージするというわけです。

    svn merge -r 9:10 ../profiles.orig

  9. すると自分が編集したmenus.xmlにデフォルトのmenus.xmlの差分が適用されます。うまくマージできたらこれをコミットすればOKです。運悪くコンフリクトした場合には手で解決する必要があります。

つまり基本的には、QMAIL3のバイナリに含まれている設定ファイルでベンダーブランチを作って、そちら側の変更を適宜自分が作業しているブランチにマージしていくということです。

*1  ユーザがファイルを変更している場合には、上書きするかどうかの確認ダイアログが表示されます

本日のツッコミ(全1件) [ツッコミを入れる]
# みんみん (2006-08-28 10:54)

なるほど、そういう手もあるわけですねぇ。svnはまだ不勉強…

[]