2007-02-06

Subversion Quick Start

バージョン管理システムの Subversion を使い始めた。今まで、Bazaar やら darcs やら GNU Arch に手を出していたけれど、バージョン管理ホスティング・サービスの多くが Subversion ベースな状況を鑑み、潮時かなと観念した次第。

Subversion 公認のこちらのサイト (文献) を参考に勉強を始めてる。

クイック・スタート

とりあえず、今、tex-symb.el という単独のファイル (このファイルは今までバージョン管理はしていなかった) を Subversion で管理したい。新規のプロジェクト 作成の手順をメモしておく。

リポジトリの作成

~/svn/tex-symb を、tex-symb.el のリポジトリーにする。

$ mkdir ~/svn
$ svnadmin create ~/svn/tex-symb
インポート

/tmp に、とりあえず tex-symb/{branches,tags,trunk} の三つのディレクトリーを作り、trunk ディレクトリーに tex-symb.el をコピーする。複数のファイルがある場合も、全て trunk ディレクトリーにコピー。

そして、その /tmp/tex-symb 以下をリポジトリーにインポートする。

$ mkdir -p /tmp/tex-symb/branches/
$ mkdir -p /tmp/tex-symb/tags/
$ mkdir -p /tmp/tex-symb/trunk/
$ cp ~/tex-symb.el /tmp/tex-symb/trunk
$ svn import /tmp/tex-symb file:///home/ataka/svn/tex-symb -m 'initial import'
Adding         /tmp/tex-symb/trunk
Adding         /tmp/tex-symb/trunk/tex-symb.el
Adding         /tmp/tex-symb/branches
Adding         /tmp/tex-symb/tags

Committed revision 1.

trunk, branches, tags の三つのディレクトリーは、後でブランチを切ったり、タグを付けたりする時に使うらしい。

作業ディレクトリーの作成

ぼくは、プログラムの作業ディレクトリーを年ごとに分けている。つまり、~/program/2007/PROJECT という感じ。こうしておくと、古いプログラムを見なくて済む。ちょっとした Tips。

で、その ~/program/2007 以下に tex-symb を checkout する。

$ cd ~/program/2007/
$ svn checkout file:///home/ataka/svn/tex-symb/trunk tex-symb
A  tex-symb/tex-symb.el
Checked out revision 1.

checkout の時、file:///.../trunk まで含めること。

ファイルの追加とコミット

ChangeLog ファイルがないことに気付いたので、touch してリポジトリーに追加する。

$ touch ChangeLog
$ svn add ChangeLog
$ svn commit -m 'Add ChangeLog file'

ファイルを編集した時も、svn commit。

$ vi tex-symb.el
$ svn commit -m 'Edit foo'

コミットしたら、アップデートしてログを確認。

$ svn update
At revision 2.
$ svn log
------------------------------------------------------------------------
r2 | ataka | 2007-02-05 17:43:34 +0900 (Mon, 05 Feb 2007) | 1 line

Add ChangeLog file
------------------------------------------------------------------------
r1 | ataka | 2007-02-05 17:31:38 +0900 (Mon, 05 Feb 2007) | 1 line

initial import
------------------------------------------------------------------------

今日はここまで。

No comments:

Post a Comment