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 みたいに固定しちゃうのはどうでしょうか?
かずひこ