Kazuhiko
kazuh****@fdiar*****
2012年 2月 27日 (月) 18:15:13 JST
かずひこです。 今更気づいたのですが、build/makefiles/sphinx-build.am のhgの使い方が間 違っているようです。 sphinx-ensure-updated: if ! $(SPHINX_BUILD_COMMAND) 2>&1 | head -1 | grep 'v1.[2]' -q > /dev/null; then \ $(HG) pull $(SPHINX_DIR); \ fi hg pull の使い方は hg pull [-u] [-f] [-r REV]... [-e CMD] [--remotecmd CMD] [SOURCE] なので、ここは cd $(SPHINX_DIR); $(HG) pull でないとだめで、しかもさらに、 http://mercurial.selenic.com/wiki/JapaneseFAQ によると > 5.6. hg pullとしたのにワーキングディレクトリはからっぽのままです > > Mercurialというシステムにはリポジトリとワーキングディレクトリの2つの概念があります。hg pull はリモートリポジトリでの変更をローカルリポジトリに引っ張ってきますがワーキングディレクトリは変更しません。 > > そのおかげで引っ張ってきた変更をまだマージできずに作業中の状態がめちゃくちゃになるのを防げます。マージもやりやすくなります。 > > ワーキングディレクトリを更新するには、hg updateを実行してください。pullをするときにワーキングディレクトリも更新したい場合はhg pull -uとします。こうした場合はローカルでの変更をマージしたり上書きしたりはしません。 だそうですので、hg update もいりそうです。 というわけで、上記の箇所は (cd $(SPHINX_DIR); $(HG) pull; $(HG) update) じゃないかと思います。 あと、このファイルがgroongaとmroongaで微妙に違っていて、groongaだとgrep v1.2になっていて、mroongaだとgrep v1.1なのですが、取得するタイミングで結 果が異なるのも嫌ですし、適当な「これで動いていそう」なリビジョンで、 hg update -r 3600 みたいに固定しちゃうのはどうでしょうか? かずひこ