[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

webwml git同期の実装



武藤@Debianぷろじぇくとです。

現在CVSで管理されていて修正コミット作業の面倒なwebwmlを、gitで
連携させるようなツールを作ってみました。自身の環境ではとりあえず
動いています。
テスターを募集します。
core.sharedRepository=allにしたのですがこれでちゃんと動きます
かね…。

翻訳作業者側の手順:
1. Gitリポジトリ ユーザ名@git.debian.or.jp:/git/webwml.git
  を複製する。
  例: git clone kmuto@git.debian.or.jp:/git/webwml.git

  SSH経由なので、現時点ではDebian JPメンバ(マシンアカウントを持っている方)
  のみが対象です。
2. webwml/japanese以下を更新する。
   すでに更新されているかもしれません。「git pull」を実行して
   git.debian.or.jpのリポジトリと適宜同期してください。
   git.debian.or.jpでは1時間に1回、CVSと同期するようにしています。
3. コミット。
   例: git add doc/index.wml
       git commit -m "sync with 1.88"

   ここで入れたコミットメッセージ(の1行目)が、実際にCVSに送るときの
   メッセージになります。記入可能なのは英語のみで、更新だけならたとえば
   上記のようにsync 〜とかしておけばよいかと思います。
   DSAに関してはこれまではtranslated by 〜 (d-u@jp:番号) とか入れて
   いました。
   更新系の場合、コミットはファイル単位で行ったほうがわかりやすく、
   コミットメッセージも悩まなくて済むかと思います。DSAについては
   まとめてコミットし、「… (d-u@jp:番号,番号,番号,...)」のような
   コミットメッセージを入れてしまえばよいでしょう。
   まだ手順4.に進んでないなら、コミットを複数のコミットに分割したり
   逆に1つにまとめたりすることもできます。『入門git』『入門Git』あたり
   をご参照のこと。
4. プッシュ。
   例: git push
   これでgit.debian.or.jpのリポジトリに更新が送られます。
   サマリがdebian-www@debian.or.jpに届きます。
5. 以降は手順2.からの繰り返しです。

CVSコミッタ側の手順: (今のところ私がやりますが)
1. SVNリポジトリから展開。
   svn co https://svn.debian.or.jp/repos/webwml-sync/trunk webwml-sync
2. webwml-sync 内で mkdir patched patches
3. git clone kmuto@git.debian.or.jp:/git/webwml.git webwml-work
   で複製作成。
4. cvs -d :ext:kmuto@cvs.alioth.debian.org:/cvs/webwml checkout webwml/{english,japanese}
   でwebwmlディレクトリにCVSを展開(ここにコミットすることになる)。
5. webwml-work内でgit logして、最新の(同期作業済みと見なす)ハッシュ値を
   webwml-syncのlastcommitというファイルに置く。
6. 翻訳作業者のプッシュが届くたびに、webwml-syncディレクトリ内で
   webwml-patch-commit を実行。
   CVSとgitのupdateが行われ、lastcommit以来の各パッチがpatchesに置かれる。
   パッチの適用(y)、適用せず保持(n)、パッチ表示(p)、適用せず処理済みに(s)の
   キーで各パッチを処理していく。
   処理済みパッチはpatchedディレクトリに 日付-パッチ名 の名前で置かれる。
   パッチ適用を選択するとCVSディレクトリのほうに適用され、Subject
   メッセージをそのまま使ってコミットする。lastcommitは処理済みにした
   うちの最新ハッシュ値で置き換えられる。
7. 手順6.の繰り返し。
--
武藤 健志@ kmuto @ kmuto.jp
           Debian/JPプロジェクト   (kmuto@debian.org, kmuto@debian.or.jp)
           株式会社トップスタジオ  (kmuto@xxxxxxxxxxxxxxx)
URI: http://kmuto.jp/ (Debianな話題など)

Attachment: pgpoYGgQFbAx1.pgp
Description: PGP signature