cvs2svn
2007-02-16


Windows環境(CVSNT)で、CVS リポジトリを SVN (Subversion) リポジトリ に移行することにした。 移行できるのは当たり前なのかググってみても古いものが多かったので自力で実験開始。

必要なファイル入手

  1. cvs2svn 最新版ダウンロード cvs2svn-1.5.1.tar.gz
    • [URL]
    • ドキュメントはこちら。(ここで問題発覚。CVSNTリポジトリはサポートしていないとのこと。だから情報が少ないことに納得しつつ実験なので続行)
  2. python2.2 or greater
    • Trac月をインストールしているので、すでに Python 2.4.4 がインストールされていた。
    • 本家 See [URL]
  3. co.exe
    • 元々CVSNTリポジトリを移行しようとしているのでCVSNTがインストールされていて、co.exe や cvs.exe が存在したためこのまま使うことにした。
    • パスは \Program Files\CVSNT\co.exe
  4. GNU sort
    • see [URL] Binaries for Win32 can be found at [URL] Windows sort.exe is not adequate.
    • と、説明があったので UnxUtils.zip を探しいった。が、ここからはダウンロードできずForbidden 。 しかたがないのでUnxUtils.zipをググって他のサイトから入手。

cvs2svn のインストール

cvs2svn Documentationには、"make install" でよいと書かれているが、今回はWindows上で実験するので展開したファイルをその場で使う方法にする。

移行方法の決定

cvs2svn Documentationでは次の方法が説明されている。

対象にするCVSNT環境は複雑なこともしていないはずなので、"Full Conversion"で進めてみる(これがcvs2svnのデフォルト動作)。

それから、CVSリポジトリからSVNリポジトリへ直接移行する方法と、ファイルを経由(cvs2svnでファイルを作成して、svnadmin load で取り込む方法)する方法が使えるとのことであるが、ファイル経由でやることにした。

移行手順

  1. 作業場所の確保
    • cvs2svn-1.5.1.tar.gz を展開したディレクトリに移動。C:\cvs2svn とした。
  1. CVSリポジトリのコピー
    • CVSリポジトリの最上位フォルダを作業場所へコピー。フォルダ名は C:\cvs2svn\CVSRep
  2. cvs2svn を実行
    • C:\cvs2svn>python cvs2svn --encoding=SJIS --use-cvs --cvs="C:\Program Files\CVSNT\cvs.exe" --auto-props-ignore-case --auto-props=auto-props.txt --eol-from-mime-type --no-default-eol --keywords-off --mime-types=mime-types.txt --dumpfile=svn1.dump CVSRep
    • オプション類はcvs2svn FAQを参考に試行錯誤してたどり着いたもの
      • --encoding=SJIS  エンコーディングに"SJIS"を指定
      • --use-cvs  cvs.exeを使う方法でうまくいったので指定
      • --cvs=PATH  cvs.exe のパスを指定
      • --auto-props-ignore-case  auto-props の指定で大文字小文字を区別しないように指定
      • --auto-props=FILE  特定のファイルに属性を設定するために指定
      • --eol-from-mime-type  --mime-types=FILE で特定された情報から、svn:eol-style=native を属性に設定するために指定
      • --no-default-eol  mime type が不明な場合は svn:eol-style=native を属性に設定しないために指定
      • --keywords-off  属性に svn:keywords を追加しないために指定

続きを読む

[Subversion]

コメント(全0件)
コメントをする


記事を書く
powered by ASAHIネット