MercurialでGitのsubmodule?

Gitのsubmoduleをよく知らない(というかGitを全然知らない)のでMercurialの.hgsubとどの程度違うのかわからないけど……

~/aaa
モジュールのリポジトリ
~/bbb
モジュールのリポジトリに依存するリポジトリ

モジュールのリポジトリ

$ cd ~/
$ hg init aaa
$ cd aaa
$ touch aaa
$ hg add
$ hg ci -m "add aaa"

モジュールに依存するリポジトリ

$ cd ~/
$ hg init bbb
$ cd bbb
$ hg clone ../aaa
$ echo 'aaa = ../aaa' > .hgsub
$ hg add
$ hg ci -m "add .hgsub"
$ ls -1AF
.hg
.hgsub
.hgsubstate  #なんかできてる
aaa/
$ cat .hgsubstate
3323fb1550fbf259fe5c907dcf66dad4c3697097 aaa
$ cd aaa
$ hg sum
親リビジョン    : 0:3323fb1550fb tip
 add aaa
ブランチ        : default
想定 commit 結果: (改変無し)
update 候補     : (現行のまま)

モジュールのリポジトリを更新

$ cd ~/aaa
$ touch aaa.aaa
$ hg add
$ hg ci -m "add aaa.aaa"

モジュールに依存するリポジトリをクローンしてみると

$ cd ~/
$ hg clone bbb ccc
$ cd ccc
$ ls -1RF
.:
aaa/  # モジュールのリポジトリもクローン

./aaa:
aaa

モジュールに依存するリポジトリでモジュールを更新

$ cd ~/bbb/aaa
$ hg pull -u
$ hg st  # 何もない
$ hg ci -m "update aaa"  # aaaがアップデートされる
$ cd aaa
$ hg sum
親リビジョン    : 1:d7c5bd358a6f tip
 add aaa.aaa
ブランチ        : default
想定 commit 結果: (改変無し)
update 候補     : (現行のまま)
$ cd ../
$ cat .hgsubstate
d7c5bd358a6f7947c69f03fedef0a6e9a2c902c9 aaa

モジュールに依存するリポジトリを再度クローンしてみると

$ cd ~/
$ hg clone bbb ccc
$ cd ccc/aaa
$ hg sum
親リビジョン    : 1:d7c5bd358a6f tip
 add aaa.aaa
ブランチ        : default
想定 commit 結果: (改変無し)
update 候補     : (現行のまま)
$ cd ../
$ cat .hgsubstate
d7c5bd358a6f7947c69f03fedef0a6e9a2c902c9 aaa


つまり…… えーと。

ってとこ?