スキマハコ

わすれがちなスキマな事を詰め込んでいます。ITの他に暮らしについても書いています。

MercurialとSubversionの連携

Subversionで管理しているリポジトリをマスタとして、後は自分でローカルにbranch分けていろいろしたい!と思っていたので、表題についてはずっと憧れてた。
今回なんとか導入出来たので、その手順など。

環境は中央リポジトリsvnでWindows2003、クライアントはWindows7

参考:
HgSubversion
HgSubversionでMercurialとSubversionを連携させる
hgsubversionの導入
hgsubversionでFreeBSD svnをもってくる

だいたい↑のところを見ていたらなんとかなる。

連携のためにやること。

  1. Subversionのインストール
  2. Mercurialのインストール
  3. hgsubversionのインストール
  4. Mercurialファイルの設定
  5. svnのクローンを作ってリポジトリ

Subversionのインストール

TortoiseSVNではだめらしいので、Apatch Subversionの何かしらをダウンロード。コマンドを提供してないとだめ!らしい。
参考にしたHPのLinkをたどってmsiをダウンロード。
→今回ダウンロードしたバージョン(Setup-Subversion-1.6.6.msi

Mercurialのインストール

これはTortoiseHgでよい。インストールされるし、パスも通る。
 TortoiseHgをインストールしました。デフォルトまんま。
→バージョン:tortoisehg-2.2-hg-2.0-x86.msi

hgsubversionのインストール

 MercurialSubversionの連携に必要。
 コマンドライン(コマンドプロンプト)でインストール。

# プロキシの場合で接続しているときは、プロキシをセット。
set http_proxy=XX.XX.XX.XX:ポート番号
# ダウンロードしたいディレクトリに移動後、ダウンロードのコマンドを実行。
hg clone http://bitbucket.org/durin42/hgsubversion
# パラメタにインストールパス指定してもいいよ。
hg clone http://bitbucket.org/durin42/hgsubversion
win32text is deprecated: http://mercurial.selenic.com/wiki/Win32TextExtension
abort: error: getaddrinfo failed

なんかエラーが出る。wikiを確認したら、Mercurialの環境設定ファイルに以下を追記しろとのこと。

[win32text]
warn = False

メモ)
環境設定ファイルの場所はどうやら一定じゃないらしい。ダウンロードしたバージョンやOSによるのかも。
TortoiseHgは(Windows) %USERPROFILE%\Mercurial.iniにありました。
(Windows) %USERPROFILE%\.hgrc
(Windows) %USERPROFILE%\Mercurial.ini
(Windows) %HOME%\.hgrc
(Windows) %HOME%\Mercurial.ini

(Unix, Windows) /.hg/hgrc
Configure your hgrc to enable the extension by adding the following lines:

Mercurial環境設定ファイルへ追記

ダウンロードしたhgsubversionへのパスを指定。
hgsubversionが二つ出来ているので、二つ目までをパスに指定。

[extensions]
hgsubversion = (任意のダウンロードディレクトリ)/hgsubversion/hgsubversion

次!にsvnのための追記。

[extensions]
rebase=
svn=(任意のダウンロードディレクトリ)/hgsubversion/hgsubversion

これでsvn://に対してダウンロード(クローン?)が可能になる。

文字化け対策

utf-8はいろいろ文字化けるらしい。
また、svnのコミットログも化ける。

変換のツールダウンロード。
hg clone http://bitbucket.org/tinyfish/hg-fixutf8/

それにしたがってhg環境ファイルも書き換え。

[extensions]
fixutf8= (任意のダウンロードディレクトリ)/hg-fixutf8/fixutf8.py

とおもったら、だめっぽい。
これがなんかじゃまする!
Hgが動かなくなる!!!!!!!!!!!!!
コマンドプロンプトの文字化けは解消するんだけど、動かないんじゃ意味ないよね。。。

環境変数に追加

HGENCODING=utf-8
HGENCODINGMODE=replace →これはまだ試してない。

svnのクローンを作ってリポジトリ

hg clone svn://XXXX/repo
(hg clone --startrev リビジョン番号 svn://XXXX/repo)

うまくいくはず!