ローカルにある subversion レポジトリを mercurial レポジトリに変換してみた。本家に Converting Repositories という文書があったのでそれ参考。ただ、何段階か手順を踏む必要があった。
まず svn2hg と svn2hg.py を使ってみたけどどうもうまく動かず。手元では yasvn2hg が一番うまく動いたけど、ちょっと修正必要。
--- yasvn2hg.orig 2010-08-04 16:23:16.000000000 +0900 +++ yasvn2hg 2010-08-04 16:30:27.000000000 +0900 @@ -68,7 +68,7 @@ self._debugflag = debug self._use_named_branches = use_named_branches self._hg_dest = hg_dest - self._hg_ui = mercurial.ui.ui(quiet=not debug) + self._hg_ui = mercurial.ui.ui() self._hg_repo = None self._log_path = "%s.log" % self._hg_dest self._log_fp = open(self._log_path, "w")
これは svn レポジトリ全体をまとめてコンバートしてしまうので、あらかじめ svn レポジトリを分割しとかないといけない。参考 > [svn] ひとつのリポジトリを分割して複数のリポジトリを作成する
% svnadmin dump SVN/repos | svndumpfilter include gkrelluim > gkrelluim.dump % svnadmin dump SVN/repos | svndumpfilter include audkrellm > audkrellm.dump % svnadmin create SVN.gkrelluim % svnadmin load SVN.gkrelluim < gkrelluim.dump % svnadmin create SVN.audkrellm % svnadmin load SVN.audkrellm < audkrellm.dump
ここでようやく yasvn2hg の出番。まず svn ユーザを hg ユーザにマッピングするためのファイルを生成。
% python yasvn2hg -g user.map file://`pwd`/SVN.gkrelluim
必要があれば修正。
dai = VDR dai (deb) <d+deb●vdr.jp> unknown = unknown empty = empty
コンバート。
% python yasvn2hg --no-structure --sloppy -u user.map file://`pwd`/SVN.gkrelluim HG.gkrelluim % python yasvn2hg --no-structure --sloppy -u user.map file://`pwd`/SVN.audkrellm HG.audkrellm
これで手元の主要な VCS は mercurial になったけど、さて git はどうしたものか。
前 | 2010年 8月 |
次 | ||||
日 | 月 | 火 | 水 | 木 | 金 | 土 |
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
[amd64 | audacious | comp | debian | gkrelluim | kip | misc | movie | research | rime | unicon | vdr | work | えふえふ]
書いてる人: dai
パッチ等(無保証)