hgsubversionの導入
基本的にhttp://monkeyisland.pl/2009/11/04/hgsubversion-on-windows/を参考にする
svnをインスコする
hgsubversionを使うにあたってはsvnコマンドのインストールが必要。
TortoiseSVNが入っていてもダメ。
Apache Subversion
設定時に知っておくべきことか
http://mino.blog.eonet.jp/minoproject/2009/08/windowssubversi.html
Subversionのリポジトリをsvn+sshで管理する - Lism.in * blog - nekoya (id:studio-m)
Mercurialをインスコする
こちらはTortoiseHGを入れれば入るので、
好みに応じてTortoiseHGもしくはMercurial本体のみをインストールする。
Bitbucket | The Git solution for professional teams
Mercurial SCM
設定
rebase extensionの有効化とsvn extension(hgsubversionのこと)のディレクトリ指定を行う。
例えば、以下のような感じで設定する。
cloneしてきたhgsubversionディレクトリの下のhgsubversionディレクトリを指定すること。
[extensions]
rebase=
svn=C:\my\tool\hgext\hgsubversion\hgsubversion
環境変数
環境変数HGENCODINGMODEにreplaceを指定する。
普通に使っている分には前段までの設定でOKだが、
commit logにダメ文字が含まれているsvnリポジトリをcloneする際に
この設定が必要になる。
例えば、あるリポジトリのリビジョンに「末尾の余分な改行を除去」
というコメントがSJISで入ってしまっていた場合に、
abort: decoding near '末尾の余分': 'utf8' codec can't decode byte 0x96 in position 0: unexpected code byte!
などと出てcloneが失敗してしまっていたが、この設定を入れれば、
「????]????????」のようになるだけで、clone自体は成功するし、
その後のリポジトリ操作にも支障をきたさない。