綾小路龍之介の素人思考

[cvs] debian webwmlのローカルコピーをとる

gitやsubversionが全盛なのに、debian webwmlの翻訳作業を行うときにcvsのオペレーションが必要になったので。

まずは以下のようにしてパスワードを.cvspassに保存する。このレポジトリの場合、匿名(anonymous)ユーザのパスワードは空白。

$ cvs -d :pserver:anonymous@cvs.alioth.debian.org:/cvsroot/webwml login
Logging in to :pserver:anonymous@cvs.alioth.debian.org:2401/cvsroot/webwml
CVS password:
cvs login: CVS password file /home/**********/.cvspass does not exist - creating a new file

適当なディレクトリを作成し、その中に移動する。

$ mkdir -p cvs-debian-wml
$ cd cvs-debian-wml

まずはcopypage.plを正しく走らせるために必要なディレクトリをcheckoutする。

$ cvs -d :pserver:anonymous@cvs.alioth.debian.org:/cvsroot/webwml checkout -l webwml
cvs checkout: Updating webwml
U webwml/.transignore
U webwml/.wmlrc
U webwml/Makefile
U webwml/Makefile.common
U webwml/README
U webwml/README_CSS.txt
U webwml/check_desc_trans.pl
U webwml/check_links.pl
U webwml/check_trans.pl
U webwml/copypage.pl
U webwml/cvsup.py
U webwml/get-www-stats
U webwml/i18nwwwfix.pl
U webwml/karma.pl
U webwml/make_all.pl
U webwml/make_links.pl
U webwml/remove_stale.pl
U webwml/smart_change.pl
U webwml/stattrans.pl
U webwml/touch_files.pl
U webwml/touch_translations.pl
$ cvs -d :pserver:anonymous@cvs.alioth.debian.org:/cvsroot/webwml checkout webwml/Perl
cvs checkout: Updating webwml/Perl
U webwml/Perl/README
cvs checkout: Updating webwml/Perl/Debian
U webwml/Perl/Debian/README
cvs checkout: Updating webwml/Perl/Debian/L10n
U webwml/Perl/Debian/L10n/Db.pm
U webwml/Perl/Debian/L10n/Debconf.pm
cvs checkout: Updating webwml/Perl/Debian/Pkg
U webwml/Perl/Debian/Pkg/DebSrc.pm
U webwml/Perl/Debian/Pkg/Diff.pm
U webwml/Perl/Debian/Pkg/Tar.pm
cvs checkout: Updating webwml/Perl/Local
U webwml/Perl/Local/Cvsinfo.pm
U webwml/Perl/Local/Util.pm
U webwml/Perl/Local/VCS.pm
U webwml/Perl/Local/VCS_CVS.pm
U webwml/Perl/Local/WmlDiffTrans.pm
cvs checkout: Updating webwml/Perl/Local/Inside
U webwml/Perl/Local/Inside/DebSrc.pm
U webwml/Perl/Local/Inside/Diff.pm
U webwml/Perl/Local/Inside/Tar.pm
cvs checkout: Updating webwml/Perl/Locale
U webwml/Perl/Locale/Constants.pm
U webwml/Perl/Locale/Country.pm
U webwml/Perl/Locale/Language.pm
cvs checkout: Updating webwml/Perl/MIME
U webwml/Perl/MIME/EmailDateFormat.pm
U webwml/Perl/MIME/Lite.pm
cvs checkout: Updating webwml/Perl/Webwml
U webwml/Perl/Webwml/Langs.pm
U webwml/Perl/Webwml/TransCheck.pm
U webwml/Perl/Webwml/TransIgnore.pm
cvs checkout: Updating webwml/Perl/Webwml/L10n
$ cvs -d :pserver:anonymous@cvs.alioth.debian.org:/cvsroot/webwml checkout -l webwml/japanese
cvs checkout: Updating webwml/japanese
U webwml/japanese/.wmlrc
U webwml/japanese/Make.lang
U webwml/japanese/Makefile
U webwml/japanese/contact.wml
U webwml/japanese/debian-ja.css
U webwml/japanese/donations.wml
U webwml/japanese/index.wml
U webwml/japanese/license.wml
U webwml/japanese/search.wml
U webwml/japanese/social_contract.1.0.wml
U webwml/japanese/social_contract.wml
U webwml/japanese/support.wml

