Subversionを使ってWebサイトを管理する方法

Vine Evo / Subversion hacks

SubversionによるWebサイトの管理

AGL's Gamers Labo / ProEvo / Vine Evo / Subversion hacks / SubversionによるWebサイトの管理

Subversionを使ってWebサイト上のHTMLファイルなどの各種ファイルをバックアップする方法


【技術スタッフ募集】A8.net

1. サイトの管理とは

1.1 サイトの管理について

Subversionは主にソフトウェア開発で使われていますが、その能力はこれで終わるものではありません。
日々の追加や変更、さらにその履歴や削除した変更を復活したいといったことがあるプロジェクトすべてで使うことができます。

ここでは日々の変更が多い、Webサイトの管理にSubversionを使う方法を説明します。
なお、Windows上でのSubversionの使い方はWindows Evo / subversion hacksを参考にしてください。

1.2 どのようにサイトを管理するか

Subversionではファイルを更新するごとにリビジョン番号がつきます。この番号はリポジトリ全体につくため、Webサイトでどのように変更したかの履歴を管理するには少し不都合です。
ここではWebサイト管理用にリポジトリを作成し、複数リポジトリでリビジョン管理する方法を使います。

また、Subversionではプロパティを設定することで変更履歴のリビジョン番号、変更日時をファイルに反映できます。
この機能を使用して、最終更新日時をWebサイトに表示する方法も説明します。

2. サイトを管理する

2.1 どのようにサイトを管理するのか

Subversionではリポジトリごとにリビジョン番号を管理しています。ここではWebサイト単独でリビジョン管理をするためリポジトリを作り直し、Webサイトを登録・管理しています。
次の手順で、Webサイトを管理します。

  1. Webサイト管理用にリポジトリを作り直す
  2. リポジトリにWebサイトを登録する
  3. Webサイトにリビジョン管理番号をつける

2.2 リポジトリを作り直す

Subversionのインストールで作成したリポジトリですと、/var/svn/下のディレクトリにリポジトリを作成できません。
そのため、/var/svn/下の各ファイルを削除し、/var/svn/下に複数のリポジトリを作成して管理します。Webサイト管理用には/var/svn/aglを使用します。
次の手順で、Webサイト管理用リポジトリを作成します。

  1. suでSubversion管理ユーザーsvnになります。
    
    [atsushifx@agartha atsushifx]$ su svn
    パスワード(P):******
    bash-2.05b$
  2. /var/svnに移動し、すべてのファイルを削除します。
    
    bash-2.05b$ cd /var/svn/
    bash-2.05b$ rm -fr *
    bash-2.05b$ 
  3. /var/svn/aglにリポジトリを作成します。
    
    bash-2.05b$ svnadmin create /var/svn/agl
    bash-2.05b$ 
  4. リポジトリの設定を書き換え、Subversionサーバとしてアクセスできるようにします。
    /var/svn/agl/conf/
        8:[general]
        9:realm = atsushifx's Repository
       10:anon-access = read
       11:auth-access = write
       12:password-db = /var/svn/svnusers
    
    /var/svn/svnusers
        1:[users]
        2:atsushifx = hogehoge

以上で、リポジトリの作成は終了です。

2.3 リポジトリにWebサイトを登録する

次の手順で、Webサイトをリポジトリに登録します。

  1. コマンドプロンプトを起動します。
    [コマンドプロンプト]
  2. ローカルのWebサイトディレクトリに移動し、Webサイトを登録します。
    
    C:\Documents and Settings\古川敦史.YS> d:
    D:\> cd web\agl
    D:\web\agl> svn import svn://atsushifx@agartha/agl -m "Initial Web"
    認証領域: <svn://agartha:3690> atsushifx's Repository
    '古川敦史' のパスワード:
    認証領域: <svn://agartha:3690> atsushifx's Repository
    ユーザ名: atsushifx
    'atsushifx' のパスワード: *******
    .
    .
    追加しています  (バイナリ)  jissen\freelance\soft\images\moneymap-04.jpg
    追加しています  (バイナリ)  jissen\freelance\soft\images\moneymap-05.jpg
    追加しています  (バイナリ)  jissen\freelance\soft\images\moneymap-06.jpg
    追加しています  (バイナリ)  jissen\freelance\soft\images\moneymap-07.jpg
    追加しています  (バイナリ)  jissen\freelance\soft\images\moneymap-08.jpg
    追加しています  (バイナリ)  jissen\freelance\soft\images\moneymap-09.jpg
    追加しています  (バイナリ)  jissen\freelance\soft\images\moneymap2-10.jp
    追加しています  (バイナリ)  jissen\freelance\soft\images\moneymap2-01.jp
    .
    .
    追加しています              about.html
    
    リビジョン 1 をコミットしました。
    
    D:\web\agl>

以上で、Webサイトの登録は終了です。

2.4 登録したWebサイト情報を取り出す

Subversionでは、登録した情報を編集するには一度チェックアウト(checkout)をする必要があります。
次の手順で、Webサイトを取得します。

  1. 一時ディレクトリに移動します。
    
    D:\web\agl> z:
    Z:\>
  2. Webサイトをチェックアウトします。
    
    Z:\> svn co svn://atsushifx@agartha/agl agl
     .
     .
    A    agl\profile\lq.html
    A    agl\profile\ability_files
    A    agl\profile\ability_files\humor-g.gif
    A    agl\profile\ability_files\ability.css
    A    agl\profile\ability_files\humor.gif
    A    agl\profile\クリエイティブ診断結果.htm
    A    agl\profile\type
    A    agl\profile\type\space.gif
     .
     .
    Z:\>

以上で、Webサイト情報のチェックアウトは終了です。

2.5 プロパティを設定する

現状のままではhtmlファイルにリビジョンなどの更新履歴がつきません。そこで、プロパティを設定してこれらのファイルに更新履歴を付くようにします。
次の手順で、Webサイト情報にプロパティを設定します。

  1. svn propset コマンドでhtmlファイル,phpファイルで更新履歴を設定するようにプロパティを設定します。
    
    Z:\agl> svn propset svn:keywords "Id Date Revisoin" *.htm* *.php*
    属性 'svn:keywords' を 'about.html' にセットしました
    属性 'svn:keywords' を 'contact.html' にセットしました
    属性 'svn:keywords' を 'index.html' にセットしました
    z:\agl>
  2. 同様にしてサブディレクトリのすべてのファイルに属性を設定します。
  3. svn commitとして設定したプロパティをリポジトリに設定します。
    
    D:\web\agl> svn commit -m "プロパティ設定"
    .
    .
    リビジョン 2 をコミットしました。

以上で、プロパティの設定は終了です。

2.6 リビジョン番号をWebサイトに設定する

プロパティを設定したので、Webサイトファイルをupdateしてリビジョン番号を反映させます。
次の手順で、リビジョン番号を設定します。

  1. updateコマンドを発行し、リビジョン番号つきのファイルに書き換えます。
    
    D:\web\agl> svn update
    リビジョン 3 です。
    
    D:\web\agl>

以上でリビジョン番号の設定は終了です。
なお、ファイル内ではリビジョン番号は以下のようになります。

/agl/index.html
<p>
$Revision: 67 $<br />
$Date: 2007-05-10 20:55:14 +0900 (木, 10  5月 2007) $<br />
</p>

AMAZON



$Revision: 67 $
$Date: 2007-05-10 20:55:14 +0900 (木, 10 5月 2007) $