[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
前提:
サーバ⇒
ホスト名 →hoge_server
ユーザ →hoge
H/W →HP Integrity Series(Itanium2石)
OS →HP-UX11i Ver2.3
svn →Subversion-1.3.2
クライアント⇒
H/W →Windows PC
OS →WindowsXP/SP2
svn →TortoiseSVN 1.3.5
Subclipse 1.1.5 (Eclipse 3.2 plugin)
eclipse →Eclipse-3.2, CDT-3.1.1, preiades-1.0.1, jstyle-3.2.0
cygwin →cygwin-1.5.21
Subversionは
≪こちら≫
に書いているやり方で放り込めた。
(かなり苦労した‥‥‥)
はじめに:
WindowsXP 上のEclipse CDT(+cygwin/MinGW)を使って、
サーバサイドのC言語ソースを開発するにあたり、
普通の使い方では差し障りが結構あった。
ので、
SubversionやEclipse を騙しダマシ使う方法を編み出してみる。
使い方:
1)リポジトリを作成
サーバ側にリポジトリを作成する。
(ここはフツーにすべし)
% pwd
/home/hoge/svnrepos
% svnadmin create LIPOVITAN
% cd LIPOVITAN/
/homea/nzpf/svnrepos/LIPOVITAN
% ls
README.txt conf/ dav/ db/ format hooks/ locks/
% cd conf
/homea/nzpf/svnrepos/LIPOVITAN/conf
% ls -l
合計 4
-rw-r--r-- 1 nzpf nz 684 2006-09-07 13:23 authz
-rw-r--r-- 1 nzpf nz 309 2006-09-07 13:23 passwd
-rw-r--r-- 1 nzpf nz 1457 2006-09-07 13:23 svnserve.conf
%
接続用アカウント情報を ‘svnserve.conf’ および‘passwd’に記録。
やり方は 《こちら》 を参照。
2)インポート
リポジトリに、
バージョン管理したいソース一式を突っ込む。
% pwd
/homea/nzpf/svnrepos/LIPOVITAN
% svn mkdir file://localhost/$PWD/UNIX-1.6.0 -m "made top directory"
リビジョン 1 をコミットしました。
%
おぉぅ!
日本語でメッセージがでるぜ。
苦労してNLS対応した甲斐があるってもんだぜ。
引き続き。。。
% svn list file://localhost/$PWD
UNIX-1.6.0/
%
% cd /home/hoge/src # ソースの在り処
% ls
LIPOVITAN-sdk-1.6.0/
% svn import $PWD/LIPOVITAN-sdk-1.6.0 file://localhost/home/hoge/svnrepos/LIPOVITAN/UNIX-1.6.0 -m "Initial Import"
追加しています /home/hoge/src/LIPOVITAN-sdk-1.6.0/Makefile.in
追加しています /home/hoge/src/LIPOVITAN-sdk-1.6.0/foo.c
追加しています /home/hoge/src/LIPOVITAN-sdk-1.6.0/foo.h
・ ・
・ ・
・ ・
・ ・
追加しています /home/hoge/src/LIPOVITAN-sdk-1.6.0/install-sh
リビジョン 2 をコミットしました。
%
3)単体テストレベル工程で、Eclipse を用いる
単体テストまでは、
Eclipse CDT を使う。
CDTは、Solaris用はあるが、HP-UX用がない。
仕方がないので、
Windows 側に持って来よう。
3-1)作業セットの取り出し準備
Eclipse の所在フォルダ → D:\eclipse
ワークスペースの場所 → S:\workspace (= D:\cygdrive\s\workspace)
‘S’ドライブの実体 → D:\cygdrive\s
少し説明。
ワークスペースの可搬性を高めるため、
subst コマンドでドライブを作ってやるのは、皆さんご承知。
その際、
subst で作成するドライブに指定する実体フォルダは、「\cygdrive\ドライブ」
にしておくべし。
そうすると、
デバッガでソースのトレースが正しく行われる。
ただし、
ソースのルックアップパスに「D:\」 を追加してやる必要がある。
そして、
ワークスペースに“S:\workspace” を指定してeclipse を起動。
3-2)C/C++ プロジェクトを作成
まず、
リポジトリと接続したプロジェクトを作る。
メニューより、
[ファイル]→[新規]→[プロジェクト...] を選択。
「新規プロジェクト」ダイアログ内のツリーより、
[SVN]→[SVNからプロジェクトをチェックアウト]を選択し、
「次へ」ボタンをクリック。
「SVNからチェックアウト」ダイアログにて、
「新規リポジトリー・ロケーションを生成」をチェックし、「次へ」。
ロケーションに
“svn://hoge_server/home/hoge/svnrepos/LIPOVITAN”
を入力し、「次へ」。
接続認証用ユーザー名とパスワードの入力を促してくるので、
リポジトリ作成時に‘passwd’ファイルに設定したアカウント情報を入力する。
ついでに「パスワードを保存」にもチェックを入れとけ。
(お勧めではないらしいが)
フォルダの選択を促してくるので、リポジトリ直下の「UNIX-1.6.0」を選択し、「次へ」。
チェックアウト方法を問い合わせてくるので、
「新規プロジェクトウィザードを使ってプロジェクトとしてチェックアウト」にし、「終了」。
「新規プロジェクト」ダイアログ内のツリーより、
[C]→[スタンダードMake C プロジェクト]を選択し、「次へ」。
プロジェクト名を入力して 「次へ」。
『C/Makeプロジェクトの設定』にて、バイナリー・パーサーを調整。
→PE Windowsパーサー、Cygwin PE パーサー、の二つを有効にすること。
「終了」ボタンを押す。
と。
リポジトリとの同期化処理が行われ、
プロジェクトの出来上がり。
パースペクティヴがC/C++ 用に切り替わり、
パッケージ・エクスプローラは、C/C++ プロジェクト・エクスプローラ(ビュー)に変わる。
エクスプローラからチェックアウト後のフォルダを見てみると。
(レ)マークがフォルダに付いております。
3-3)Eclipse でのソースの取り扱いについて
何も悩むことはない。
フツーに使え。
ただし、
ソースのロックとコミットについては、チームで打ち合わせしとけ。
でないと、喧嘩になるぞ。
コミットは、
単体テスト“完”までやるもんぢゃないぞ。
4)結合テスト以降、サーバ側でバージョン管理
サーバサイドのものなので、
結合はサーバ側で行う。
が、
これまでの経験上、
サーバ側にソースを持ってくると、
CUIのためか、
バージョン管理しなくなってしまう。
(更新しっぱなしで、コミットしない‥‥‥ (ーー;) )
ので、
Windows GUI の‘TortoiseSVN’ でバージョン管理したい。
ここで、
編み出したのが以下の方法。
(笑うなよ)
4-1)作業セットをチェックアウト
まず、
TELNET端末でhoge_serverにログインし、
チェックアウトを実行する。
% pwd
/home/hoge/src
% svn list svn://hoge_server/home/hoge/svnrepos/LIPOVITAN
認証領域: <svn://hoge_server:3690> 6f4cb375-d51c-0410-a572-af31c84df79b
'hoge' のパスワード: ******<CR> ※‘******’はエコーされない
UNIX-1.6.0/
% svn checkout svn://hoge_server/home/hoge/svnrepos/LIPOVITAN/UNIX-1.6.0 $PWD
A /home/hoge/src/AUTHORS
A /home/hoge/src/COPYING
A /home/hoge/src/ChangeLog
・
・
・
A /home/hoge/src/zzz.h
リビジョン 6 をチェックアウトしました。
%
4-2)WindowsXPでネットワークドライブをマウント
PC側に戻り。
hoge_serverのhogeユーザのホームディレクトリを見えるようにする。
なお、
hoge_server では、Samba3が動いている。
エクスプローラより、以下のフォルダをネットワークドライブに割り当てる。
「 \\hoge_server\hoge 」
パスワードを入力すると。。。
ファイル一覧が開いた!
今回は“N”ドライブを使用
4-3)ネットワークドライブ上でのTortoiseSVN の取り扱いについて
ローカルだと、
作業セット内のフォルダやファイルに
(レ),(+),(!),(錠マーク)などが付くが、
残念ながら、
ネットワークドライブでは付かない。
しかし、
TortoiseSVN で操作できる。
それは、
サーバ側で作業セットをチェックアウトするときに
svnプロトコルを用いたからである。
かつ、
URLのホスト名を“hoge_server”(localhostではない)、
つまり、
外向けのIPアドレスの設定されたホスト名にすべし。
(‘凡庸’ < 賢い)
であるから、
あとは、
フツーに使え。
(ローカルに作業セットを置くよりも時間がかかるが、何かと。 でも、気にするな。)
以上である。