Mercurial の make tests を走らせてみた #mercurialjp
この記事は Mercurial Advent Calendar 2012 の 16 日目です。
Mercurial のヘルプにミスを見付けた〜とツイートしたら、開発 ML にパッチ送っちゃいなYO! 念のために make tests も動かしなさいよという声が。
ということで make tests を実行できるようにしてみる。
環境作り
Windows 上だと何かと面倒事がありそうなので、VM で Linuxを動かしてそこで実行させることにする。
Windows に VirtualBox をインストールしているので、そこに Ubuntu server 12.04.1 を入れてみた。
Ubuntu は Openssh server でインストール。
まずは
$ sudo apt-get update && sudo apt-get upgrade
$ sudo apt-get install mercurial
make に必要なパッケージもインストール
$ sudo apt-get install python-dev $ sudo apt-get install gettext $ sudo apt-get install make $ sudo apt-get install unzip
make tests 実行
Mercurial のソースをクローンして、先に i18n/hg.pot を作ってみようと思ったらエラーになってしまった。
$ hg clone http://selenic.com/hg $ make update-pot
osutil が使えないらしい。
$ make local $ make update-pot
これで動いた。
さて、目的の make tests 実行。
$ make tests cd tests && python run-tests.py ......................................s.s....s....................sssssss.ssssss..s...ssss.sssssssss..............................................................s..............................s..........................................................................................................................s........s...........................................................................................s....s.............................. Skipped test-casecollision-merge.t: missing feature: case insensitive file system Skipped test-casefolding.t: missing feature: case insensitive file system Skipped test-check-pyflakes.t: missing feature: Pyflakes python linter Skipped test-convert-baz.t: missing feature: GNU Arch baz client Skipped test-convert-bzr-114.t: missing feature: Canonical's Bazaar client >= 1.14 Skipped test-convert-bzr-directories.t: missing feature: Canonical's Bazaar client Skipped test-convert-bzr-ghosts.t: missing feature: Canonical's Bazaar client Skipped test-convert-bzr-merges.t: missing feature: Canonical's Bazaar client Skipped test-convert-bzr-treeroot.t: missing feature: Canonical's Bazaar client Skipped test-convert-bzr.t: missing feature: Canonical's Bazaar client Skipped test-convert-cvs-branch.t: missing feature: cvs client/server Skipped test-convert-cvs-detectmerge.t: missing feature: cvs client/server Skipped test-convert-cvs-synthetic.t: missing feature: cvs client/server Skipped test-convert-cvs.t: missing feature: cvs client/server Skipped test-convert-cvsnt-mergepoints.t: missing feature: cvs client/server Skipped test-convert-darcs.t: missing feature: darcs client Skipped test-convert-git.t: missing feature: git command line client Skipped test-convert-hg-svn.t: missing feature: subversion python bindings Skipped test-convert-mtn.t: missing feature: monotone client (>= 1.0) Skipped test-convert-p4-filetypes.t: missing feature: Perforce server and client Skipped test-convert-p4.t: missing feature: Perforce server and client Skipped test-convert-svn-branches.t: missing feature: subversion python bindings Skipped test-convert-svn-encoding.t: missing feature: subversion python bindings Skipped test-convert-svn-move.t: missing feature: subversion python bindings Skipped test-convert-svn-sink.t: missing feature: subversion client and admin tools >= 1.3 Skipped test-convert-svn-source.t: missing feature: subversion python bindings Skipped test-convert-svn-startrev.t: missing feature: subversion python bindings Skipped test-convert-svn-tags.t: missing feature: subversion python bindings Skipped test-convert-tagsbranch-topology.t: missing feature: git command line client Skipped test-convert-tla.t: missing feature: GNU Arch tla client Skipped test-gendoc.t: missing feature: Docutils text processing library Skipped test-highlight.t: missing feature: Pygments source highlighting library Skipped test-mq-subrepo-svn.t: missing feature: subversion client and admin tools >= 1.3 Skipped test-no-symlinks.t: system supports symbolic links Skipped test-subrepo-git.t: missing feature: git command line client Skipped test-subrepo-svn.t: missing feature: subversion client and admin tools >= 1.5 # Ran 417 tests, 36 skipped, 0 failed.
一時間くらいかかったかな。長いなぁ。結構スキップされてしまった。
今回スキップされちゃまずそうなものもあったので、パッケージを追加して再テスト。
$ sudo apt-get install python-docutils $ make test-gendoc.t cd tests && python run-tests.py test-gendoc.t . # Ran 1 tests, 0 skipped, 0 failed.
ソースコードの管理
ソースコードの変更は Windows でしたいので、下のような感じで Ubuntu のリポジトリに対して clone, pull, push するようにしてみる。
┌───────────┐ │http://selenic.com/hg │ └───────────┘ ↓ clone, pull ┌───────────┐ │ Ubuntu │ └───────────┘ ↓clone, pull ↑push ┌───────────┐ │ Windows │ └───────────┘
ローカルで使うだけなので、SSL も使わず、誰でも push できるようにしてしまう。
~/.hgrc に以下を追加。
[web] push_ssl = false allow_push = *
これで Web サーバを起動。
$ hg serve
Windows から clone, pull, push ができるようになった。
ソースコードを変更して push したら適宜 make tests を実行するということで。