hgsubversionのhg clone --startrev
前置き
hgsubversion自体の導入については↓をどうぞ
hgsubversionの導入 - 文殊堂
ちょっと前までのhgsubversion
ちょっと前までhgsubversionではsvnのリポジトリの完全なコピーを作ることしかできませんでした。
例えば10年物のsvnリポジトリをhg cloneすると10年分の履歴全てを取ってきてしまいます。
目的がsvnリポジトリのコンバートであるなら問題ありませんが、
svnリポジトリを正としつつMercurialの分散SCMの機能を活用して開発をいい感じにやりたい
という場合には困ります。
git-svnのように特定リビジョン以降だけ持ってくるとかやりたいです。
startrev option
で、changeset:827547493112から出来るようになりました。
残念ながら基底のURL(/trunk,/tags/,/branches/がある階層)のcloneについては使えませんが、
trunkや各branchのcloneでなら使えます。
例えば http://python-nose.googlecode.com/svn/ のpy3k branchが欲しいとします。
svn co http://python-nose.googlecode.com/svn/branches/py3k python-nose.py3k.svn cd python-nose.py3k.svn svn log --stop-on-copy
とかやると根元がr562だと分かるので、
hg clone --startrev 562 http://python-nose.googlecode.com/svn/branches/py3k python-nose.py3k
とかやってやれば、branchの分岐点から先端までcloneしてこれます。
そのご普通にpush/pullも出来ます。