somemo programming etc.

プログラマ、雑記、プログラミング関係はLinkから、数式はこっちでまとめていることが多い

【Subversion】ソース管理基本

今回は、Subversionで  リポジトリの作成  インポート  タグへのコピー  リモートからのリポジトリ参照設定 を行います。 1.レポジトリの作成  下記のコマンドを実行してリポジトリを作成します。  リポジトリはディレクトリとして作成されます。  そのディレクトリの親ディレクトリは前もって作成しておく必要があります。   svnadmin create sf-band   lsコマンドを実行すると、sf-bandディレクトリが作成されていました。 2.レポジトリ内のディレクトリ作成  下記のディレクトリを作成します。   trunk:開発用   tags:あるバージョンのコピー   branches:ブランチ用、開発が並行したときなど  下記コマンドを実行して作成します。   svn mkdir -m "メッセージ" パス   ※メッセージが必要な理由は、コミットを伴うときに必須のためです。   [trunk]   svn mkdir -m "create trunk" file://localhost/var/repos/sf-band/trunk   実行結果:    リビジョン 1 をコミットしました。   [tags][branches]   (\は(端末上はバックスラッシュで表示される)、次の行にコマンド入力を移すようです。)   svn mkdir -m "create tags and branches" \   file://localhost/var/repos/sf-band/tags \   file://localhost/var/repos/sf-band/branches   実行結果:    リビジョン 2 をコミットしました。  下記コマンドを実行して、作成されたかを確認します。   svn co file://localhost/var/repos/sf-band/trunk tr_test   実行結果:    リビジョン 2 をコミットしました。   lsコマンドを実行すると、tr_testディレクトリが作成されていました。   3.ソースのインポート  cacheディレクトリとlogディレクトリの中身以外をインポートしようと思います。  lib/vendor/symfonyディレクトリは参照することがあるかもしれないのでインポートします。  まず、cacheディレクトリとlogディレクトリの中身をからにしておきます。   rm -rf /var/www/html/sf14/log/* /var/www/html/sf14/cache/*  下記コマンドを実行し、バージョン管理されていないファイルやツリーをリポジトリに入れてコミッ トします。   svn import -m "first import to trunk" /var/www/html/sf14 file://localhost/var/repos/sf-band/trunk     実行結果:    追加しています    (これがたくさん表示されます。)    リビジョン 3 をコミットしました。   下記コマンドを実行し、インポートしたソースをチェックアウトします。    svn co file://localhost/var/repos/sf-band/trunk   差分が存在するかを確かめるために書きコマンドを実行します。    diff trunk/ /var/www/html/sf14 > diff.txt   txt内に差分が存在していることが記載されていましたが、svn関連のものだけでした。   インポートが無事完了したことを確認できました。 4.タグへのコピー作成  下記のコマンドを実行し、trunkのソースをtagsにコピーします。  trunkのコピーをrelease1.00としてタグにコピーします。   svn copy -m "trunk copy to tags release1.00" file://localhost/var/repos/sf-band/trunk file://localhost/var/repos/sf-band/tags/release1.00   実行結果:    リビジョン 4 をコミットしました。   下記コマンドを実行し、コピーしたソースをチェックアウトします。    svn co file://localhost/var/repos/sf-band/tags/release1.00   trunkと同じ構成のディレクトリがコピーされていました。 5.リモートからの接続  Subversion専用のサーバー svnserve を用いてリモートから接続できるようにします。  下記コマンドを実行して、svnserveを起動します。   /etc/init.d/svnserve start  ホストOSからTortoiseSVNでアクセスします。   URL:svn://svnserveを起動しているサーバのIP/var/repos/sf-band/trunk   5.のおまけ  このままでは誰でも参照・コミットできてしまうので、  下記コマンドを実行して、リポジトリsvnserve設定をします。   vim sf-band/conf/svnserve.conf   [general]の下記項目を変更・コメントから復帰します    anon-access = none    auth-access = write    password-db = passwd    anon-access:     認証なしの場合に行える行動の指定     コメントアウト時は、読み込みのみ(read)     none:何も行えない    auth-access:     認証をとおったユーザが行える行動の指定     コメントアウト時は、読み込み・書き込み(write)    password-db:     passwordを設定するファイルの指定     ディレクトリは、リポジトリ/conf     コメントアウト時は、認証なしになる    password-dbで指定したファイル:     [users]の項目に下記のフォーマットで追記する     ユーザ名 = パスワード 以上。