Login
Immutable PageDiscussionInfoAttachments
Diff for "ytoku/daily-record/2011-01-21"

MMA
Differences between revisions 2 and 3
Revision 2 as of 2011-01-22 03:42:47
Size: 1334
Editor: ytoku
Comment:
Revision 3 as of 2011-01-22 04:53:43
Size: 2697
Editor: ytoku
Comment:
Deletions are marked like this. Additions are marked like this.
Line 32: Line 32:

= RCSで管理されずにバックアップされていたファイルをログに加える =
RCSで管理されるよりも前のオリジナルバージョンが.bakファイルとしてコピーされて残されていたので、履歴の最初に追加することにした。
先ほど作ったリポジトリを一旦削除して、最初のバージョンをコミットした状態のリポジトリを作った。
{{{
$ rm -r /tmp/hg-repo/mma-active
$ mkdir /tmp/hg-repo/mma-active
$ cd /tmp/hg-repo/mma-active
$ hg init
$ mkdir bin
$ cp -a /ml/mma-active/bin/ryml.pl.bak bin/ryml.pl
$ hg add bin
$ ls -lT bin/ryml.pl
-rwxr-xr-x 1 ytoku wheel 3457 1月 28 03:35:28 1997 bin/ryml.pl
$ hg commit -u (作った人のusername) -d "1997-01-28 03:35:28"
}}}
そして今コミットしたチェンジセットのIDを特定して
{{{
$ hg log --debug
チェンジセット: 0:0762fa563002e01dc7d815cc3d6885a4554d5f0a
...
}}}
splicemapを作成した。具体例が無くてわかりにくい。
{{{
1 0762fa563002e01dc7d815cc3d6885a4554d5f0a
}}}
先ほどの変換処理に`--splicemap`オプションを渡して再実行。これで0番のチェンジセットにオリジナルバージョンが加わった。
{{{
$ hg convert --splicemap splicemap --datesort /tmp/cvs-checkout/mma-active /tmp/hg-repo/mma-active
}}}

RCSからMercurialに変換

いい加減メーリングリストの設定ファイルをRCSで管理するのをやめようということで、既存のリポジトリをMercurialに変換することにした。

Convert extension - Mercurial #Converting from RCS の手順に従って変換を行うことにした。

まずconvert extensionを使用するために~/.hgrcに

[extensions]
hgext.convert=

を設定して、

$ mkdir /tmp/cvs-repo
$ cvs -d /tmp/cvs-repo init
$ mkdir /tmp/cvs-repo/mma-active

そして対象のディレクトリ内にはRCSで管理されていないファイルの方が多かったので、*,vだけをコピーした。

$ mkdir -p /tmp/cvs-repo/mma-active/{bin,config}
$ cp /ml/mma-active/bin/ryml.pl,v /tmp/cvs-repo/mma-active/bin/
$ cp /ml/mma-active/config/RCS/member,v /tmp/cvs-repo/mma-active/config/

そしてこのCVSリポジトリからチェックアウトして、チェックアウトしたディレクトリを使って変換を行った。

$ mkdir /tmp/cvs-checkout
$ cd /tmp/cvs-checkout
$ cvs -d /tmp/cvs-repo co mma-active
$ mkdir -p /tmp/hg-repo/mma-active
$ hg convert --datesort /tmp/cvs-checkout/mma-active /tmp/hg-repo/mma-active

RCSで管理されずにバックアップされていたファイルをログに加える

RCSで管理されるよりも前のオリジナルバージョンが.bakファイルとしてコピーされて残されていたので、履歴の最初に追加することにした。 先ほど作ったリポジトリを一旦削除して、最初のバージョンをコミットした状態のリポジトリを作った。

$ rm -r /tmp/hg-repo/mma-active
$ mkdir /tmp/hg-repo/mma-active
$ cd /tmp/hg-repo/mma-active
$ hg init
$ mkdir bin
$ cp -a /ml/mma-active/bin/ryml.pl.bak bin/ryml.pl
$ hg add bin
$ ls -lT bin/ryml.pl
-rwxr-xr-x  1 ytoku  wheel  3457  1月 28 03:35:28 1997 bin/ryml.pl
$ hg commit -u (作った人のusername) -d "1997-01-28 03:35:28"

そして今コミットしたチェンジセットのIDを特定して

$ hg log --debug
チェンジセット:   0:0762fa563002e01dc7d815cc3d6885a4554d5f0a
...

splicemapを作成した。具体例が無くてわかりにくい。

1 0762fa563002e01dc7d815cc3d6885a4554d5f0a

先ほどの変換処理に--splicemapオプションを渡して再実行。これで0番のチェンジセットにオリジナルバージョンが加わった。

$ hg convert --splicemap splicemap --datesort /tmp/cvs-checkout/mma-active /tmp/hg-repo/mma-active

ytoku/daily-record/2011-01-21 (last edited 2011-01-22 06:02:27 by ytoku)