subrepoをさらに便利に使うためにはsubpathsを使おう
これの続き。
subrepoは確かに便利なんだけども、あるシチュエーションでは使いにくいことになる。
- サーバの名前が変更されたとき
- 場所によってpushする先が違うとき(滅多にないだろうけど)
例えば、あるマシンAではsubrepo Aにpushしたりpullしたいが、あるマシンBではsubrepo Bにpushしたりpullしたい、だけど履歴は共有したい、なおかつマシンBからsubrepo Aはアクセス出来ない場合(マシンAを中心に履歴は共有する)。あるのか?というぐらい限定的だけども、現在自分が困っていて、その解決策っぽいのが見つかったのでメモ。
解決先はこれ -> http://mercurial.selenic.com/wiki/SubrepoRemappingPlan
前回 .hgsub にリポジトリのURLを記述していたが、今回はリポジトリのエイリアスを記述する。
echo subdir = subrepo_name > .hgsub
.hgsubはこうなる。
subdir = subrepo_name
次にメインリポジトリの.hg/hgrcに[subpaths]を記述する。
[subpaths] subrepo_name = https://bitbucket.org/toruuetani/virtualenv-scaffold
subdirとsubrepo_nameはかぶらないようにすること。同名だとsubrepoがネストしてたりすると余計な置換が働いて、正しいURLにならないことがある?