Subversion〜SCMツール

Mercurialを断念。
とりあえずSubversion。


インストール

RHELだとrpmファイルがありお手軽にできる。
  • 必要なファイル
    • apr-0.9.4-24.5.i386.rpm
    • apr-devel-0.9.4-24.5.i386.rpm
    • apr-util-0.9.4-21.i386.rpm
    • apr-util-devel-0.9.4-21.i386.rpm
    • mod_dav_svn-1.1.4-2.ent.i386.rpm
    • subversion-1.1.4-2.ent.i386.rpm
    • subversion-devel-1.1.4-2.ent.i386.rpm
    • subversion-perl-1.1.4-2.ent.i386.rpm
    • httpd-2.0.52-22.ent.i386.rpm
httpdはApacheをソースからインストールしてもいい。ただ、mod_dav_svnをインストールすると、/etc/httpd/modules 配下にインストールされるので適宜ファイルを移動する。
  • インストール
    rpm -ivh *.rpm
    これで適切な順番でインストールしてくれる。もし不足しているファイルがあれば指摘してくれるので、インストールする。
  • httpd.confの設定
    conf.d/subversion.confを読み込むようにする。Apacheをソースからインストールした場合は、/etc/httpd/cond.f/subversion.conf を INSTALLDIR/conf/ 配下にもっていき、そのファイルをIncludeする。
  • subversion.confの修正
    • レポジトリURLを決める。http://<server名>/repos とする場合は <Location /repos> とする。
    • レポジトリの実パスを決める。たとえば /var/www/svn 。
      決めたら、まずApacheが読み書きできるようにする。
       chown -R nobody:nobody /var/www/svn
      次に<Location /repos> 中に書く。
        SVNParentPath /var/www/svn
    • パスワードファイル設定
      subversion.confの中でBasic認証をするように設定されているので、対応するパスワードファイルを作成する。作成にはApache付属のhtpasswdを利用する。
       htpasswd -b -c /etc/httpd/.svnpasswd username password (最初にファイルを作成する場合)
       htpasswd -b /etc/httpd/.svnpasswd username password (ユーザを追加する場合)
    • レポジトリの作成
       cd /var/www/svn
       svnadmin repo1
       chown -R nobody:nobody repo1
      作成したレポジトリはApacheが書き込みできるように所有者を変えておく。忘れると利用できない。
  • httpd.confの確認
    apachectl -t で確認。問題があるとここでエラーが表示される。
    • エラー例(1)
      /usr/lib/libsvn_fs_base-1.so.0: undefined symbol: db_create
      ApacheをBerkeleyDB対応なしでコンパイルしていることが原因。Apacheのconfigure実行時に、--with-berkeley-db をつける。
  • 起動後、アクセスし確認
    http://<ホスト名>:<ポート番号>/svnrepos/repo1 にアクセスし表示されればOK。

  • Windowsクライアントのインストール~TortoiseSVNをインストール。なんといっても使いやすい。ここからダウンロード。msi形式のインストーラなので、画面の指示に従って行えば簡単に終了。
    インストール後、コンピュータの再起動を要求された場合は、指示通り実行する。

使い方

サーバがLinux、クライアントがWindows、という利用形態を想定。
  1. サーバ側でレポジトリを作る。
     cd /var/www/svn
     svnadmin <レポジトリ名>
     ブラウザでアクセス確認。http://<サーバ名>:<ポート番号>/svnrepos/<レポジトリ名>>
  2. クライアント側で、SVN管理対象のファイルをレポジトリに追加する。フォルダ配下にまとまっていると便利。
    1. フォルダを右クリックし、TortoiseSVN→Importをクリックする。
    2. 「URL of repository」にサーバ上のレポジトリのURLを入力し「OK」を押す。エラーが出なければ完了。
      (注意)最初にクリックしたフォルダはレポジトリに入らない。その1階層下から。
  3. 確認。フォルダ/ファイルを右クリックし、TortoiseSVN→Repo-browserを起動。レポジトリのURL を入力すると、レポジトリの中身が表示される。
  4. checkout。作業用のフォルダを作成し、右クリック。Tortoise-SVN→Checkout。URLを入力する。エラーが出なければOK。フォルダのアイコンがSVNのアイコンに変わったら「フォルダがSVN管理下になった」という証。
  5. 編集。checkoutしたファイルを編集する。
  6. commit。編集が完了したらcommitを実行。ファイル・フォルダを右クリックし、TortoiseSVN→Commitをクリック。必要に応じてcommit messageを入力しOKをクリックする。エラーが表示されなければ完了。
  7. 変更確認。commitしたファイルを右クリックし変更箇所を確認してみる。TortoiseSVN→Show log を実行。変更日やcommitメッセージを確認できる。
2008年04月22日(火) 11:41:55 Modified by ysshn65535




スマートフォン版で見る