Subversion メモ

Last-modified: 2009-08-23 (日) 05:20:54
 
Subversion

自作アプリのバージョンが増えてきてプロジェクト管理がしにくくなってきたのと、
ちょくちょく寝ぼけておかしな上書き保存をしてしまう等の理由により Subversion 導入です。
参考サイトさんまんまな部分は別として、その他は行き当たりばったりで適当にやっているのであまり信用しないでください。

 

Subversion 導入手順(ver1.4.4)

参考:井原の学習帳 「macのsubversion 設定」
環境:IntelCPU+MacOS10.4.10
2007-07-27
 

ダウンロード

インストール

  • Subversion → インストーラーがついてるので簡単です。
  • SCPlugin → SCFinderPlugin.pluginをホームの /Library/Contextual Menu Items/ に移動して再起動で完了です。
  • その他 → 普通のアプリです。

メモ

$
ターミナルに普通のユーザー権限でコマンドを打ってねということらしいです(ルート権限だと # になる模様)。
リポジトリ
Subversionが管理するバージョン別ファイル情報みたいなものや元になるファイルを置く場所っぽいです。
バックアップはこのフォルダごと取ったりするみたいです。
ワーキングコピー
リポジトリの元ファイルから作業フォルダにファイルをコピーして、こっちを変更したりします。
そしてコミットするとリポジトリのファイルが更新されるのです多分。

準備

参考サイトまんまですいません。

 

ターミナルから

$ vi .bash_profile
 

[ i ] キーを押して NewFile で下記を入力

PATH=/usr/local/bin:$PATH
export PATH
MANPATH=/usr/local/man:$MANPATH
export MANPATH
INFOPATH=/usr/local/info:$INFOPATH
export INFOPATH

[ esc ] [ : ] [ w ] [ q ] キー

 
$ exit
 

ターミナルを開き直して

$ svn
Type 'svn help' for usage.
 

ここまで井原の学習帳さんのまんまです。
これは通ったと言うのですかね?よくわからないから言われたとおり help を呼んでみます。

$ svn help
usage: svn <subcommand> [options] [args]
Subversion command-line client, version 1.4.4.
…ヘルプ行沢山…
Subversion is a tool for version control.
For additional information, see http://subversion.tigris.org/
 

こんな感じで表示されました。大丈夫そうです!

 

リポジトリの作成

気付くといつのまにかHDD直下に /var フォルダができ、その中にも色々できていました。
その中にリポジトリ用のディレクトリを作ることにします。

 
■ディレクトリ(/var/svn/JuzuRepos)
HDD
 ├ …
 ├ var ─ svn  ─ JuzuRepos  ←これをリポジトリにしたい
     ├ …
 

svn 以下のディレクトリは存在しないので作ります。

$ sudo mkdir /var/svn
 

自分権限にします。

$ sudo chown -R MameApp(ユーザー名):MameApp(ユーザー名) /var/svn
 

その中にリポジトリ作成です。

$ svnadmin create /var/svn/JuzuRepos
 

よくわかりませんが trunk、branches、tags の3フォルダを皆さん作っているみたいです。作ります。
「-m」の後ろには更新コメントを書きます。バージョン番号だけじゃどこを変更したのかわかりませんもんね。

$ svn mkdir file:///var/svn/JuzuRepos/trunk -m 'make trunk'
Committed revision 1.
$ svn mkdir file:///var/svn/JuzuRepos/branches -m 'make branches'
Committed revision 2.
$ svn mkdir file:///var/svn/JuzuRepos/tags -m 'make tags'
Committed revision 3.
 

フォルダ作るだけでリビジョン番号があがってます。ちゃんと動いてますね。
同様にして、trunk の中に src、product の2フォルダも作成しました。
さてリポジトリのディレクトリ構成はできましたが、中身が空です。
ここで Juzu のプロジェクトを追加するのですが、追加前にプロジェクト内の不要なファイルを削除して整理しておかないと後で面倒な目にあいます。あいました。

 
■ディレクトリ(/var/svn/JuzuRepos/trunk/src)
HDD
 ├ …
 ├ var  ─ svn ─ JuzuRepos ─ trunk	   ─ src ←この中に追加したい
      ├ …          ├ branches └ product
                 └ tags
 

■ディレクトリ(~/Documents/Xcode/juzu)
~/Documents
 ├ …
 ├ Xcode ─ juzu ←この中身を追加したい
       ├ …
 

の juzu 以下ディレクトリ毎追加するには、
cd コマンドで ~/Documents/Xcode まで移動します。

$ svn import juzu file:///var/svn/JuzuRepos/trunk/src -m 'juzu import'
 

これでディレクトリのファイルを追加している表示が出て、完了です。

このあたりでパーミッションエラーになる人は chown のところで失敗していると思われます。
再度 chown を試すか、Command + [ i ] の情報ウィンドウから svn 以下全ファイルオーナー自ユーザで読み書き可能にしたら通ると思います。

ワーキングコピーを作る

作業フォルダへチェックアウトするとワーキングコピー作成になるみたいなので、適当に作業フォルダを作ります。

 
■ディレクトリ(~/Documents/Xcode/WORK/Juzu)
~/Documents
 ├ …
 ├ Xcode  ─ juzu
       ├ WORK ─Juzu ←これを作業フォルダにする
       ├ …    ├ …
 

cd コマンドで ~/Documents/Xcode/WORK/Juzu まで移動します。

$ svn checkout file:///var/svn/JuzuRepos/trunk/src
 

これでディレクトリのファイルをチェックアウトしている表示が出て、完了です。
作業フォルダの中にファイルが追加されているか確認してください。
SCFinderPlugin のコンテキストメニューのチェックアウトでも同様の事ができます。

Subversion アップデート手順(ver1.4.4>>ver1.6.2)

環境:IntelCPU+MacOS10.5.8
2009-08-23
 

ダウンロード

インストール

  • Subversion → インストーラーがついてるので簡単です。
  • SCPlugin → インストーラーがついてるので簡単です。
  • その他 → 普通のアプリです。

アップデート

インストール後、バージョンをチェック。まだ1.4.4。

$ svn --version
svn, version 1.4.4 (r25188)
   compiled May 31 2008, 03:45:57
$ svn help
usage: svn <subcommand> [options] [args]
Subversion command-line client, version 1.4.4.
 

/usr/bin/svn*
1.4.4のがここにインストールされています。tarやらでバックアップしておきます。

 

/opt/subversion/bin/svn*
1.6.2のはこっちにインストールされています。シンボリックリンクをぺったり。

 
$ sudo ln -s /opt/subversion/bin/svn svn
$ sudo ln -s /opt/subversion/bin/svnadmin svnadmin
$ sudo ln -s /opt/subversion/bin/svndumpfilter svndumpfilter
$ sudo ln -s /opt/subversion/bin/svnlook svnlook
$ sudo ln -s /opt/subversion/bin/svnserve svnserve
$ sudo ln -s /opt/subversion/bin/svnsync svnsync
$ sudo ln -s /opt/subversion/bin/svnversion svnversion
 

.bash_profile を編集します。
私はMacBookを買い替えたためファイルがなかったため再作成。

$ vi .bash_profile
 

[ i ] キーを押して NewFile で下記を入力

PATH=/opt/subversion/bin:$PATH
export PATH
MANPATH=/opt/subversion/man:$MANPATH
export MANPATH
INFOPATH=/opt/subversion/info:$INFOPATH
export INFOPATH

[ esc ] [ : ] [ w ] [ q ] キー

 
$ exit
 

ターミナルを開き直してバージョンをチェック。無事完了で1.6.2。

$ svn --version
svn, version 1.6.2 (r37639)
   compiled May 14 2009, 14:34:54
$ svn help
usage: svn <subcommand> [options] [args]
Subversion command-line client, version 1.6.2.
 

GUI で操作する

SCFinderPlugin を使ってみる

Finder と統合系はあまり好まないのだけれど、アイコンオーバーレイにより Finder 上でステータス表示されるのは便利そうなので導入決定です。
1.6.2バージョンは今のところうまく表示されない…。(2009/08/23追記)

 
SCFinderPlugin

svnX を使ってみる

こんなかんじでリポジトリとワーキングコピーそれぞれウィンドウが開きます。
リポジトリのリビジョン番号が1以上でないとエラーが出ました。
現在は基本Terminal、たまにsvnXでやってます。使いやすい訳ではないけれど、他にない。(2009/08/23追記)

 
svnX
svnX
svnX
svnX

※オレンジ星はユーザー名部分です

Subcommander を使ってみる

慣れると使いやすいと噂の Subcommander、まだ使い始めだからか使いにくい。
しばらく svnX と併用してレビューしたいです。
操作に慣れず使用を断念。(2009/08/23追記)

 
Subcommander
Subcommander

iSVN を使ってみる

シンプルで使いやすそう。と思ったのですが、Browse JuzuRepos... で落ちます。
多分私の環境がどこかアレなのでしょうが、なぜだろう…良さそうなのに残念。

Versions を使ってみる

他に試したSubversionクライアントと比べると、直感的で大変使いやすいです。
ただし€39、約$56とたまのブラウズに使うにはお高いので買うには至りませんでした。
仕事で使う必要が出ればぜひ買いたいです。
たいした内容はないですが、この辺で試してみてたらしい