«前の日記(2010-08-03(火)) 最新 次の日記(2010-08-05(木))»

vdrめも

検索キーワード:
[PR]:「Chef活用ガイド コードではじめる構成管理 (大型本), (Kindle版)」発売中です。


2010-08-04(水) おりゃ [長年日記]

_ [comp] svn → hg

ローカルにある subversion レポジトリを mercurial レポジトリに変換してみた。本家に Converting Repositories という文書があったのでそれ参考。ただ、何段階か手順を踏む必要があった。

まず svn2hgsvn2hg.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

パッチ等(無保証)

GPG Fingerprint = 0B29 D88E 42E6 B765 B8D8 EA50 7839 619D D439 668E