次に翻訳したいファイルの原本が含まれるenglishディレクトリ以下の特定のディレクトリと、翻訳したファイルを置くjapaneseディレクトリ以下の特定のディレクトリをcheckoutする。

$ cvs -d :pserver:anonymous@cvs.alioth.debian.org:/cvsroot/webwml checkout webwml/english/News/weekly/2011
cvs checkout: Updating webwml/english/News/weekly/2011
U webwml/english/News/weekly/2011/index.wml
cvs checkout: Updating webwml/english/News/weekly/2011/01
U webwml/english/News/weekly/2011/01/index.wml
cvs checkout: Updating webwml/english/News/weekly/2011/02
U webwml/english/News/weekly/2011/02/index.wml
cvs checkout: Updating webwml/english/News/weekly/2011/03
U webwml/english/News/weekly/2011/03/index.wml
cvs checkout: Updating webwml/english/News/weekly/2011/04
U webwml/english/News/weekly/2011/04/index.wml
cvs checkout: Updating webwml/english/News/weekly/2011/05
U webwml/english/News/weekly/2011/05/index.wml
cvs checkout: Updating webwml/english/News/weekly/2011/06
U webwml/english/News/weekly/2011/06/index.wml
cvs checkout: Updating webwml/english/News/weekly/2011/07
U webwml/english/News/weekly/2011/07/index.wml
$ cvs -d :pserver:anonymous@cvs.alioth.debian.org:/cvsroot/webwml checkout webwml/japanese/News/weekly/2011
cvs checkout: Updating webwml/japanese/News/weekly/2011
U webwml/japanese/News/weekly/2011/Makefile
U webwml/japanese/News/weekly/2011/index.wml
cvs checkout: Updating webwml/japanese/News/weekly/2011/05
U webwml/japanese/News/weekly/2011/05/Makefile
U webwml/japanese/News/weekly/2011/05/index.wml

bashの置換機能をつかえば以下のようにかける。

$ cvs -d :pserver:anonymous@cvs.alioth.debian.org:/cvsroot/webwml checkout webwml/{english,japanese}/News/weekly/2011
cvs checkout: Updating webwml/english/News/weekly/2011
U webwml/english/News/weekly/2011/index.wml
cvs checkout: Updating webwml/english/News/weekly/2011/01
U webwml/english/News/weekly/2011/01/index.wml
cvs checkout: Updating webwml/english/News/weekly/2011/02
U webwml/english/News/weekly/2011/02/index.wml
cvs checkout: Updating webwml/english/News/weekly/2011/03
U webwml/english/News/weekly/2011/03/index.wml
cvs checkout: Updating webwml/english/News/weekly/2011/04
U webwml/english/News/weekly/2011/04/index.wml
cvs checkout: Updating webwml/english/News/weekly/2011/05
U webwml/english/News/weekly/2011/05/index.wml
cvs checkout: Updating webwml/english/News/weekly/2011/06
U webwml/english/News/weekly/2011/06/index.wml
cvs checkout: Updating webwml/english/News/weekly/2011/07
U webwml/english/News/weekly/2011/07/index.wml
cvs checkout: Updating webwml/japanese/News/weekly/2011
U webwml/japanese/News/weekly/2011/Makefile
U webwml/japanese/News/weekly/2011/index.wml
cvs checkout: Updating webwml/japanese/News/weekly/2011/05
U webwml/japanese/News/weekly/2011/05/Makefile
U webwml/japanese/News/weekly/2011/05/index.wml

