こんにちは!イッシーです(。・ω・)ノ゙


この度の東日本大地震により、被災されました方々に心よりお見舞い申し上げます。

株式会社プラスアールではささやかながら東日本大地震チャリティとして「禁煙なう」ダウンロード数に応じ上限20万円(1万DL)を日本赤十字社に寄付させていただきます。


僕は生産設備を持っていませんので食料をはじめとした物流における支援は難しいのかもしれません。しかしながらシステムエンジニアとして間接的な支援や情報における支援はできます。僕は、天災における「破壊」を修復するのは人々の「生産」と考えるとともに、その「生産」の一部分を担う者として頑張っていきたいと思います。

さて、突然ですが皆さんはバージョン管理に何を使ってますか?プラスアールではGitでバージョン管理をしてます。大抵の方はGitを使っている、もしくはSubversionからGitへの乗り換えを希望しているのではないでしょうか?

そこで今回はGit!といきたいところですが、Subversionもまだまだ現役だと思いますので、Subversionでバージョン管理する方法をまとめておきたいと思います。

  • 開発サーバーにターミナルでログインしての作業になります
  • 分からない人は分かる人に補助してもらってください
  • 解説は、プロジェクト名:sample.plusr.biz、ユーザ名:ishimotoとしてます
  • ルート権限で作業します

■サーバー側

Subversionは中央集権的に管理するシステムです。大概はサーバーが必要になります。

【step1】グループを作る

プロジェクト名と同じ名前のグループを作りましょう。重複を防ぐためにもドメイン名が最適です。

[cc lang="bash"]
/usr/sbin/groupadd sample.plusr.biz
[/cc]

【step2】グループにユーザを追加

グループにプロジェクトユーザを加えます。

[cc lang="bash"]
gpasswd -a ishimoto sample.plusr.biz
[/cc]

以下のコマンドでも同様の操作が可能ですが、今まで追加したグループを列挙しなければなりません。

[cc lang="bash"]
/usr/sbin/usermod -G sample.plusr.biz,hoge.plusr.biz,fuga.plusr.biz ishimoto
[/cc]

【step3】リポジトリ作成

以下のコマンドを実行しリポジトリを作成します。

[cc lang="bash"]
svnadmin create –fs-type fsfs /usr/local/development/repos/sample.plusr.biz
mkdir /usr/local/development/repos/sample.plusr.biz/trunk
mkdir /usr/local/development/repos/sample.plusr.biz/tags
mkdir /usr/local/development/repos/sample.plusr.biz/branches
[/cc]

【step4】権限設定

グループのユーザに書き込み権限を与えます。

[cc lang="bash"]
chmod -R 0775 /usr/local/development/repos/sample.plusr.biz/
chgrp -R sample.plusr.biz /usr/local/development/repos/sample.plusr.biz/
[/cc]

【step5】インポート

デフォルトの初期状態の雛形がある場合は以下のコマンドでインポートします。

[cc lang="bash"]
svn import /user/local/development/repos/skeleton file:///usr/local/development/repos/sample.plusr.biz/trunk -m
[/cc]

svn import A B でAをBにインポートします。

【参考】

■Windowsクライアント側

クライアント側も基本的にはコマンドで操作可能ですが、TortoiseSVNなどを利用すると非常に作業が楽になります。

【step1】TortoiseSVNのインストール

サイトからダウンロードしてきてインストールします。

サーバのSSHのポートを変更している場合

C:\Users\[your name]\AppData\Roaming\Subversion\configの[tunnels]セクションに以下を追記します。

[cc lang="bash"]
sshdev = “C:/Program Files/TortoiseSVN/bin/TortoisePlink.exe” -ssh -l [username] -P 1234
[/cc]

【step2】puttyのインストール

step2までの手順で使用することはできますが、接続の度に煩雑なパスワード入力が必要になりまし、SSHで接続する際に鍵を使用している方はputtyを使用した方が断然に楽に作業できますので、サイトからダウンロードします。

次にダウンロードしたファイル内の「plink.exe」を「C:\WINDOWS\system32」にコピーしてください。

【step3】puttyの設定ファイルの編集

コマンドプロンプトで以下のコマンドを実行し、svnのconfigファイルのパスを探しconfigファイルを編集します。

[cc lang="bash"]
echo %APPDATA%
[/cc]

出力したフォルダの中の「Subversion\config」ファイルを編集します。以下の記述を

[cc lang="bash"]
#ssh=$SVN_SSH ssh
[/cc]

以下のように記述します。

[cc lang="bash"]
ssh=plink
#ssh=$SVN_SSH ssh
[/cc]

【step4】秘密鍵の登録

puttyフォルダのpageant.exeを起動し、タスクトレイから右クリックで「AddKey」を選択しパスワードを入力します。

【使用方法】

リポジトリの追加
エクスプローラ上の何も無い部分で右クリック > チェックアウト
コミット等の操作
編集したファイル・ディレクトリで右クリック > コミット

【参考】

■Macクライアント側

Macはデフォルトでsvnコマンドが使用できます。しかし、TortoiseSVNが存在しませんので個人的な趣味によりEclipseのプラグイン(Subversive)を使用します。Windows版のEclipseでも同様に使えるので好みに応じて使い分けると良いかもしれません。

【使用方法】

リポジトリの追加(SVNリポジトリのビュー上)
新規 > リポジトリ・ロケーション > 必要項目の入力 > 右クリックしてチェックアウト
コミット等の操作(プロジェクト・エクスプローラのビュー上)
右クリック > チーム > コミット

※コミットをはじめロックの取得など操作が可能

サーバのSSHのポートを変更している場合

Subversiveを使用するときには問題ありませんが、コマンドラインから操作する場合にはポートの指定で上手くいかないかと思います。以下のコマンドを実行して設定ファイルを編集します。

[cc lang="bash"]
vi ~/.subversion/config
[/cc]

[tunnels]セクションに以下を追記します。

[cc lang="bash"]
sshdev = ssh -p 1234 -l ishimoto
[/cc]

すると以下のコマンドでチェックアウトなどの操作ができるようになると思います。

[cc lang="bash"]
svn checkout svn+sshdev://123.123.123.123/usr/local/development/repos/sample.plusr.biz
[/cc]

いかがでしょうか?多少粗雑な部分もあったかと思いますが参考にしていただければと思います。実は自分のプロジェクトでは諸事情によりまして1プロジェクトだけSubversionを使用してますが、今後はGitに統一します。次回はGitでのバージョン管理を解説できればと思います。

Post Navigation