【cygwin】svn環境を作る


1. 背景

CVSについては必要最低限のことを確認したので、今度はSubversionに移行。簡単にメモを残す。
ディレクトリ構成は「1リポジトリ1プロジェクト」を前提としたもの。

2. Svn環境の作成と登録

コマンド中の $REPOSITORY_PATH_TO は 次の通りとする:

file:///cygdrive/c/Users/$USER/MEGA/$HOSTNAME/svn_repository

2.1. Svn環境の作成

$ cd /cygdrive/c/Users/$USER/MEGA/$HOSTNAME
$ mkdir svn_repository
$ svnadmin repository

2.2. 初期ディレクトリの作成

$ cd /tmp
$ svn checkout $REPOSITORY_PATH_TO cygwin
$ cd cygwin
$ svn mkdir trunk
$ svn mkdir branches
$ svn mkdir tags
$ svn commit -m "initial directories" trunk branches tags
  • cygwin は登録されないので何でもいい。

2.3. IMPORT

svn import から除外するディレクトリ,ファイルを登録する

$ vi .subversion/config
$ egrep ^global-ignores .subversion/config
global-ignores = CVS .cvsignore .data .temp 

tools をIMPORTする。

$ svn import tools $REPOSITORY_PATH_TO/trunk
  • tools が登録対象のファイルがあるディレクトリ
  • trunk の下に tools が作成される

2.4. CHECKOUT

次のように被せるようにcheckoutすると、tools/.svn が出来る

$ svn checkout $REPOSITORY_PATH_TO/trunk/tools tools

何故か全て D マークが付くので、svn revert で対処する

svn status | cut -c9- | xargs svn revert

3. コマンド

3.1. たまに使う

  • svn ls $REPOSITORY_PATH_TO
  • svn add --depth empty dir dirのみ登録
  • svn add --depth files dir dirと配下のファイルを登録
  • svn add dir dir以下全ての登録。恐らく --depth infinity と同じ
  • svn propedit svn:ignore dir

3.2. 普段使う

  • svn status
  • svn update
  • svn commit

3. 課題

  • 被せるようにcheckoutするとDが付く理由の調査

4. CVS環境からの移行について

  • 方針
    • これまでの履歴はCVSで保存しておいて、これからの変更をSubversionで管理する
  • やること
    • CVSや.cvsignoreなど、作業環境にあるCVS固有のディレクトリやファイルを無視する設定をする
    • subversion環境の適切なパスへIMPORTする。
    • チェックアウトして出来る「.svn」を無視する設定。
    • CVS, Subversion双方でのリリースタグやブランチの設定。

以上