ここまでやればcopypage.plが正しく走るはずである。webwmlディレクトリに移動して翻訳したいファイルパスを引数としてcopypage.plを走らせる。引数として与えたファイルが翻訳先(この場合はjapanese)の下にコピーされ、cvsのリビジョン番号に基づくメタデータの追記と、文字からHTML実態参照への変換が行われる。

$ cd webwml
$ perl copypage.pl -l japanese english/News/weekly/2011/06/index.wml
Unable to open language.conf. Using environment variables...
Processing english/News/weekly/2011/06/index.wml...
Destination directory japanese/News/weekly/2011/06/ does not exist,
Checking CVS information for japanese/News/weekly/2011/06/index.wml...
Copied News/weekly/2011/06/index.wml, remember to edit japanese/News/weekly/2011/06/index.wml

コピーされたファイルを開いたときに実態参照になっていない場合がある。例えば、english以下のディレクトリに置かれたファイル内で使われた文字öが、japanese以下のディレクトリに置かれたファイル内ではöのようなHTML実態参照になっていない場合がある。これは失敗ということである。原因は「webwml/japanese/.wmlrcが読み込まれていない」ことなので、これを上と同様の方法でチェックアウトすればよい。ただし、最近はwebwml/japanese/.wmlrcに"-D CHARSET=utf-8"という行が含まれるため、実態参照が行われない。これはこれで正解。debian-develに流れた情報参照。

編集する。

$ vim japanese/News/weekly/2011/06/index.wml

レポジトリの変更を取り込むにはupdateをつかう。この場合、カレントディレクトリに含まれるファイルだけがupdateされるので再帰的にupdateしたい場合は-dオプションをつける。

$ cd webwml
$ cvs update -d english/News/weekly/2011
cvs update: Updating english/News/weekly/2011
cvs update: Updating english/News/weekly/2011/01
cvs update: Updating english/News/weekly/2011/02
cvs update: Updating english/News/weekly/2011/03
cvs update: Updating english/News/weekly/2011/04
cvs update: Updating english/News/weekly/2011/05
cvs update: Updating english/News/weekly/2011/06
cvs update: Updating english/News/weekly/2011/07

ディレクトリを移動しても良い。

$ cd webwml/english/News/weekly/2011/
$ cvs update -d
cvs update: Updating .
cvs update: Updating 01
cvs update: Updating 02
cvs update: Updating 03
cvs update: Updating 04
cvs update: Updating 05
cvs update: Updating 06
cvs update: Updating 07
U 07/index.wml

リファレンス

  1. [webwml] Index of /webwml/english/News/weekly/2011
  2. Debian -- CVS の利用方法
  3. Debian -- wml の利用方法
  4. es/ProjectNews/HowToContribute - Debian Wiki
  5. Debian -- Using CVS
  6. Debian -- CVS の利用方法
  7. cvs debian webwml update - Google 検索
  8. 翻訳へのさそい
  9. Re: security/2004/dsa-617.wml
  10. Re: security/2004/dsa-617.wml
  11. language.conf copypage.pl - Google 検索
  12. Log200607
  13. 実体参照 copypage.pl - Google 検索
  14. Debian JP Project - ウェブページ翻訳作業マニュアル
  15. Debian -- Debian ウェブページの翻訳
  16. Re: DPN-2011-05
  17. [debian-devel:17633] UTF-8移行 (日本語: 本家Debian site)
  18. UTF-8移行 debian-devel - Google 検索

ソーシャルブックマーク

  1. はてなブックマーク
  2. Google Bookmarks
  3. del.icio.us

ChangeLog

  1. Posted: 2009-11-12T04:43:25+09:00
  2. Modified: 2009-11-12T04:43:25+09:00
  3. Modified: 2011-05-04T19:28:39+09:00
  4. Modified: 2011-06-30T20:23:26+09:00
  5. Generated: 2017-07-23T23:09:19+09:00