武藤@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