Last modified 11 years ago Last modified on 07/06/06 16:51:16

Subversion Source Code Repository for MIST

Suversion(svn) による Source Code の バージョン管理?

Repositories for MIST

  • mist … MIST のメインリポジトリ
  • test … Subversion お試し用リポジトリ。中身は無意味なものです。

Getting latest source from the repository

はじめて配布物一式を取得する。

% svn co http://mist.suenaga.m.is.nagoya-u.ac.jp/svn/mist/trunk [作業ディレクトリ]

一度取得すれば、以下のように最新版に更新可能。

% cd [作業ディレクトリ]
% svn update

また、Web から直接リポジトリを閲覧することも可能です。

for Developer only

リポジトリへの書き込みには、サーバ上でのユーザ登録が必要です。詳細は
メールアドレスの画像を添付
までお問い合わせください。

バージョン管理システムの利用がはじめてな方は、まず test リポジトリを用いて いろいろ練習してみて下さい。

WebDAV/HTTPS による手法

% svn co https://mist.suenaga.m.is.nagoya-u.ac.jp/svn/mist/trunk [作業ディレクトリ]

はじめてリポジトリにアクセスする際に、

% svn co https://mist.suenaga.m.is.nagoya-u.ac.jp/svn/mist/trunk mist
Error validating server certificate for 'https://mist.suenaga.m.is.nagoya-u.ac.jp:443':
 - The certificate is not issued by a trusted authority. Use the
   fingerprint to validate the certificate manually!
 - The certificate hostname does not match.
Certificate information:
 - Hostname: mist.suenaga.cse.nagoya-u.ac.jp
 - Valid: from Aug 12 10:07:31 2003 GMT until Aug 11 10:07:31 2004 GMT
 - Issuer: MIST, IMI, Nagoya University, Nagoya, Aichi, JP
 - Fingerprint: 97:39:e2:ee:97:f4:e5:18:b5:19:db:f5:b0:b3:5e:c0:b6:e5:f5:c6
(R)eject, accept (t)emporarily or accept (p)ermanently?

などと問われます。これは、mist.s.m.is.nagoya-u.ac.jp で利用している SSL証明書が正式な認証機関(CA)によって発行されたものではないためです。 SSLによる暗号化通信を行う上には特に支障はないので、p でMISTのSSL証明書を 恒久的に受け入れれば、以降このメッセージを見ることはありません。

ファイルの属性

リポジトリに新たにファイル(テキスト形式)を追加する場合,属性を変更する必要があります. そうしないと,リポジトリからチェックアウトしたときに改行コードが正しく変換されません. そこで,チェックアウトするシステムに改行コードを合わせる場合は,属性 svn:eol-style を定義し,その値を native にします. これをしないと,改行コードに悩まされることになります.

TortoiseSVNでこの属性を設定するには,エクスプローラ上でファイルのプロパティを開き,Subversionタブ内で属性を追加します. コマンドライン版では,

svn propset svn:eol-style 'native' ファイル名

で実行できます.

また,バイナリファイルの場合は,属性 svn:mime-type の値を application/octet-stream に設定してください.

Obtaining the Subversion client

Subversion 本家

Subversion 本家 からクライアントを取得する方法. ソースコードからすべて構築するのは結構大変ですので、それぞれの環境に合わせた パッケージなりコンパイル済みバイナリを利用するのが便利です。

それでも一からコンパイルしないと気が済まない、という人は...、頑張ってください。 Client 版のみを利用する場合、以下の依存しているソフトウェアの導入が必要です?

  • OpenSSL
  • Berkeley DB 4.0.x
  • Subversion の配布物に含まれるもの
    • apr, apr-util - Apache Portable Runtime
    • Neon - HTTP/WebDAV library
  • ...

WindowsでSVNへアクセスする場合(コマンド打つのがおっくうな方へ)

以下の参考文献(Subversion: 公式ガイド)で挙げられている,TortoiseSVNというソフトを使うと便利です. Windowsのエクスプローラから直接SVNへアクセスでき,コミット等の各操作もエクスプローラからできます.

TortoiseSVN(ト ー タ ス SVN)でSSL経由でリポジトリにアクセスする場合

何回も次のようなメッセージが出てきて,ちょっと憂鬱.

Error validating server certificate: Unknown certificate issuer. Accept? (y/N):

TortoiseSVN0.19以降では,初回にリポジトリからダウンロードする時に,永久に受理するを選べばOKです.

TortoiseSVN0.19以前では,SSLの証明書が正式でない場合は無視するように設定します. 具体的には,

C:\Documents and Settings\「ユーザー名」\Application Data\Subversion

のフォルダを開き(上のフォルダは隠しフォルダになっているので,全てのファイル・フォルダを表示するにすること),「servers」というファイルをテキスト編集モードで開きます. そして,一番下のほうでコメントアウトされている

# [global]

のコメントアウトをはずし,次のようにする.

[global]

そして,その下に

ssl-ignore-unknown-ca = true

という1行を追加すれば,認証のときのメッセージを表示しなくすることができます. ただ,これはあまりいい方法ではないみたいです・・・.一時的な回避策にどうぞ. その他の詳しい設定方法は ここ を見てください.

たとえば,MISTプロジェクトのみSSLの認証ダイアログを無視したいなら,「servers」ファイル内のグループの設定を次のようにすればOK!

[groups]
mist = mist.suenaga.cse.nagoya-u.ac.jp

[mist]
http-compression = yes
ssl-ignore-unknown-ca = true

こうしておけば,MISTサーバのリポジトリへアクセスするときだけ無視されます. あと,これを設定するなら,上で説明した

[global]
ssl-ignore-unknown-ca = true

は無効にしておいてください.

SVNで各リビジョンにつけるログについて

現在確認したところ,SVNはUTF-8形式で文字コード扱っている模様です. なので,日本語もちゃんと表示されるみたいです(実際に動作させてみました). 上記のTortoiseSVNでもちゃんと日本語入力・表示できることを確認しました. でも,ログは英語でつけるべきなのかな?

Subversion 内部では

  • メタデータ(ファイル名やログの中身など)については Unicodeで扱い、クライアント側で必要に応じて文字コードの変換を行う?
  • リポジトリ内のファイルの中身については、
    • 改行コードはクライアント側の環境に応じて変換する(text扱いのもののみ)
      • eol-style属性を指定した場合のみ(デフォルトはバイナリ扱いらしい)
    • 文字コードは一切変換なし?

らしい。(2003/08/29追記)

Subversionでファイルの衝突を回避

参考文献