コンピュータ / 2008/06/09 (Mon) / 編集 |
英語で疲れ、テストでとどめを刺されたので卒論はおいといてSubversion導入してみた。
Subversionはいわゆるバージョン管理ソフト、ソースコードとかを「間違えてけしちゃっとよ!」とか「修正したらコンパイルできなくなった、、、(泣)」とかのときに助けてくれる。
ようはサーバにファイルと更新履歴をとっとくんだが、そのおかげで「三日前の状態にもどしたい!」とかが実現できる、CVSなんかとおなじです。
CVSとの違いで個人的にいいと思うのは「ディレクトリの移動や削除」ができるってこと、間違ったディレクトリをあげてしまった時、CVSだとサーバにログインしてディレクトリを削除してetcとしなければならないがSubversionなら大丈夫!移動はもちろんコピーもできるよ!!
Subversionはいわゆるバージョン管理ソフト、ソースコードとかを「間違えてけしちゃっとよ!」とか「修正したらコンパイルできなくなった、、、(泣)」とかのときに助けてくれる。
ようはサーバにファイルと更新履歴をとっとくんだが、そのおかげで「三日前の状態にもどしたい!」とかが実現できる、CVSなんかとおなじです。
CVSとの違いで個人的にいいと思うのは「ディレクトリの移動や削除」ができるってこと、間違ったディレクトリをあげてしまった時、CVSだとサーバにログインしてディレクトリを削除してetcとしなければならないがSubversionなら大丈夫!移動はもちろんコピーもできるよ!!
インストール
とりあえずクライアント(実際にソースコードとか書いたりする方)はMacOSXなのでやることなんにもない、なんせMacOSXはSubversionがデフォルトでインストールされているから!サーバの方も簡単、 今回はFodoraなのでyumを使用
%sudo yum install subversion mod_dav_svn
終わり。
つづいて設定
まずはサーバ側でレポジトリ(ソースファイルとか格納するとこ)を作成
%cd /var/www
%mkdir svn
%cd svn
%sudo svnadmin create レポジトリ名
%sudo chown -R apache:apache レポジトリ名 <ーアクセス権も忘れずに
つづいて設定ファイル「/etc/httpd/conf.d/subversion.conf 」を修正
といってもコメントアウトをはずすだけ
<Location /repos>
DAV svn
SVNParentPath /var/www/svn
# Limit write permission to list of valid users.
# 認証した人にしか書き込みさせません
<LimitExcept GET PROPFIND OPTIONS REPORT>
# Require SSL connection for password protection.
# SSLRequireSSL #<ーSSLを使う人向け
#Basic認証の設定
AuthType Basic
AuthName "Authorization Realm"
AuthUserFile /etc/httpd/.htpasswd
Require valid-user
</LimitExcept>
</Location>
最後に、認証用のパスワードファイル「/etc/httpd/.htpasswd」を作成、「.htpasswd?なにそれ?」って人は c オプションもつけましょう。
%htpasswd -cm /somewhere/passwd-hoge ユーザ名
さいごにapacheを再起動
%sudo service httpd restart
使ってみる
では使ってみますクライアント側でTearminal.appを立ち上げてレポジトリをダウンロード、 URLは「http://webサーバのアドレス/repos/レポジトリ名/」
%svn checkout URL
この時点でさっきサーバ上に作成した「レポジトリ名」というディレクトリができるが中身は空
とりあえず適当なファイルを作成してサーバに登録してみる
%cd レポジトリ名
%vi test.txt
%cd ../
%svn add レポジトリ名
%svn commit -m 'コメント'
そしてブラウザでURLを見てみる(例)と、、、
という感じです、「外付けハードなんて買う金ねぇよ!」という人はためしてみるといい感じ、ちなみにもちろんバイナリファイル(画像とか)も送れます。
Subversion
[Linux Wiki]Subversion
[Wikipedia]Subversion
Subversionによるバージョン管理(pdf)
PR