サブリポジトリのせいで正常にクローンできないリポジトリをクローンする

Mercurialだとサブリポジトリsvnとかsshとかgitとかプロトコルが指定できますが、そのせいでクローンできなかったりすることがあると思います。自分も昔そういうリポジトリを作ってしまってどうしようもなくなったりしたときがありました。


で、そういうリポジトリをクローンしてきて、特定のディレクトリだけ取得する場合のコマンドがこちら。

$ hg clone --noupdate https://bitbucket.org/koron/vim-kaoriya
$ hg revert --all --rev tip --include kaoriya

--noupdateでクローンをして、revertで--includeを指定すればそれだけ取得できるみたいです。
逆に--includeでなく--excludeで指定すればそれ以外のものを取得する、ということになります。(確か)


クローンできないリポジトリでない事が一番なのかなーと思いますが、まあそれはそれでしょうがないこともあると思うので、こうやって回避すれば良いかと。