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