プラグインのバージョン管理について

背景

TracLightning 3.1.2までは、プラグインのバージョン管理がまともに出来ていませんでした。幾つかのプラグインはバグ修正や日本語化対応を行っていますが、Upstreamとの差分の管理は厳密には行われていません。.svnをインポートしているプラグインもありますが、編集の競合が起るとインポートしたsvnリポジトリが破壊される可能性があります。

また、TracLightningとKanonでプラグインが2重管理になっているのもなんとかしたいです。

そこで、プラグインをきちんと管理できるようにリポジトリ構成を変更したいと思います。

管理案

id:jun66j5さんのところでのプラグイン管理を習って次のようにしたいと思います。

Trac本体

プラグイン

全部のプラグインをmercurialでクローンして管理

  • mercurialでプラグインをクローンして管理
  • 1プラグイン1リポジトリ作成
  • TracLightningからはmercurialのプラグインリポジトリをsubrepoで参照
  • 独自の修正を加えていないプラグインはTracLightningのリポジトリに直接subrepoを作成。独自修正が入った時点でmercurialでクローンして管理する方式に変更(できるだけforkしたリポジトリ数を減らす)

確認事項

  • gitリポジトリはhgでcloneできるか? 更新を取り込めるか?(hg-gitを検証?)
  • svnリポジトリはhgで取り込めるか? svnのアップデートのマージをhgで取り込めるか?

検証項目

hg-svnhg-git
日本語??
取り込み(clone)??
アップデート??
マージ??

  • 何処のリポジトリを使うか?
    • bitbucket(王道)
    • sf.jpのShibuya.trac/TracLightning(sf.jpのアカウントが利用できる)
    • kanon-lab
    • ciklone?(使わせて貰えれば)
    • その他

移行方針

  • 取り敢えず、修正していないプラグインをsubrepoへ移行する
  • 修正したプラグインは量が多いので段階的に移行

検討事項

  • cikloneのプラグインと共通化できないか?
  • マージしたときに、マージしたリビジョンをログに書くなど、規約を作成。