Motomichi Works Blog

モトミチワークスブログです。その日学習したことについて書いている日記みたいなものです。

vagrantの環境にSubversionをインストールしてTortoiseSVNで使ってみる

参考にさせて頂いたページ

Linux/Subversion/yumからインストール - MinacoWiki

SVNサーバの立て方 - Hacking Fun

バージョン管理システム構築(Subversion) - CentOSで自宅サーバー構築

ホストマシン環境

ゲストマシン環境

前提条件

  • 上記のようにツールがインストールされており、vagrantの192.168.33.10にアクセスするとapacheのテストページが閲覧できる。

前提条件がまだの場合

vagrantのインストールからやる場合

既にpackage.boxがある場合

仮想環境にログインする

vagrantの仮想環境にログインします。

vagrant up
vagrant ssh
su
vagrant(パスワード)

yumをアップデート

yum -y update

この段階で

 [Errno 14] PYCURL ERROR 22 - "The requested URL returned error: 404 Not Found"

みたいなやつが沢山出たので、これを直す。エラー出ない場合そのままで大丈夫です。

vagrant上のCentOSでyumがエラーになった件 - モーグルとカバとパウダーの日記

を参考にさせて頂いて、簡易的に6とべた書きしてから、やったら大丈夫だった。

具体的には

vim /etc/yum.repos.d/CentOS-Base.repo

でファイルを開いて、

mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/

となっていたところを

#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
baseurl=http://mirror.centos.org/centos/6/os/$basearch/

にして保存した。

もう一度

yum -y update

を実行したら正常にアップデートされた。

vagrantの環境だしまぁいいかと思ってこのような対応をしたけど、本来はこのような方法をとらない方が良さそうなので、本番のサーバーでこういうエラーが出たら改めてちゃんと調べようと思う。

後日もう一回手順を確認してみようと思って、yum -y updateしたら一発で完了したので、エラーが出たのは何だったのだろうという感じ。

yumsubversionをインストールする

yum -y install subversion

svnのインストール完了した。

svn --version

svnのバージョンを確認してみたら、

svn, version 1.6.11 (r934486)

とのこと。

svnコマンドが使えるようになった。

リポジトリを作成する

mkdir -p /home/svn/repos/
cd /home/svn/repos/
mkdir sample
svnadmin create sample
ls -a sample/

この時点で以下のように表示された。

.  ..  conf  db  format  hooks  locks  README.txt

引き続き参考ページにならって

svn mkdir file:///home/svn/repos/sample/trunk -m "create"
svn mkdir file:///home/svn/repos/sample/branches -m "create"
svn mkdir file:///home/svn/repos/sample/tags -m "create"

を順番に実行すると、ディレクトリが作成されて、その変更がコミットされていく。

次に

cd /tmp/
mkdir sample
cd sample/
vim sample.txt

でテキストファイルを作成した。
vimの使い方がわからない場合は、なんか検索してください。

また、WinSCPなどで、

  • 転送プロトコル:SFTP
  • ホスト名:192.168.33.10
  • ポート番号:22
  • ユーザ名:root
  • パスワード:vagrant

でログインできると思うので、それで/tmp/sample/sample.txtを作成しても良いと思う。

cat sample.txt

でさっき作成したsample.txtの記述内容を一応確認した。

次にリポジトリにファイルをインポートするので、

cd /home/svn/repos/sample/
svn import /tmp/sample file:///home/svn/repos/sample/trunk -m "initial sample"

を実行したら

Adding         /tmp/sample/sample.txt
Committed revision 4.

と表示されて、追加とコミットがされた。

ブラウザでリポジトリの状態を閲覧できるようにする

次に

yum install -y mod_dav_svn

でインストール。

次にhttpd.confを編集する。

vim /etc/httpd/conf/httpd.conf

でファイルを開いて、LoadModuleが沢山書いてあるところに

LoadModule dav_svn_module modules/mod_dav_svn.so

を一行追記して、保存する。

次に

vim /etc/httpd/conf.d/subversion.conf

で、subversion.confを編集する。

記述内容は以下のようにした。

<Location /svn>
  DAV svn
  SVNParentPath /home/svn/repos
</Location>

次にディレクトリの所有者を変更する

chown -R apache:apache /home/svn/repos/sample

一応所有者とグループを確認してみる。

cd /home/svn/repos/
ls -al

すると

drwxr-xr-x 6 apache apache 4096 Sep  3 10:32 sample

となっているので大丈夫そう。

apacheを再起動しないといけないので

service httpd restart

を実行して、正常に再起動されたら[OK]

ブラウザで

http://192.168.33.10/svn/sample/

にアクセスしたら、

sample - Revision 4: /

branches/
tags/
trunk/
Powered by Subversion version 1.6.11 (r934486).

みたいなwebページが表示されて、trunk/のリンクをクリックしたら、sample.txtが表示された。

ホストマシンにTortoiseSVNをインストールする

tortoisesvn インストール

とか

tortoisesvn 日本語化

とかで検索すると良いと思う。

ホストマシンにリポジトリをチェックアウトする

  • ホストマシンのデスクトップに何でも良いんだけど、とりあえずvagrant_svnというディレクトリを作成した
  • 作成したvagrant_svnディレクトリを右クリック
  • SVN Checkout をクリック
  • URL of repository:のところにはhttp://192.168.33.10/svn/sample/trunk
  • OKをクリックする

これでチェックアウトできた。

commitとかrevertとか使ってみる

コミットもできたし、リビジョン戻すのもできた。