2017年04月 / 03月≪ 123456789101112131415161718192021222324252627282930≫05月

2011.12.18 (Sun)

eclipse 3.7 indigo で Scala から WindowBuilder と SWT を使ってみる

ども、スィンです。
前回の続きで、Scala でチャレンジしてみました。
よくわからなくてここままじゃできなさそう?なので、諦めました。
とりあえず、Javaで書いた SWT フォームコードを Scala から呼ぶようにしました。

■したいこと
Scala で 見栄えの良いフォームアプリが作りたい。

■残課題(ご存知の方がいたらぜひご教授願います)
・WindowBuilder で Scala のテンプレートコードは吐けないの?
・Scalaのコードは WindowBuilderで開けないの?
・WindowBuilder のレイアウトで、Visual Studio と同じレイアウト方式のものはないのか。

■比較検討
・Scala じゃなくて、もう Java でええやん、と思いそうになった。

■成果物
プロジェクトファイル:(サンプルコードを掲載したため割愛)
ダウンロードパスワード: ----

■手順
▼事前準備
前回の記事を元に、eclipse 3.7 indigo を準備して、 WindowBuilder for SWT プラグインを入れておく。

▼Scala IDE for Eclipse プラグインをダウンロード
Scala IDE for Eclipse」のサイトを開き「Copy update site URL to clipboard」を押す。
「ヘルプ>新規ソフトウェアのインストール」を選択。
作業環境の追加ボタンを押し、ロケーションをクリップボードから貼付け、名前は Scala などに。
登録した作業対象を選択して、すべてをインストール。

▼プロジェクトの作成
「ファイル>新規>Scala ウィザード>Scala プロジェクト」を作成。

▼ビルドパスの追加
プロジェクトのプロパティ「Javaのビルドパスを開く。
ライブラリタブ「外部Jar追加」ボタンを押す。
「eclipseインストールPATH\plugins\org.eclipse.swt.win32.win32.x86_3.7.1.v3738a.jar」を選択。

▼SWT アプリケーションウインドウを追加
※以下の手順は Java コードが生成される。パッケージは Scala コードと分けておくと良いかも。
「ファイル>新規>その他」より、
「WindowBuilder > SWT Designer > SWT > Application Window」を選択。

▼フォームデザインの編集
ソースファイルを右クリック「アプリケーションから開く>WindowBilder Editor」で開く。
「Design」タブを選択して自由にGUIを作成。

sample_form.java
package com.sinproject.java;

import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.SWT;

public class sample_form {

	protected Shell shell;

	/**
	 * Launch the application.
	 * @param args
	 */
	public static void main(String[] args) {
		try {
			sample_form window = new sample_form();
			window.open();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	/**
	 * Open the window.
	 */
	public void open() {
		Display display = Display.getDefault();
		createContents();
		shell.open();
		shell.layout();
		while (!shell.isDisposed()) {
			if (!display.readAndDispatch()) {
				display.sleep();
			}
		}
	}

	/**
	 * Create contents of the window.
	 */
	protected void createContents() {
		shell = new Shell();
		shell.setSize(450, 300);
		shell.setText("SWT Application");

		Label label = new Label(shell, SWT.NONE);
		label.setBounds(10, 10, 227, 18);
		label.setText("サンプルフォーム");
	}
	
}

▼Scala オブジェクトの作成
「ファイル>新規>Scala ウィザード>Scala プロジェクト」を作成。
main メソッドを作成し、そこから Java + SWT で作った フォームを呼ぶ。

scala_test.scala
package com.sinproject.scala

import com.sinproject.java._

object scala_test {

	def main(args : Array[String]) : Unit = {
		println("scala project")

		sample_form.main(args)
	}

}

■今後の方針
・サイズの小さい scala バイナリを作りたい。不要なモノと必要なモノがわからない。
・可能であるならば!WindowBuilder を Scala で使う。
・自分用 scala ライブラリを作りたい。
・scala で android の Twitter クライアント作りたい。
・行動時間管理Webアプリ作りたい。
・WebアプリでIRCみたいなの作りたい。
・世界の人達をつなぐWebサイトをPlay - Scala で作りたい。

※コメントを頂けると大変うれしいです。コメントはお気軽にどうぞ^-^

テーマ : プログラミング ジャンル : コンピュータ

01:46  |  ソフトウェア開発/プログラム  |  Trackback(0)  |  Comment(2)  |  EDIT  |  Top↑

2011.12.17 (Sat)

eclipse 3.7 indigo で WindowBuilder と SWT を使ってみる

お久しぶりでございます、スィンです。

最近やっと java とか Eclipse とかに興味を。
いや、正直 Scala に興味が湧いて来たのです。
(ホントは、Scalaに興味が湧いたのはかなり前ですけどね・・・)
せっかくやるならフォームアプリも作りたいし、
すべてのことを Scala でできるだけトライしてみようかと。
今回は Scala ではなく Java で フォームアプリを作り始める際のメモです。

●したいこと
java で 見栄えの良いフォームアプリが作りたい。

●比較検討
・IntelliJ IDEA も使ってみたが、なんか嫌だった。総合的にどうなの?
・見栄えなら Swing より SWT かなと。
・GUI開発は Visual Editor より WindowBuilder がよさげ。

■成果物
プロジェクトファイル:java_swt_sample.zip
ダウンロードパスワード: sinproject

●手順
▼eclipse 3.7 indigo のインストールと起動
「Eclipse 3.7 Indigo Pleiades All in One - Ultimate - Full」をダウンロード。
http://mergedoc.sourceforge.jp/
eclipseを起動する。

▼WindowBuilder for SWT プラグインをダウンロード
「ヘルプ>新規ソフトウェアのインストール」を選択。
作業対象「Indigo」で「一般用ツール>SWT Designer」をインストール。
(SWT Designer Core、WindowBuilder Core UI, WindowBuilder GroupLayout Support
などの依存パッケージは自動的にインストールされるらしい。)

▼プロジェクトの作成
「ファイル>新規>Javaプロジェクト」を作成。

▼ビルドパスの追加
プロジェクトのプロパティ「Javaのビルドパスを開く。
ライブラリタブ「外部Jar追加」ボタンを押す。
「eclipseインストールPATH\plugins\org.eclipse.swt.win32.win32.x86_3.7.1.v3738a.jar」を選択。

▼SWT アプリケーションウインドウを追加
「ファイル>新規>その他」より、
「WindowBuilder > SWT Designer > SWT > Application Window」を選択。

▼フォームデザインの編集
ソースファイルを右クリック「アプリケーションから開く>WindowBilder Editor」で開く。
「Design」タブを選択して自由にGUIを作成。

●残課題と今後の方針
・サイズの小さいバイナリを作りたい。不要なモノのと必要なモノがわからない。
・scala で 見栄えの良いフォームアプリが作りたい。
・自分用 scala ライブラリを作りたい。
・scala で android の Twitter クライアント作りたい。
・行動時間管理Webアプリ作りたい。
・WebアプリでIRCみたいなの作りたい。
・世界の人達をつなぐWebサイトをPlay! - Scala で作りたい。

※コメントを頂けると大変うれしいです。コメントはお気軽にどうぞ^-^

11:23  |  ソフトウェア開発/プログラム  |  Trackback(0)  |  Comment(1)  |  EDIT  |  Top↑

2009.10.01 (Thu)

[TortoiseSVN] 【サーバー・クライアント】まとめ - WindowsでSubversionを使いバージョン管理とバックアップを備えた自宅オンラインストレージ環境を構築する

---目次---
■WindowsでSubversionを使いバージョン管理とバックアップを備えた自宅オンラインストレージ環境を構築する
●【サーバー】サーバーの基本環境を構築したい
●【サーバー・クライアント】バックアップ環境を構築したい
●【サーバー】バージョン管理サーバーを立てたい
●【サーバー】Subversionサーバーにインターネット経由でアクセスしたい
●【サーバー】Subversionのデータをネットワーク上の他の場所に同期したい
●【クライアント】バージョン管理クライアント環境を構築したい
●【クライアント】TortoiseSVN の利用方法を知りたい
●【クライアント】VisualStudioでSubversionを利用したい
●【サーバー・クライアント】Tips・トラブルシューティング
└>【サーバー・クライアント】まとめ

※※ご案内※※
この記事に対しご意見やご不明な点がございましたらお気軽にご相談、ご連絡ください。

●【サーバー・クライアント】まとめ

▼Visual SourceSafe と Subversion の用語の対応

[Visual SourceSafe] - [Subversion]
チェックイン・・・・・SVNコミット。
チェックアウト・・・・ロック。基本的にロックは使用せず、マージで対応を行う。
最新の情報を取得・・・SVN更新。初回取得はSVNチェックアウト。
履歴の表示・・・・・・ログを表示。
相違点の表示・・・・・差分。

▼さいごに
「WindowsでSubversionを使いバージョン管理とバックアップを備えた自宅オンラインストレージ環境を構築する」
について、簡単ではありますが一通り説明しました。

だらだらと書き綴ってしまいましたが、いかがでしたでしょうか?
この記事に対しご意見やご不明な点がございましたらお気軽にご相談、ご連絡ください。

▼参考サイトについて
記事中、及び以下に紹介するサイトは、
今回の記事の執筆にあたり参考にさせていただきました。
この場をもってお礼申し上げます。

なんちゃってTortoiseSVN(Subversion)の使い方シリーズ [SVNマニュアル擬き]
http://hide.xsv.info/tips/svnmanual/


Subversion-TortoiseSVNの使い方
http://subversion.2chdephp.net/


バージョン管理(TortoiseSVN)
http://mikeo410.a-auc.net/lumadcms/~TortoiseSVN


anysense-devel  svnsyncでsubversionレプリケーションの自動更新
http://hogehack.blog80.fc2.com/blog-entry-30.html


Subversionリポジトリのバックアップ方法いろいろ - ぱせらんメモ
http://d.hatena.ne.jp/pasela/20090206/svn_backup


Subversionリポジトリのバックアップ( svnsync )
http://www.asahi-net.or.jp/~iu9m-tcym/svndoc/svn_svnsync.html


Subversionのバックアップとるなら、svnsyncで決まり!! - プログラマになりたい
http://d.hatena.ne.jp/dkfj/20090208/1234068285


WinMerge - テキストファイルを比較し相違点を色分け表示するソフト | 無料で使えるフリーソフトAnswerTaker
http://answertaker.com/documents/text-related/winmerge.html

※コメントを頂けると大変うれしいです。コメントはお気軽にどうぞ^-^

テーマ : IT関連 ジャンル : コンピュータ

01:50  |  ソフトウェア開発/プログラム  |  Trackback(0)  |  Comment(0)  |  EDIT  |  Top↑

2009.10.01 (Thu)

[TortoiseSVN] 【サーバー・クライアント】Tips・トラブルシューティング - WindowsでSubversionを使いバージョン管理とバックアップを備えた自宅オンラインストレージ環境を構築する

---目次---
■WindowsでSubversionを使いバージョン管理とバックアップを備えた自宅オンラインストレージ環境を構築する
●【サーバー】サーバーの基本環境を構築したい
●【サーバー・クライアント】バックアップ環境を構築したい
●【サーバー】バージョン管理サーバーを立てたい
●【サーバー】Subversionサーバーにインターネット経由でアクセスしたい
●【サーバー】Subversionのデータをネットワーク上の他の場所に同期したい
●【クライアント】バージョン管理クライアント環境を構築したい
●【クライアント】TortoiseSVN の利用方法を知りたい
●【クライアント】VisualStudioでSubversionを利用したい
├>【サーバー・クライアント】Tips・トラブルシューティング
●【サーバー・クライアント】まとめ

※※ご案内※※
この記事に対しご意見やご不明な点がございましたらお気軽にご相談、ご連絡ください。

●【サーバー・クライアント】Tips・トラブルシューティング

▼リポジトリブラウザの情報が更新されない
・フォルダを作ったとき
・インポートしたとき
・Explorerからドラッグしてファイルをコピーしたとき
などの場合、更新されないことが多いです。
更新したいフォルダを選択してF5キーを押してください。

▼エラーが出てコミットができない
Commit failed (details follow):
Error: Server sent unexpected return value (403 Forbidden) in response to OPTIONS

サーバーへの接続処理で上記エラーが発生する場合は、何らかの障害により、
権限がなくなっているか、同期バッチの実行等により接続ユーザーが変更されてしまっている可能性があります。

「TortoiseSVN>設定」より「保存データ>認証データ」のクリアを行って再接続してみてください。

▼「Word、Excel、PowerPoint、PDF、一太郎」などのファイルをWinMergeで比較したい
xdocdiff WinMerge Plugin を導入することで MS-Office の Word、 Excel、 PowerPoint や PDFファイル、一太郎 などの
ファイルもWinMergeで扱えるようになります。

→参考:
窓の杜 - 【NEWS】「WinMerge」でOffice文書や一太郎文書を比較「xdocdiff WinMerge Plugin」
http://www.forest.impress.co.jp/article/2008/03/17/xdocdiffwmplugin.html


xdocdiff WinMerge Plugin -Word、Excel、PowerPoint、pdfの比較・差分を見る-
http://freemind.s57.xrea.com/xdocdiffPlugin/


WinMergeを利用してExcelやPDFを比較する | 只野日記
http://cutb.jugem.jp/?eid=329


▼作業フォルダを作らずにSubversionに登録したい
リポジトリを作成した後は TortoiseSVNの「リポジトリブラウザ」のみで、
ディレクトリの作成、ファイルの登録が行えます。

登録する場合は、リポジトリブラウザへファイルをドラッグ、
ダウンロードする場合はリポジトリブラウザからフォルダへファイルをドラッグするだけです。

Downloadしたファイルを管理するなどの場合はこの方法でよいと思います。
欠点として、ファイル転送中はリポジトリブラウザとエクスプローラーの反応がなくなります。

▼ファイル名(ディレクトリ名)の大文字小文字の変更を行いたい
「リポジトリブラウザ」から行ってください。
変更後は対象の作業フォルダで「SVN更新」を行ってください。

▼TorotiseSVNのユーザー情報を消去したい、ユーザーを変更したい
「TorotoiseSVN>設定」の「保存データ>認証データ」で、
「クリア」ボタンを押してください。証明書データも同時に消去されます。

▼証明書やユーザーのデータはどこに保持されているのか?
「%AppData%Subversion」の「auth」フォルダ内にあります。
証明書は「svn.ssl.server」フォルダ、
ユーザー情報は「svn.simple」フォルダに格納されています。

▼プロジェクトごとに無視するファイルを設定したい
以下のサイトを参考にしてください。

→参考:
TortoiseSVN 特定ファイルをSVN管理下から除外する - profaim.jp
http://www.profaim.jp/tools/soft/svn/tortoise-svn/ignore_file.php


無視するファイルとディレクトリ - TortoiseSVN
http://tortoisesvn.net/docs/nightly/TortoiseSVN_ja/tsvn-dug-ignore.html


▼リポジトリ内でファイル検索を行いたい、管理サイズを知りたい

・リポジトリにWebDAVで接続する
以下の手順でWebDAVでリポジトリに接続します。

「マイネットワーク>ネットワークプレースを追加する」を選択します。
接続するリポジトリのURL(例:https://sinproject.selfip.com/svn/Test)を
入力します。セキュリティ警告で「はい」を選択します。
ユーザー名とパスワードを入力します。
ネットワークプレースの名前を決めます。(例:sinProject-Test)

・リポジトリ内でファイル検索を行う
Windowsの検索コンパニオンを開きます。
「探す場所」でネットワークドライブをして検索できます。

・管理サイズを知りたい
WebDAVで接続した後は、ファイルやフォルダを右クリックして
「プロパティ」を開くとサイズを確認できます。

※ファイルを開く場合
ファイルを開く場合はローカルにコピーしてから開きます。

▼削除したファイルの復活方法
対象のリポジトリをリポジトリブラウザで開きます。
調査対象のフォルダで右クリックし「ログを表示」を選択します。
調査対象のファイル(またはフォルダ)が削除される一つ前のリビジョン
を選択し右クリックして「リポジトリを閲覧」を選択します。
開かれたリポジトリブラウザで対象のファイル(ディレクトリ)を選択し、
コピー先のフォルダにドラッグします。

▼一度登録したファイルを完全に削除したい
削除しても管理上ファイルの情報は残っています。
完全削除を行うには、

・svndumpfilter コマンドで対象ファイルを除外してダンプファイルを作成し、
・そのダンプファイルからもう一度リポジトリを再構築

しなければなりません。

詳細は以下のサイトを参考にしてください。

→参考:
Subversionで過去の思い出を完全抹消 - Thousand Years
http://d.hatena.ne.jp/shogo4405/20061203/1165141404


svndumpfilter: 気の向くままに・・・
http://syo.cocolog-nifty.com/freely/2007/06/svndumpfilter.html


リポジトリから履歴の削除(部分バックアップ&再構築) - kurukuru-papaの日記
http://d.hatena.ne.jp/kurukuru-papa/20071006/1191679423


▼リポジトリ名を変更したい
対象リポジトリのフォルダのフォルダ名を変更します。
Subversionサーバーツール(VisualSVN Server)を再起動します。

▼リポジトリを他のサーバーに移動する
対象リポジトリの管理フォルダを移動先のサーバーの
リポジトリルートフォルダにコピー(または移動)します。
移動先のSubversionサーバーを再起動します。

▼VisualSVN Server を再起動するには?
VisualSVN Server Manager ウインドウを開き、
左ペインのルートを右クリックして「Restart」を選択します。

▼VisualSVN Server Manager を閉じるとサーバーは停止してしまいますか?
停止しません。VisualSVN サーバーはWindowsサービスとして起動されています。

※コメントを頂けると大変うれしいです。コメントはお気軽にどうぞ^-^

テーマ : IT関連 ジャンル : コンピュータ

01:45  |  ソフトウェア開発/プログラム  |  Trackback(0)  |  Comment(2)  |  EDIT  |  Top↑

2009.10.01 (Thu)

[TortoiseSVN] 【クライアント】VisualStudioでSubversionを利用したい - WindowsでSubversionを使いバージョン管理とバックアップを備えた自宅オンラインストレージ環境を構築する

---目次---
■WindowsでSubversionを使いバージョン管理とバックアップを備えた自宅オンラインストレージ環境を構築する
●【サーバー】サーバーの基本環境を構築したい
●【サーバー・クライアント】バックアップ環境を構築したい
●【サーバー】バージョン管理サーバーを立てたい
●【サーバー】Subversionサーバーにインターネット経由でアクセスしたい
●【サーバー】Subversionのデータをネットワーク上の他の場所に同期したい
●【クライアント】バージョン管理クライアント環境を構築したい
●【クライアント】TortoiseSVN の利用方法を知りたい
├>【クライアント】VisualStudioでSubversionを利用したい
●【サーバー・クライアント】Tips・トラブルシューティング
●【サーバー・クライアント】まとめ

※※ご案内※※
この記事に対しご意見やご不明な点がございましたらお気軽にご相談、ご連絡ください。

●【クライアント】VisualStudioでSubversionを利用したい

※ここで言うVisualSVNとはVisualSVN Server ではなくクライアントツールです。

AnkhSVN、またはVisualSVNというツールを利用すると、VisualSourceSafeのように
VisualStudio開発環境の中で Subversion へ連結することが可能になります。

ただし、最新の VisualSVN Server でサーバーを構築している場合、AnkhSVNでは
VisualStudio 2003 は管理することができません。
VisualStudio 2005 以降の開発環境が必要となります。

また、Visual Studio Express Edition シリーズでは
ソース管理ができないように制限されているためどちらのツールも利用できません。
これらのツールを利用する場合は市販の Visual Studio が必要になります。

ここでは、AnkhSVNについて説明します。
※VisualSVNはAnkhSVNより便利ですが有料です。

▼AnkhSVNのインストール
VisualStudio開発環境を閉じておきます。

http://ankhsvn.open.collab.net/

上記サイトより、AnkhSVN 2(Ver1は使えない)をダウンロードしインストールしてください。

▼AnkhSVNの利用方法、利用目的
このツールを利用すると、VisualStudioプロジェクトにおける、
ファイル名の変更やフォルダの作成、移動等が連動して反映される為便利です。

先に申し上げますが、自分はこのツールを

・変更・更新ファイルの確認
・ソリューション管理されているファイルやフォルダの変更

の目的にのみ使用しています。なぜなら AnkhSVN は、
ソリューションエクスプローラーで表示されていないファイルの変更は検知できない為です。

よって、コミットする際は、

・AnkhSVNでコミット(これをしないとAnkhSVNの画面が更新されません)
・TortoiseSVNでコミット(ソリューション管理外ファイルの更新の為)

と、2段階のコミットを行っています。
また、差分チェックは「TortoiseSVN+WinMerger」でやる方が便利です。

▼AnkhSVN:設定
Visual Studio を起動し、「ツール>オプション」を開きます。
「Source Control」の「現在のソース管理プラグイン」で、
「AnkhSVN」を選択します。VisualSourceSafeと同時に利用することは出来ません。

▼AnkhSVN:ソリューションエクスプローラー
AnkhSVNが動作するように設定すると、ソリューションエクスプローラーのツリー要素に
チェックマークやオレンジの四角マークが付きます。
ファイルが変更されている場合は「オレンジの四角マークになります。
ファイルを右クリックしてコミットや差分チェックができます。

▼AnkhSVN:Pending Changes ウインドウ
AnkhSVNのフローティングウインドウが統合開発環境に表示されます。
ここで変更されているファイルの一覧、メッセージの確認、
及びソリューション全体の更新とコミットが行えます。

▼AnkhSVNについての詳細は・・・
AnkhSVNについて詳細を知りたい方は以下サイトをご参考ください。

→参考:
AnkhSVN のダウンロードとインストール方法 - アジャイルプログラマの日常
http://d.hatena.ne.jp/fyts/20090601/ankhsvn


AnkhSVN を使った一連の流れ (diff/update/commit) - アジャイルプログラマの日常
http://d.hatena.ne.jp/fyts/20090604/ankhsvn


Subversionを利用したイケてる.NET開発 - @IT
http://www.atmarkit.co.jp/fdotnet/opensrcverman/opensrcverman01/opensrcverman01_04.html


Windows開発環境(Visual Studioプラグイン:AnkhSVN) - System House ACT
http://www.system-act.com/develop/windows/ankhsvn.html

※コメントを頂けると大変うれしいです。コメントはお気軽にどうぞ^-^

テーマ : IT関連 ジャンル : コンピュータ

01:40  |  ソフトウェア開発/プログラム  |  Trackback(0)  |  Comment(0)  |  EDIT  |  Top↑

2009.10.01 (Thu)

[TortoiseSVN] 【クライアント】TortoiseSVN の利用方法を知りたい - WindowsでSubversionを使いバージョン管理とバックアップを備えた自宅オンラインストレージ環境を構築する

---目次---
■WindowsでSubversionを使いバージョン管理とバックアップを備えた自宅オンラインストレージ環境を構築する
●【サーバー】サーバーの基本環境を構築したい
●【サーバー・クライアント】バックアップ環境を構築したい
●【サーバー】バージョン管理サーバーを立てたい
●【サーバー】Subversionサーバーにインターネット経由でアクセスしたい
●【サーバー】Subversionのデータをネットワーク上の他の場所に同期したい
●【クライアント】バージョン管理クライアント環境を構築したい
├>【クライアント】TortoiseSVN の利用方法を知りたい
●【クライアント】VisualStudioでSubversionを利用したい
●【サーバー・クライアント】Tips・トラブルシューティング
●【サーバー・クライアント】まとめ

※※ご案内※※
この記事に対しご意見やご不明な点がございましたらお気軽にご相談、ご連絡ください。

●【クライアント】TortoiseSVN の利用方法を知りたい

ここからの解説を読む前に、「【クライアント】バージョン管理クライアント環境を構築したい
の項を読んで TortoiseSVN の基本的なセットアップを完了しておいてください。

▼作業フォルダ(ローカルファイル)のフォルダ構成
さて、ここから既存のフォルダやファイルを Subversion で管理していくとして、
「現存するフォルダ」に対し管理の設定、つまり作業フォルダの設定を行うこともできますが、
作業フォルダを散在させると、ローカルPCに存在する
「Subversion で管理しているファイルの全体」を把握しにくくなります。

そこで、Subversion で管理するファイルは明示的にフォルダを作成し、
分けて管理することをお勧めします。

例:
C\!SVN

十分に容量が確保できるドライブのルートにそれぞれ「!SVN」というフォルダを作成します。
ドライブは1つでも良いですし、複数に分散させてもよいです。

上記「!SVN」フォルダの下にリポジトリ名でフォルダを作成します。
リポジトリ名のフォルダの配下は Subversion のリポジトリと同じように
サブフォルダのツリーを構成することを意識して作成していきます。
サブフォルダは必要になったときに作っていけばよいです。

例:
■C:
└■!SVN
 ├■sinProject(リポジトリ:プライベート関連)
 │├□Configs(PCの設定やアプリの設定)
 │├□Compose(DTMなどの作曲、音楽関連)
 │├□Develop(プログラム、Web開発、ブログ記事など)
 │├□Document(上記以外のドキュメント関連)
 │├□Public(公開用フォルダ)
 │└□・・・・・
 ├■Project2(リポジトリ:仕事関連)
 │├□Develop
 │├□Document
 │├□Public
 │└□・・・・・
 ├■Downloads(リポジトリ:ダウンロードした残しておきたいファイル)
 ├■Music(リポジトリ:音楽データ)
 ├■Pictures(リポジトリ:画像データ)
 ├■Videos(動画データ)
 └■Test(動作テスト、動作確認用。はじめは作っておきましょう)

・音楽、写真、ビデオ、ダウンロードファイルの管理
Windowsでは、マイピクチャ、マイビデオ、マイミュージック、ダウンロード用のフォルダが
標準で準備されていますが、これらのファイルを上記のように Subversion で管理する場合、
既存のフォルダは使わないようにするとよいでしょう。
また「マイピクチャ」フォルダであれば「C:\!SVN\Pictures」へのショートカットを
おいておくなどして、SVN配下のフォルダにアクセスできるようにしておくとよいと思います。

▼バージョン管理の概念(trunk, branches, tags)
Subversion では、バージョン管理の概念として、「trunk, branches, tags」
というフォルダを作成しファイルの管理をすることが特徴です。

・trunk:最新のファイル、最新のバージョン、本流
・branches:プロジェクトの分岐
・tags:リリース時のスナップショット

特に変更や比較が多発するプロジェクトは上記概念を利用しますが、
比較や変更があまり発生しないものについては、上記概念は使わなくてよいです。

また、上記のフォルダは、それぞれ必要になったときに作成します。
上記概念を取り入れて trunk 配下にプロジェクトファイルを配置した場合、
branches フォルダは、開発の分岐が必要になったときに作成します。
tags はリリース時など、スナップショットを取りたくなったときに作成します。

たとえば、sinPocketStopWatch アプリケーションの開発を行うことと、
ブログの記事にするメモを Subversion で管理したい場合を例にして話をすると、
まず、作業フォルダ(ローカル)に以下のように、フォルダを作成し、
管理するファイルを配置します。
「□」のフォルダは必要になったときに作成します。参考にご覧ください。

■C:
└■!SVN
 ├■sinProject(リポジトリ)
 │├■Develop(カテゴリ:開発)
 ││├■Software(カテゴリ:ソフトウェア)
 │││├■sinPocketStopWatch(プロジェクト)
 ││││├■trunk(開発本流用)
 │││││├■binary(分類:バイナリファイル)
 │││││├■document(分類:ドキュメント関連)
 │││││└■source(分類:ソースファイル)
 │││││ └■sinPocketStopWatch(ソリューション単位)
 │││││  └・・・・・(ソースファイル)
 ││││├□branches(プロジェクトをはじめて分岐するときに作成)
 │││││└□1.0.x(本流は2.0へ進み、1.0.xバージョンを分岐開発する場合)
 ││││├□tags(スナップショットを始めてとるときに作成)
 │││││├□1.0.0(バージョン1.0.0のスナップショット)
 ││││││├□binary(trunk と同じ構成になる)
 ││││││├□document(trunk と同じ構成になる)
 ││││││└□source(trunk と同じ構成になる)
 │││││└□date_20090929(2009年9月29日のスナップショット)
 │・・・・・・・・
 │├■Document(カテゴリ:ドキュメント)
 ││├■Blog(ブログ用カテゴリフォルダ。この直下にファイルを配置
 │││・・・・・・・

▼バージョン管理の注意事項
バージョン管理が行われているフォルダやファイルには、
管理状態を表すアイコンが表示されます。そして、管理対象のフォルダの中には、
「_svn」という管理用のフォルダが隠し属性で配置されます。
この管理フォルダの中を編集したり削除したりしないでください。

・ファイルやフォルダの名前の変更、削除、移動について
管理済みのファイルやフォルダの名前の変更、削除、移動を行う際は、
対象のフォルダ、ファイルを右クリックして「TortoiseSVN」のサブメニューより行ってください。
また、変更をサーバーに反映するには、対象のフォルダか対象のフォルダ内で右クリックし、
「SVNコミット」を行って Subversion サーバーを更新します。

→参考:
削除・移動・名前の変更 - TortoiseSVN
http://tortoisesvn.net/docs/nightly/TortoiseSVN_ja/tsvn-dug-rename.html


上記の作業は作業フォルダで右クリックして上記のように行ってもよいですが、
リポジトリブラウザを利用してリポジトリブラウザ内で行うと間違いが無くさらに便利です。
リポジトリブラウザで変更を行った場合は、対象の作業フォルダで「SVN更新」を行うと、
Subversionサーバーから作業フォルダに変更を取得することができます。

▼アイコンオーバーレイについて
バージョン管理されたフォルダやファイルにはアイコンオーバーレイで状態がわかるようになります。
ただし、このアイコンオーバーレイは、すぐに状態が変更されない為、
状態を確実に確認したい場合は、変更を行ったファイルが存在するフォルダを開く必要があります。
ここではオーバーレイの反映は若干遅れることを覚えておいてください。

デフォルトではバージョン管理外のファイルを含むフォルダに変更マークが付かないので、
それに対応させる設定もありますが、この設定を有効にして、ファイルを追加後削除すると、
アイコンが戻らなくなる障害があります。よって、ファイルを新規作成した場合は、
なるべく早くコミットする癖をつけておくとよいでしょう。

▼バージョン管理へ登録(チェックアウト→コミット)
バージョン管理していないファイルを Subversion に登録する場合、

作業フォルダ(ローカルファイル)のフォルダ構成」と、
バージョン管理の概念(trunk, branches, tags)」を理解し、

適切な作業フォルダにファイルを配置します。

次に、右クリックメニューより「TortoiseSVN>リポジトリブラウザ」を選択し、
接続したいリポジトリのURLを入力して接続します。

バージョン管理への登録や取得は、リポジトリブラウザを開いておいて、
リポジトリのURLは、リポジトリブラウザからコピー&ペーストすると便利です。
「コピー&ペースト」をするとチェックアウトディレクトリが変更されるので、
手動で修正を行ってください。

・作業フォルダのリポジトリフォルダを丸ごと管理登録する場合
作業フォルダのリポジトリフォルダがある階層のフォルダを開き、
何もないところで右クリックして、「SVNチェックアウト」を選択します。

チェックアウトダイアログに、リポジトリのURLとチェックアウトディレクトリを指定し、
OKボタンを押します。

例:(Testリポジトリの場合)
リポジトリのURL: https://sinproject.selfip.com/svn/Test
チェックアウトディレクトリ: C:\!SVN\Test

作業フォルダの中身が空で無い場合
「ターゲットフォルダ・・・は空ではありません!」と表示されますが、
「はい」を選択してチェックアウトします。

エクスプローラーで作業フォルダ内の登録したリポジトリフォルダを右クリックし、
「SVNコミット」を選択します。

コミットダイアログの下のほうにあるチェックボックスで
「すべて選択」にチェックをつけ、OKボタンを押します。

これで、作業フォルダのファイルが Subversion に登録されます。

・作業フォルダの特定のフォルダを管理登録する場合
リポジトリブラウザでリポジトリへの接続が完了した後、作業フォルダと同じ構成で、
リポジトリブラウザのツリーペインでフォルダ右クリックし、
「フォルダを作成」でリポジトリにフォルダを作成していきます。
作成後にツリーペインの表示を更新する場合は「F5」キーを押してください。

作業フォルダの登録対象のフォルダがある階層のフォルダを開き、
何もないところで右クリックして、「SVNチェックアウト」を選択します。

チェックアウトダイアログに、リポジトリのURLとチェックアウトディレクトリを指定し、
OKボタンを押します。

例:(Testリポジトリの Document\abc フォルダの場合)
リポジトリのURL: https://sinproject.selfip.com/svn/Test/abc/
チェックアウトディレクトリ: C:\!SVN\Test\abc

作業フォルダの中身が空で無い場合
「ターゲットフォルダ・・・は空ではありません!」と表示されますが、
「はい」を選択してチェックアウトします。

エクスプローラーで作業フォルダ内の登録したフォルダを右クリックし、
「SVNコミット」を選択します。

コミットダイアログの下のほうにあるチェックボックスで
「すべて選択」にチェックをつけ、OKボタンを押します。

これで、作業フォルダのファイルが Subversion に登録されます。

▼バージョン管理から取得(チェックアウト)
リポジトリブラウザを開き、取得したいフォルダを選択します。
リポジトリをすべて取得したい場合はルートフォルダを選択します。
ただし、「tags」や「branches」フォルダの内容まで取得してしまうと、
作業フォルダの無駄遣いになるので、これらを取得したくない場合は、
リポジトリをすべて取得するのではなく、
必要な分だけフォルダを指定して取得することをお勧めします。

「trunk, branches, tags」管理をしているフォルダに対しては、
その上層のフォルダまでは「リポジトリブラウザ」を参考に同様の階層を作成し、
「trunk」フォルダで「SVNチェックアウト」を行ってください。

作業フォルダに、取得したいフォルダの一つ上のまでのフォルダ階層を作成します。
そのフォルダを開き何もないところで右クリックして、「SVNチェックアウト」を選択します。

リポジトリブラウザで対象のフォルダを選択し、URLをコピーします。
チェックアウトのリポジトリURLに、コピーしたURLをペーストします。
「チェックアウトディレクトリ」を確認し、おかしい場合は修正します。
OKボタンを押してチェックアウトを行います。

これで、Subversion に管理されているファイルが作業フォルダに管理状態でコピーされます。

▼バージョン管理へ更新(SVNコミット)
バージョン管理されたファイルの内容を変更した場合や、
フォルダ、ファイルを追加した場合、変更内容をサーバーに反映するには、
対象のフォルダを右クリックするか、対象のフォルダ内で右クリックして
「SVNコミット」を選択します。

変更があったファイルはチェックが付いていますが、新規のフォルダやファイルは、
チェックが付いていませんので、「すべて選択」をチェックし、OKボタンを押します。

これで、作業フォルダの更新が Subversion サーバーに反映されます。

競合のエラーが出る場合は次項「競合の編集・解決とマージ」を参照してください。
それ以外のエラーが発生する場合は、「SVN更新」で最新を取得したり、
「クリーンアップ」を行ってから再度コミットしてみてください。

▼競合の編集・解決とマージ
「SVNコミット」を行った際に、他者が同じファイルを既に編集していた場合、
コミットに失敗します。その際は以下の手順で作業を行います。

「SVN更新」を行い、更新内容を取得します。
「SVN更新」時に表示される競合があるファイルを覚えておきます。
競合(コンフリクト)が発生したファイルは、アイコンにびっくりマークがつきます。
対象のファイルを右クリックし「TortoiseSVN>競合の編集」を選択します。

TortoiseMergeで競合を解決していきます。
拡張子の後に「.r***」と表示されているのがサーバーファイル、
「.mine」と表示されているのが作業フォルダのファイルです。

各行に対してどちらの内容を反映するかを選択しながら、
マージ後のファイルを完成させます。

マージするには、対象行を選択状態にします。
左のものを反映するには「→」のボタン、右のものを反映するには「←」のボタンを押します。
マージペインの「?」マークが無くなればすべてのマージが完了です。
「チェックアイコン(解決マークをつける)」を押して、マージを完了させ、
「TortoiseMerge」を閉じます。

再度、「SVNコミット」を実行します。

→参考:
競合の解決 - TortoiseSVN
http://tortoisesvn.net/docs/nightly/TortoiseSVN_ja/tsvn-dug-conflicts.html


▼tag や branch の作成方法
バージョン1.0の開発を進めつつバージョン2.0の開発も平行して行うなどの際に、
「branches」の概念を利用します。

また、リリース時の状態などのスナップショットをとる場合、
「tags」の概念を利用します。

これらは、TortoiseSVNのサブメニューでも行えますが、リポジトリブラウザで
行うほうが間違いが少なく比較的簡単です。

以下の作業はリポジトリブラウザから行います。

・tags を利用したスナップショットの取り方
trunk と同じ階層に tags フォルダが無い場合、tags フォルダを作成します。
右クリックで「trunk」フォルダを「tags」フォルダにドラッグします。
「ここにコピーし名前を変更」を選択し、新しい名前(tag名)を決めます。
バージョン表記で tag を作りたい場合は「1.1.0」など、
日付表記で tag を作りたい場合は「date_20090929」などの名前を指定します。
これで tags フォルダにスナップショットを作成できます。

tags フォルダの中身は特に必要が無ければ作業フォルダにコピーする必要はありません。

・branchesを利用した分岐の作り方
trunk と同じ階層に branches フォルダが無い場合、branches フォルダを作成します。
右クリックで「trunk」フォルダを「branches」フォルダにドラッグします。
「ここにコピーし名前を変更」を選択し、新しい名前(tag名)を決めます。
バージョン表記で 「1.0.x」などと表記しておくとよいです。
これで branches フォルダに分岐を作成できます。

分岐したものを新しく作業フォルダを作成して取得する場合、
作業フォルダにも「branches」フォルダを作成し、
「バージョン管理から取得(チェックアウト)(※16)」の手順を参考に取得します。

▼ブランチのマージ
1.0.x ブランチでバグフィックス等の編集した内容を trunk に反映する場合、
ブランチでは「SVNコミット」を完了させサーバー側を最新の状態にしておきます。
trunkは「SVN更新」を行い作業フォルダを最新の状態にしておきます。

trunk のフォルダか、フォルダ内で右クリックし「SVN更新」を行います。
「TortoiseSVN>マージ」を選択しマージダイアログを表示します。
「ブランチを再統合する」を選び「元URL」に「branch」のURLを指定します。

競合が無い場合はこれでブランチのマージが完了です。

・競合がある場合
競合している場合は、「競合を編集」か「すべて後で解決する」を選択します。
競合は「競合の編集・解決とマージ」を参考に解決していきます。
競合を解決後「SVNコミット」を行いブランチのマージをサーバーに反映します。

→参考:
Subversion(TortoiseSVN)でマージする方法(手順)(2) バージョン1.5以降 [機能ブランチ]
http://hide.xsv.info/tips/svnmanual/merge2/


▼差分を確認する・リビジョンの比較を行う
現在の作業コピー(作業フォルダの内容)と、前回コミットしたものを比較する場合は、
対象のファイル(またはフォルダ)を右クリックし「TortoiseSVN>差分」を選択します。
もう一つ前回のコミットと比較する場合は「TortoiseSVN>以前のバージョンと差分」を選択します。
※コミット後にファイルが変更されていない場合、「差分」は表示されません。

任意のバージョンと作業フォルダを比較する場合や、任意のバージョン間で比較する場合は、
「TortoiseSVN>ログを表示」でログダイアログを表示し、行を選択します。
1つの行を選択して右クリックし、作業コピーとの比較が行えます。
Ctrlキーを押しながら二つのリビジョンを選択した場合、リビジョン間の比較が行えます。

▼作業フォルダの変更をキャンセルし、最終コミット状態に戻す
作業フォルダの変更をキャンセルし、最終コミット状態に戻したい場合、
対象のファイル(またはフォルダ)を右クリックし「TortoiseSVN>元に戻す」を選択します。

※コメントを頂けると大変うれしいです。コメントはお気軽にどうぞ^-^

テーマ : IT関連 ジャンル : コンピュータ

01:34  |  ソフトウェア開発/プログラム  |  Trackback(0)  |  Comment(0)  |  EDIT  |  Top↑

2009.10.01 (Thu)

[TortoiseSVN] 【クライアント】バージョン管理クライアント環境を構築したい - WindowsでSubversionを使いバージョン管理とバックアップを備えた自宅オンラインストレージ環境を構築する

---目次---
■WindowsでSubversionを使いバージョン管理とバックアップを備えた自宅オンラインストレージ環境を構築する
●【サーバー】サーバーの基本環境を構築したい
●【サーバー・クライアント】バックアップ環境を構築したい
●【サーバー】バージョン管理サーバーを立てたい
●【サーバー】Subversionサーバーにインターネット経由でアクセスしたい
●【サーバー】Subversionのデータをネットワーク上の他の場所に同期したい
├>【クライアント】バージョン管理クライアント環境を構築したい
●【クライアント】TortoiseSVN の利用方法を知りたい
●【クライアント】VisualStudioでSubversionを利用したい
●【サーバー・クライアント】Tips・トラブルシューティング
●【サーバー・クライアント】まとめ

※※ご案内※※
この記事に対しご意見やご不明な点がございましたらお気軽にご相談、ご連絡ください。

●【クライアント】バージョン管理クライアント環境を構築したい

▼バージョン管理クライアントツール TortoiseSVN のインストール
Subversionサーバーに接続するクライアントツールの一つ、TortoiseSVNをインストールします。
サーバーもクライアントの1つと考え、サーバーにもこの項の操作を行います。

TortoiseSVN
http://tortoisesvn.tigris.org/


メニューからDownloadに進み、32bit版をダウンロードします。
(※OSが64Bitの場合はもちろん64Bit版をダウンロード)
ダウンロードしたファイルを実行し、インストールを完了します。
インストールの最後に再起動を促されますが、ここでは再起動しません。

デスクトップの何もないところで右クリックすると、
右クリックメニューが拡張され「SVN Checkout」と「TortoiseSVN」メニューが
増えていると思います。以下の設定は「TortoiseSVN>Settings」で行います。

▼TortoiseSVN を日本語化する
TortoiseSVNを日本語化したい場合は、TortoiseSVNと同一のダウンロードページから
日本語の言語ファイルをダウンロードしインストールします。

ToroiseSVNの設定画面を開き、Languageで「日本語」を選択します。
ここから先は、日本語化したものとして説明を行います。

▼TortoiseSVN 除外パターンの設定
VisualStudioローカルファイルやオブジェクトファイル、その他バージョン管理が不要なものを設定しましょう。
ほかにも「絶対に除外していい」ものがあったら追加して結構です。
フォルダの除外は、例えば「obj」フォルダを除外する場合「*\obj」と指定します。

設定画面「一般」を開きます。
「除外/無視するパターン」を追加します。
 デフォルト:*.pyc *.pyo *.rej *~ #*# .#* .*.swp .DS_Store
 変更後:*.pyc *.pyo *.rej *~ #*# .#* .*.swp .DS_Store *.obj *\obj *.scc *.suo *.ncb *.vcproj *.user *.opt *.clw *.ncb *.aps *.mak Thumbs.db

※上記は VisualStudio で C++、C# を使うときに、同期が必要でないもの等を除外している
※プロジェクトごとに無視するファイルやフォルダを指定することも出来るがここでは説明しない。

→参考:
ソース コード管理システムから除外すべきローカル ファイル:Microsoft Visual C++ Web Site
http://www.microsoft.com/japan/msdn/vs_previous/visualc/techmat/feature/teamwork/


TortoiseSVN の設定:一般設定
http://tortoisesvn.net/docs/nightly/TortoiseSVN_ja/tsvn-dug-settings.html#tsvn-dug-settings-main


▼TortoiseSVN 管理フォルダ名の変更
TortoiseSVNでは、バージョン管理を行った作業フォルダには「.svn」フォルダが作成されますが、
ASP.NETの開発を行う際に障害が発生するようです。
管理フォルダをそこで「.svn」ではなく「_svn」フォルダに変更する設定があります。
ASP.NETを利用していなくても、とりあえず何か障害が起きるかもしれないので変更しておきましょう。

設定画面「一般」を開きます。
「".svn"ディレクトリの代わりに"_svn"を利用する」にチェックをつけます。

▼TortoiseSVN アイコンオーバーレイ設定の変更
バージョン管理されたフォルダやファイルにはアイコンオーバーレイで状態がわかるようになります。
しかし、デフォルトの設定では、この状態監視のためにシステム全体が重くなってしまいます。
よって、軽量化の設定を行います。

設定画面「アイコンオーバーレイ」を開きます。
ドライブの種類のチェックボックスをすべて外します。
「含めるパス」のテキストボックスに状態を監視したいパスを入力します。
Subversionで管理するファイルは全て特定のドライブのルートに「!SVN」というフォルダを作成し、
そこにまとめるようにしましょう。「C:\!SVN」にまとめる場合、
「含めるパス」に「C:\!SVN\*」と記述します。

→参考:
TortoiseSVN をインストールすると PC が重くなる件 | バシャログ。
http://c-brains.jp/blog/wsg/09/08/10-153547.php


▼マージツール WinMerge のインストール
マージツール(ファイルを合併、結合するもの)は TortoiseSVN にも付いていますが、
WinMerge というソフトを利用するとさらに便利になります。

WinMerge 日本語版
http://www.geocities.co.jp/SiliconValley-SanJose/8165/winmerge.html


上記サイトから WinMerge をダウンロードし、インストールします。
セットアップの途中「追加タスクの選択」ページが表示されたら、
「TrtoiseSVNとの連携」にチェックをしてインストールを進めてください。
WinMergeは、「表示>フォント選択」で「MS ゴシック サイズ 9」ぐらいにすると良いです。

▼TortoiseSVN 設定反映のため再起動
Tortoiseの一部の設定は、Windowsを再起動するまで反映されません。
ここまで設定が完了したらWindowsを再起動します。

▼hostsファイルの設定(LAN上のPCのみ)
DynamicDNSサービスで取得したドメインを利用した接続は外部からしかアクセスできませんが、
hostsファイルを定義して、仮想的にLAN上のPCからも同じURLでアクセスできるようします。

「C:\WINDOWS\system32\drivers\etc\hosts(WindowsXPの場合)」ファイルをテキストエディタで開きます。

末尾行に「サーバーPCのローカルIPアドレス、ドメイン」を追加します。

例:
192.168.24.201 sinproject.selfip.com
(IPアドレスとドメインの間は、タブ、もしくはスペースをあける)

hostsファイルを設定したLAN上のPCをWANから接続する際は、
hostsファイルで追加した行の先頭に「#」を記述してhosts設定を無効にして利用します。

▼動作テスト
右クリックメニューより「TortoiseSVN>リポジトリブラウザ」を選択します。
URLの欄に接続先を入力します。

ドメインが「sinproject.selfip.com」、接続テスト用のリポジトリを「Test」とした場合、
接続先のURLは以下の様になります。

https://sinproject.selfip.com/svn/Test

※ServerPort に「443」以外を指定した場合(例は8443の場合)
https://sinproject.selfip.com:8443/svn/Test

SSL証明書は、正式な証明機関が発行したものではないので、
接続しようとすると「サーバー証明書 ***** の確認エラー不明な証明書です。」
というメッセージが表示されますが「常に受理する」ボタンを押下し、
今後この警告が表示しないようにします。

認証ダイアログが表示されたら、そのリポジトリにアクセスする
権限のあるユーザーのIDとパスワードを入力します。

左側のペインにアクセス先のアドレスが記述されたフォルダが
表示されていれば接続は成功しています。

▼リポジトリブラウザ利用のご注意
リポジトリブラウザでは、接続時には関係の無いフォルダの情報が取得されません。
また、フォルダを作成したりした場合も、ツリーが最新の状態になりません。
そういう場合は、更新を行いたいフォルダを選択し「F5」キーを押すことで、
フォルダツリーの更新を行うことができます。

※コメントを頂けると大変うれしいです。コメントはお気軽にどうぞ^-^

テーマ : IT関連 ジャンル : コンピュータ

01:29  |  ソフトウェア開発/プログラム  |  Trackback(0)  |  Comment(0)  |  EDIT  |  Top↑

2009.10.01 (Thu)

[TortoiseSVN] 【サーバー】Subversionのデータをネットワーク上の他の場所に同期したい - WindowsでSubversionを使いバージョン管理とバックアップを備えた自宅オンラインストレージ環境を構築する

---目次---
■WindowsでSubversionを使いバージョン管理とバックアップを備えた自宅オンラインストレージ環境を構築する
●【サーバー】サーバーの基本環境を構築したい
●【サーバー・クライアント】バックアップ環境を構築したい
●【サーバー】バージョン管理サーバーを立てたい
●【サーバー】Subversionサーバーにインターネット経由でアクセスしたい
├>【サーバー】Subversionのデータをネットワーク上の他の場所に同期したい
●【クライアント】バージョン管理クライアント環境を構築したい
●【クライアント】TortoiseSVN の利用方法を知りたい
●【クライアント】VisualStudioでSubversionを利用したい
●【サーバー・クライアント】Tips・トラブルシューティング
●【サーバー・クライアント】まとめ

※※ご案内※※
この記事に対しご意見やご不明な点がございましたらお気軽にご相談、ご連絡ください。

●【サーバー】Subversionのデータをネットワーク上の他の場所に同期したい

Subversion では、LANだけでなくインターネット越しの遠隔地に、
リポジトリのミラーを同期保存することができます。
ここでは svnsync というコマンドを利用した同期保存方法を解説します。

▼svnsyncを使った同期の利点と欠点
svnsync を利用すると、同期元のリポジトリにコミットしたタイミングで、
同期先も同時にコミットすることができます。
よって、リポジトリが更新されない限りは負荷がかからず、
また更新された際は常に同期を保つことができます。

欠点としては、コミットに時間がかかってしまうことが挙げられます。
svnsync による同期は、コミット時に「同期元にコミット>同期先にコミット」
と2回のコミットが走る為です。

▼同期先サーバーの設定
同期先のSubversionサーバーで、同期用のユーザーを作成します。

例: ユーザーID:svnsyncuser / パスワード:svnsyncuserpass(任意に変更してください)

同期先サーバーに同期先用リポジトリ(名称例:sync_Test)を作成します。
同期先用リポジトリに対し、以下の権限設定を行います。
※同期先に対して不注意にコミットや編集をしてしまわないようにするため。

Administrators: Read Only
Everyone: No Access
svnsyncuser: Read / Write

同期先に作成したリポジトリの実ファイルがあるフォルダの hooks フォルダを開きます。
以下の2つのファイルを作成します。

・ファイル名:start-commit.bat
内容:
if "%2" == "svnsyncuser" exit 0
exit 1

・ファイル名:pre-revprop-change.bat
内容:
if "%3" == "svnsyncuser" exit 0
exit 1

▼同期元サーバーの設定:環境変数
svnsync コマンドが利用できるように、環境変数のPATHに追加します。

スタートボタン>マイコンピュータ>右クリック>プロパティ>
詳細設定>環境変数ボタン>システム環境変数>「Path」選択>編集ボタン

VisualSVNを規定の場所にインストールした場合は、変数値の末尾に
「;C:\Program Files\VisualSVN Server\bin」
を追加します。

環境変数の変更を反映させる為、同期元サーバーを再起動します。

▼同期の初期化
「svnsync init」コマンドを利用し、同期元と同期先の関連付けと初期化を行います。

コマンド構成:
svnsync init [同期先] [同期元] [Options]

同期元サーバーでコマンドプロンプトを開きます。
以下のコマンドを実行します。

条件例:
同期元のリポジトリのURL: https://sinproject.selfip.com/svn/Test
同期先のリポジトリのURL: https://sync_sinproject.selfip.com/svn/sync_Test
同期元リポジトリへのアクセスユーザー/パスワード: iamsin/12345
同期先リポジトリへのアクセスユーザー/パスワード: svnsyncuser/svnsyncuserpass

コマンド:
svnsync init https://sync_sinproject.selfip.com/svn/sync_Test https://sinproject.selfip.com/svn/Test --non-interactive --trust-server-cert --source-username=iamsin --source-password=12345 --sync-username=svnsyncuser --sync-password=svnsyncuserpass

結果:
「Copied properties for revision 0」と出力されれば正常終了です。

▼手動同期を行う
同期を行います。同期元、同期先の条件は「同期の初期化」と同じとします。

コマンド構成:
svnsync sync [同期先] [Options]

同期元サーバーでコマンドプロンプトを開きます。
以下のコマンドを実行します。

コマンド:
svnsync sync https://sync_sinproject.selfip.com/svn/sync_Test --non-interactive --trust-server-cert --source-username=iamsin --source-password=12345 --sync-username=svnsyncuser --sync-password=svnsyncuserpass

結果:
Committed revision 1.
Copied properties for revision 1.
Committed revision 2.
Copied properties for revision 2.
.....

と表示され、同期元のリビジョン番号までコピーされたら正常終了です。

▼手動同期後のご注意
TortoiseSVNで、ユーザー認証情報を保存する設定にしていると、
svnsync sync を実行した際のユーザー情報が記録保存されてしまい、
リポジトリに正常にアクセス出来なくなってしまいます。
「TortoiseSVN>設定」を開き「保存データ>認証データ」の「クリア」ボタンを押して、
ユーザーアクセス情報を初期化してください。
また、このボタンを押すと、証明書の情報も消去されてしまう為、
サーバーアクセス時に「サーバー証明書 ***** の確認エラー不明な証明書です。」
というメッセージが表示されますが「常に受理する」ボタンを押下し、
今後この警告が表示しないようにします。

▼コミット時に同期するようにする
コミット時に同期するようにします。
必ず上記の「同期を行う」が正常に完了したことを確認してから行ってください。

同期元リポジトリの実ファイルがあるフォルダの hooks フォルダを開きます。
以下の2つのファイルを作成します。
同期元、同期先の条件は「同期の初期化」と同じとします。

・ファイル名:post-commit.bat
内容:(同期を行ったコマンドと同じです)
svnsync sync https://sync_sinproject.selfip.com/svn/sync_Test --non-interactive --trust-server-cert --source-username=iamsin --source-password=12345 --sync-username=svnsyncuser --sync-password=svnsyncuserpass

・ファイル名:post-revprop-change.bat
内容:
svnsync copy-revprops https://sync_sinproject.selfip.com/svn/sync_Test %2 --non-interactive --trust-server-cert --source-username=iamsin --source-password=12345 --sync-username=svnsyncuser --sync-password=svnsyncuserpass

▼コミット時の同期テスト
同期元のリポジトリに対して、ファイルを追加、変更するなど、
何か簡単な更新を加えて「SVNコミット」を行います。

コミットが正常に完了することを確認し、最終リビジョン番号を控えます。
リポジトリブラウザを用いて同期先リポジトリを開き、
ルートにあるフォルダのいずれかが先ほどの最終リビジョンになっていることを確認します。

▼エラーが出て同期できなくなった場合
エラー例としては以下のようなものがあります。

「同期先リポジトリにコミットしたのではありませんか」
「svnsync: Destination HEAD (224) is not the last merged revision (218); have you committed to the destination without using svnsync?」
「Transmitting file data .svnsync: Can't read file 'G:\!Mirror_Data_00001_Source\Subversion\Repositories\ClimbMedicalSystems\db\revs\0\224': End of file found」

海外サイトなども調べて復旧方法を調査しましたが、駄目なときは駄目みたいです。
結論から申し上げますと、あきらめて新しい同期先用リポジトリを作成しなおし、
同期設定を再構築したほうが早いです。以下の手順で再構築を行います。

1. 同期先リポジトリの実フォルダ(管理ファイル)を削除
2. 「同期先サーバーの設定
3. 「同期の初期化
4. 「手動同期を行う
5. 「手動同期後のご注意
6. 「コミット時の同期テスト

もし、
「そんなことをしなくてもこれで完全に直る」
という対応法がございましたら教えてください。

→参考:
svnsync - Subversion
http://www.caldron.jp/~nabetaro/svn/svnbook-1.4-final/svn.ref.svnsync.html


svnsyncを使ってリポジトリレプリケーション - フジハラボ -- 目指せ!スーパーエンジニア
http://daipresents.com/weblog/fujihalab/archives/2008/12/subversion15-svnsync.php

※コメントを頂けると大変うれしいです。コメントはお気軽にどうぞ^-^

テーマ : IT関連 ジャンル : コンピュータ

01:24  |  ソフトウェア開発/プログラム  |  Trackback(0)  |  Comment(0)  |  EDIT  |  Top↑

2009.10.01 (Thu)

[TortoiseSVN] 【サーバー】Subversionサーバーにインターネット経由でアクセスしたい - WindowsでSubversionを使いバージョン管理とバックアップを備えた自宅オンラインストレージ環境を構築する

---目次---
■WindowsでSubversionを使いバージョン管理とバックアップを備えた自宅オンラインストレージ環境を構築する
●【サーバー】サーバーの基本環境を構築したい
●【サーバー・クライアント】バックアップ環境を構築したい
●【サーバー】バージョン管理サーバーを立てたい
├●【サーバー】Subversionサーバーにインターネット経由でアクセスしたい
●【サーバー】Subversionのデータをネットワーク上の他の場所に同期したい
●【クライアント】バージョン管理クライアント環境を構築したい
●【クライアント】TortoiseSVN の利用方法を知りたい
●【クライアント】VisualStudioでSubversionを利用したい
●【サーバー・クライアント】Tips・トラブルシューティング
●【サーバー・クライアント】まとめ

※※ご案内※※
この記事に対しご意見やご不明な点がございましたらお気軽にご相談、ご連絡ください。

●【サーバー】Subversionサーバーにインターネット経由でアクセスしたい

▼環境構築の前準備
以下の項目設定を完了させておきます。
・「【サーバー】サーバーの基本環境を構築したい」の対応は必須
・「【サーバー・クライアント】バックアップ環境を構築したい」の対応は推奨
・「【サーバー】バージョン管理サーバーを立てたい」の対応は必須

▼インターネット(WAN)からのアクセスを想定し、ルーターの設定を行う
ルーターで常時接続とポートフォワーディングの設定を行います。

・常時接続設定・自動切断解除
通常のインターネット契約では、インターネットとの通信が一定時間発生しない場合、
プロバイダ側から接続を切断されてしまい、WAN側のIPアドレスが変更してしまう可能性があります。
よって、ルーターには定期的に外部と通信して接続を保持する機能が付いているものがあります。
ルーターの説明書かルーターの設定画面を確認してみてください。
もし「自動切断」みたいな設定が有る場合はその設定を解除してください。
特に設定が見つからなければこのまま先に進んでください。

・ポートフォワーディング
Subversionサーバーでは、通常443のポートを利用しますので、
WAN側から443ポートへのアクセスがあった場合ローカルサーバーへ接続するよう、
ルーターでポートフォワーディングの設定を行います。
Subversinoサーバーで443以外のポートを設定した場合は、そのポート番号で設定を行います。

→参考:
IP固定 ルータ設定
http://kakkon3.hp.infoseek.co.jp/ipkotei/ipkotei.htm


特集 : ブロードバンド・ルータ徹底攻略ガイド
http://www.atmarkit.co.jp/fpc/special/bbrouter_desc/portforward_dmz.html


▼インターネット(WAN)からのアクセスを想定し、DynamicDNSの設定を行う
バージョン管理で外部からのアクセス(インターネット、WAN)を想定する場合は、
DynamicDNSサービスを利用すると便利です。

通常のインターネット契約では「固定IP」契約では有りませんので、
インターネット接続が切れてしまうと、WAN側のIPアドレスが変更されてしまいます。
よって、WAN側のIPアドレスが変更されても、固定のドメインで接続できるようにします。
これを行う技術、及びサービスを「Dynamic DNS」と呼びます。

DynDNS.com
http://www.dyndns.com/


DynDNSのサイトを開きます。「Free Dynamic DNS」の欄で、ドットの左に好きな名前し、
右側では好きなドメインを選択し「Add」ボタンをおしてください。
自分は「sinproject.selfip.com」と指定しました。

指定した名前の組み合わせが既に他の誰かに使用されている場合は変更してください。
指定した名前の組み合わせが使用されていなければアカウント作成画面に進みます。

「$ 0.00」と表示されますがびっくりしないで下さい。
つまりこのサービスは無料だということです。

ユーザー名、パスワード、メールアドレスを指定し「Create Account」を押して
アカウントを作成します。既にアカウントをもっている方は「Already Registered?」
の欄にユーザー名とパスワードを入力します。

確認画面が表示されるので「Order Total: $0.00」であることを確認し、
「Next」ボタンを押します。次の画面で「Activate Services」ボタンを押します。
これで DynDNSによるDynamicDNSのサービスが開始されます。
「HostServices」という一覧画面にホスト名とIPアドレスの関連付けが表示されます。

▼外部IPアドレスの変更を自動検知してDynamicDNSの設定を変更する
上記DynDNSのサービスに加入しても、もし外部IPアドレスが変わってしまった場合は、
DynDNSサイトにアクセスしてIPアドレスを変更しなくてはなりません。

よって、外部IPアドレスの変更を検知し、自動で更新を行う「DiCE」というツールを利用します。

DynamicDNS Client Tool「DiCE」
http://www.hi-ho.ne.jp/yoshihiro_e/dice/


「Freeware Version Download MSI Package」をダウンロードしサーバーPCにインストールします。

常に起動するのを忘れないよう、プログラムメニューのショートカットを
「スタートアップ」にコピーしておきます。

DiCE を起動し、「メニュー>オプション>環境設定」を開きます。

・一般
好みで最小化起動と、ログ生成にチェックします。

・PING機能
「定期的に送信する」を選択し、送信先ホストに「www.dyndns.org」と入力します。
その後、「テスト」ボタンを押して PING が正常に返ってくることを確認します。

オプションダイアログを「OK」ボタンで閉じます。

「メニュー>イベント>追加」を開きます。
以下のように設定します。

説明:設定の名前(例:sinproject.selfip.com)
一般タブ
 サービス:dyndns
 ホスト名:dynDNSサイトで指定したホスト名(例:sinproject)
 ドメイン名:dynDNSサイトで選択したドメイン名(例:selfip.com)
 ユーザー名・パスワード:dynDNSサイトで指定したユーザー名、パスワード
スケジュール
 頻度:「IPアドレス変化時」に変更

設定が完了したら「保存」ボタンを押します。

▼動作テスト

・dynDNSとDiCEの動作テスト
DiCEを起動し、追加された設定を右クリックし「今すぐ実行」を押します。
ステータスバーに「IPアドレスを更新しました」と表示されればOKです。
DiCEを最小化し、タスクトレイにアイコンが有ることを確認します。

・WAN側からの接続テスト
このテストはLAN側のPCからは行えませんので、友人知人に依頼するか、
E-Mobileなどの回線を利用してLANではなく必ず外部からテストを行います。
友人知人に依頼する場合は、VisualSVNにテスト用のアカウントを作って
そのIDとパスワードを教えるとよいでしょう。テスト後はアカウントを削除しましょう。

ブラウザを起動し、以下のURLにアクセスします。

ドメインが「sinproject.selfip.com」、接続テスト用のリポジトリを「Test」とした場合、
接続先のURLは以下の様になります。

https://sinproject.selfip.com/svn/Test

※ServerPort に「443」以外を指定した場合(例は8443の場合)
https://sinproject.selfip.com:8443/svn/Test

SSL証明書は、正式な証明機関が発行したものではないので、

InternetExplorerでは、
「この Web サイトのセキュリティ証明書には問題があります。」
と表示されますが「このサイトの閲覧を続行する」を選択してください。

Firefoxでは、
「接続の安全性を確認できません」と表示されるので、
「危険性を理解した上で接続するには」をクリックし、
「例外を追加」ボタンを押して、セキュリティ例外を承認してください。

認証ダイアログが表示されたら、そのリポジトリにアクセスする
権限のあるユーザーのIDとパスワードを入力します。

左上に「VisualSVN」とロゴが表示されれば設定は正常に行えています。
外部からSubversionサーバーに接続できることがこれで確認できました。

※コメントを頂けると大変うれしいです。コメントはお気軽にどうぞ^-^

テーマ : IT関連 ジャンル : コンピュータ

01:11  |  ソフトウェア開発/プログラム  |  Trackback(1)  |  Comment(0)  |  EDIT  |  Top↑

2009.10.01 (Thu)

[TortoiseSVN] 【サーバー】バージョン管理サーバーを立てたい - WindowsでSubversionを使いバージョン管理とバックアップを備えた自宅オンラインストレージ環境を構築する

---目次---
■WindowsでSubversionを使いバージョン管理とバックアップを備えた自宅オンラインストレージ環境を構築する
●【サーバー】サーバーの基本環境を構築したい
●【サーバー・クライアント】バックアップ環境を構築したい
├>【サーバー】バージョン管理サーバーを立てたい
●【サーバー】Subversionサーバーにインターネット経由でアクセスしたい
●【サーバー】Subversionのデータをネットワーク上の他の場所に同期したい
●【クライアント】バージョン管理クライアント環境を構築したい
●【クライアント】TortoiseSVN の利用方法を知りたい
●【クライアント】VisualStudioでSubversionを利用したい
●【サーバー・クライアント】Tips・トラブルシューティング
●【サーバー・クライアント】まとめ

※※ご案内※※
この記事に対しご意見やご不明な点がございましたらお気軽にご相談、ご連絡ください。

●【サーバー】バージョン管理サーバーを立てたい

▼VisualSVN Server のインストール
WindowsGUIに対応している Subversionサーバーツール
「VisualSVN Server」をインストールします。

VisualSVN Server のダウンロードはこちら
http://www.visualsvn.com/server/download/

「Select Components」で「VisualSVN Server and Management Console」を選択します。
管理コンソールのみインストールする場合は「Management Console Only」を選択します。

インストール先は、
【サーバー・クライアント】バックアップ環境を構築したい
の説明で紹介したバックアップ元の「VisualSVN Server」インストール用フォルダを指定します。
それ以外の設定は後から変更できるのでそのままで結構です。

以下の設定はスタートメニューより「VisualSVN Server Manager」を開いて行います。

▼VisualSVN Server のサーバー設定
左ペインのルート「VisualSVN Server (Local)」を右クリックし「Properties」を選択します。

・Generalタブ
「Repsitories Root」をバックアップ元に作成したサブディレクトリを指定します。

・Netowrkタブ
「Server name」はDynamic DNSと証明書に関係してきます。
DynamicDNSサービスで取得する予定のドメイン名を入力します。
ここでは、ホスト名を自由に決め、その後は「selfip.com」としておきます。
(例:sinproject.selfip.com)
変更した場合は、「Certificateタブ」で証明書の再発行を行ってください。

※DynamicDNSサービスで希望するドメインが取得できなかった場合
DynamicDNSサービスで取得した際にこの設定を開きドメイン名を変更してください。

Server port
「443」を指定します。すでに443ポートがLAN内の他のPC、
または対象のPCで外向けに利用されているのであれば8443、あるいは他のポートを利用します。

Use secure connection にチェックをつけます。
Server Binding は、そのまま All IP address にしておきます。

・Certificateタブ
証明書の設定です。Change certificate で証明書を変更できます。
インストール時に証明書が自動で作成されていますが、
再作成や変更を行う場合はここから行います。

・Authenticationタブ
認証方法を選択できます。「Use Subversion authoentication」で
よいと思います。Windows認証を利用してもかまいません。

・Loggingタブ
ログ取得設定です。無料版ではログの取得が行えません。
ログを取得する場合は Upgrade を行ってください。

▼VisualSVN Server のユーザーの作成
左ペインの「User」フォルダを右クリックし「Create User」を選択します。
Subversionを利用するユーザーを作成します。
絶対権限を持つ管理者となるユーザーをまずはじめに作成してください。
また、公開フォルダにアクセスする為の匿名アカウントを
「ID:anonymous、Password:なし」で作っておきます。

▼VisualSVN Server のユーザーグループ作成
左ペインの「Group」フォルダを右クリックし「Create Group」を選択します。
Administratorsグループを作成し、管理者を追加します。
他にもグループが必要であれば適宜作成し、ユーザーを追加します。

▼VisualSVN Server の共通リポジトリ設定
左ペインの「Repositories」フォルダを右クリックし「Properties」を選択します。
Administratorsグループに「Read/Write」権限、
Everyoneグループに「No Access」の権限を設定します。

▼VisualSVN Server でリポジトリを作成する
リポジトリを構成する単位ですが、

「プロジェクトごとに小分けにリポジトリを作成する」人もいれば、
「管理がめんどくさいので1つのリポジトリで全部管理する」人もいます。

一番良いのは、アクセス権限の単位でリポジトリを作ることだとも言われますが、
どれが正解ということもありません。

個人的には、なるべくリポジトリは少なく、「大きなくくりのグループで分ける」
のが良いと思います。漠然とした表現で申し訳ありません。

自分は以下のようにリポジトリ(「■」表記のもの)を作成しています。
(※サブフォルダ「□」は参考のため記述しました。今は作成しなくて結構です。)

■sinProject(プライベート関連)
├□Configs(PCの設定やアプリの設定)
├□Compose(DTMなどの作曲、音楽関連)
├□Develop(プログラム、Web開発、ブログ記事など)
├□Document(上記以外のドキュメント関連)
├□Public(公開用フォルダ)
└□・・・・・
■Project2(仕事関連)
├□Develop
├□Document
├□Public
└□・・・・・
■Downloads(ダウンロードした残しておきたいファイル)
■Music(音楽データ)
■Pictures(写真データ)
■Videos(動画データ)
■Test(動作テスト、動作確認用。はじめは作っておきましょう)

「Project1/Project2」等のリポジトリ名は「sinProject」など、
大きなプロジェクトのくくりで名前をつけていますが、
個人利用の場合は「My Documents」と名前をつけ、一つでもよいと思います。
サブディレクトリの構成については、「【クライアント】TortoiseSVN の利用方法を知りたい」の項で紹介します。

「VisualSVN Server Manager」を開きます。
左ペインの「Repositories」フォルダを右クリックし「新規作成>Repository」を選択します。
リポジトリ名を半角英数で入力し、OKボタンを押します。
(trunk, branches, tagsのフォルダを作成するチェックはつけない)
作成したリポジトリのユーザー権限は共通権限から引き継がれますが、
権限の追加、削除、変更をしたい場合はリポジトリの「Properties」から行います。

公開フォルダが必要であれば、リポジトリのルートに「Public」フォルダを作成します。
フォルダのプロパティを開き、Everyone の権限を「Read Only」に変更します。
これで、一般の方は「anonymous」ユーザーで「Public」フォルダにアクセスすることが可能になります。

▼動作テスト
サーバーPCでブラウザを起動し、以下のURLにアクセスします。
※末尾の階層は作成したリポジトリ名を指定します。

https://127.0.0.1/svn/Test

※ServerPort に「443」以外を指定した場合(例は8443の場合)
https://127.0.0.1:8443/svn/Test

SSL証明書は、正式な証明機関が発行したものではないので、

InternetExplorerでは、
「この Web サイトのセキュリティ証明書には問題があります。」
と表示されますが「このサイトの閲覧を続行する」を選択してください。

Firefoxでは、
「接続の安全性を確認できません」と表示されるので、
「危険性を理解した上で接続するには」をクリックし、
「例外を追加」ボタンを押して、セキュリティ例外を承認してください。

認証ダイアログが表示されたら、そのリポジトリにアクセスする
権限のあるユーザーのIDとパスワードを入力します。

左上に「VisualSVN」とロゴが表示されれば設定は正常に行えています。

※コメントを頂けると大変うれしいです。コメントはお気軽にどうぞ^-^

テーマ : IT関連 ジャンル : コンピュータ

01:08  |  ソフトウェア開発/プログラム  |  Trackback(0)  |  Comment(0)  |  EDIT  |  Top↑

2009.10.01 (Thu)

[TortoiseSVN] 【サーバー・クライアント】バックアップ環境を構築したい - WindowsでSubversionを使いバージョン管理とバックアップを備えた自宅オンラインストレージ環境を構築する

---目次---
■WindowsでSubversionを使いバージョン管理とバックアップを備えた自宅オンラインストレージ環境を構築する
●【サーバー】サーバーの基本環境を構築したい
├>【サーバー・クライアント】バックアップ環境を構築したい
●【サーバー】バージョン管理サーバーを立てたい
●【サーバー】Subversionサーバーにインターネット経由でアクセスしたい
●【サーバー】Subversionのデータをネットワーク上の他の場所に同期したい
●【クライアント】バージョン管理クライアント環境を構築したい
●【クライアント】TortoiseSVN の利用方法を知りたい
●【クライアント】VisualStudioでSubversionを利用したい
●【サーバー・クライアント】Tips・トラブルシューティング
●【サーバー・クライアント】まとめ

※※ご案内※※
この記事に対しご意見やご不明な点がございましたらお気軽にご相談、ご連絡ください。

●【サーバー・クライアント】バックアップ環境を構築したい

バックアップサーバーの環境にRAIDの利用は推奨しません。障害時や拡張時の対応が大変です。
RAIDの障害は様々なケースがあり、一概に「簡単に復旧できる」とは言えないのです。
「RAIDを構成している=バックアップばっちり」ではありません。また、
「バージョン管理システムを利用=バックアップOK」とも言えません。
バックアップはバックアップでこれらとは別に行う必要があります。

▼バックアップサーバーには物理的にハードディスクを2台準備
2台のハードディスクドライブを準備します。
2台のHDDは、内蔵でも外付けでもかまいません。
PCの内蔵ディスクと外付け1台でもかまいません。

ハードディスクドライブは突然壊れる消耗品です。
「パーティションを分割した物理的に1台のハードディスク」では駄目です。

▼サーバーのみの設定:ミラー環境を構築
ミラー元となるフォルダをミラー元ドライブに作成します。
ミラー先となるフォルダをミラー先ドライブに作成します。

例:
ミラー元:G:\!Mirror_Data_00001_Source
ミラー先:H:\!Mirror_Data_00001_Dest

自分はデスクトップ、マイドキュメント、メール、お気に入り等は、バージョン管理していません。
これらをバージョン管理しないのは、不要なファイルが存在したりファイルが流動的なため、
またこれらのファイルは手動ではなく常に自動でバックアップがとられているのが
望ましいため、バージョン管理するにはふさわしくないと感じたためです。
(自分はメールやブックマークは、Googleを利用しているため、バックアップはしていません。)

ミラー元のフォルダに以下のサブフォルダを作成しています。

■G:\!Mirror_Data_00001_Source(ミラー元)
├■!!PC_Backup(個々のPCのバックアップ)
│├■PC_001(1台目のPC。PC名で良い)
││├■Application(アプリケーション毎でバージョン管理せず自動バックアップが必要なデータ)
│││├■Thunderbird(メールデータ)
│││└■・・・・・(その他アプリのデータ)
││├■Desktop(デスクトップ)
││├■Favorites(お気に入り)
││└■My Documents(マイドキュメント)
│└■PC_002(2台目のPC。PC名で良い)
│ └■・・・・・(1台目と同様に管理)
├■DiscImage(CDやDVDのイメージファイル。バージョン管理する必要がないためバックアップのみ)
├■・・・・・(その他バージョン管理する必要はないがバックアップしたいもの)
└■Subversion
 ├■Repositories (Subversionのリポジトリ格納先)
 └■VisualSVN Server_2.0.0 (VisualSVN Server のインストール先)

▼サーバー・クライアントの設定:共有設定

・サーバー側
バックアップサーバーのバックアップミラー元のフォルダを共有設定します。
フォルダのセキュリティ設定、共有設定のそれぞれに対し、
利用するユーザーにフルコントロールの権限を与えます。

・クライアント側
サーバーの共有フォルダが見られるかどうかを確認します。
「スタートボタン>ファイル名を指定して実行」より、
「\\192.168.24.201(サーバーのIPアドレス)」を指定して、
共有フォルダを確認します。「!Mirror_Data_00001_Source」フォルダ
が閲覧できることを確認してください。

クライアントでは「ネットワークドライブの割り当て」を行うと良いでしょう。
これをしておけば、クライアント側でバックアップ先の指定が楽になります。

上記共有フォルダのパスをエクスプローラーのアドレス欄からコピーして、
(例:\\192.168.24.201\!Mirror_Data_00001_Source)
エクスプローラーのメニュー「ツール>ネットワークドライブの割り当て」より、
「フォルダ」の欄に上記パスを貼り付け、ドライブレターを選択し完了ボタンを押します。

▼サーバー・クライアントへのバックアップツールインストール
BunBackup等のバックアップツールをインストールしますが、
BunBackupの設定をSubversionで管理するのならば、
以下のフォルダを作成し、そこにBunBackupをインストールすることを推奨します。

1.Subversionで管理するファイルを配置するディスクドライブ
2.アプリケーションの設定ファイルを格納するリポジトリ名
3.インストールするPCのコンピュータ名(PC名、ホスト名)

1 が「Cドライブ」、2 が「sinProject」, 3 が「pc-sin」だとした場合、
以下のパスになります。

C:\!SVN\sinProject\Configs\pc-sin\BunBackup

詳しい理由は「【クライアント】TortoiseSVN の利用方法を知りたい
で説明します。

BunBackup のダウンロードはこちら
http://homepage3.nifty.com/nagatsuki/bunbackup/bunbackup.htm

▼サーバー・クライアント共通設定:BunBackupの環境設定
・自動バックアップ:自動バックアップする:チェック、15分毎、Windows起動時に常駐:タスクに登録
・ログ:ログを記録する:チェック、記録回数:48回
  ログファイル名
   サーバー:G:\!Mirror_Data_00001_Source\Log.txt
   クライアント:%BunBackupインストールディレクトリ%\Log.txt
・タスクトレイ:タスクトレイアイコンを表示:チェック、エラーがあると点滅する:チェック
・優先度:優先度を下げる:チェック

▼サーバー・クライアント共通設定:各バックアップの詳細設定
バックアップ方法:サブフォルダもバックアップ:チェック
 条件指定:新しいファイル、異なるサイズ、新しい時刻
 ミラーリングする:チェック
世代管理:
 サーバー:
  世代管理する:チェック
  7日間、世代管理をバックアップ先とは別のフォルダに保存する:チェック
  世代管理を保存するフォルダ:サーバー:H:\!Mirror_Data_00001_Dest_Generation
 クライアント:
  世代管理する:チェックしない
その他:高速ファイルチェック:チェック、
    バックアップ元でロックされているファイルをコピー:バックアップエラー状況に応じてチェック

バックアップ元とバックアップ先はこのスクリーンショットを参考にしてください。
基本的にPC単位でバックアップ先を分けておきます。

Bunbackup_Server
サーバーのBunbackup設定

上記4行はクライアントとしてのバックアップ、最下行はサーバーとしてのバックアップです。
最下行はクライアントPCには必要ありません。しかしサーバーPCの場合は、
サーバーPCも一つのクライアントとして考えられるため、このような設定となります。

▼動作テスト

・クライアントPC
バックアップを手動で実行してサーバーのバックアップ先の想定するフォルダに、
デスクトップやマイドキュメントのファイルがコピーされていることを確認します。

・サーバーPC
バックアップを手動で実行して、クライアントと同じように
デスクトップやマイドキュメントがコピーされていることを確認します。
その後、ミラー元フォルダの内容がミラー先フォルダにミラーリングされていることを確認します。

※コメントを頂けると大変うれしいです。コメントはお気軽にどうぞ^-^

テーマ : IT関連 ジャンル : コンピュータ

01:04  |  ソフトウェア開発/プログラム  |  Trackback(0)  |  Comment(0)  |  EDIT  |  Top↑

2009.10.01 (Thu)

[TortoiseSVN] 【サーバー】サーバーの基本環境を構築したい - WindowsでSubversionを使いバージョン管理とバックアップを備えた自宅オンラインストレージ環境を構築する

---目次---
■WindowsでSubversionを使いバージョン管理とバックアップを備えた自宅オンラインストレージ環境を構築する
├>【サーバー】サーバーの基本環境を構築したい
●【サーバー・クライアント】バックアップ環境を構築したい
●【サーバー】バージョン管理サーバーを立てたい
●【サーバー】Subversionサーバーにインターネット経由でアクセスしたい
●【サーバー】Subversionのデータをネットワーク上の他の場所に同期したい
●【クライアント】バージョン管理クライアント環境を構築したい
●【クライアント】TortoiseSVN の利用方法を知りたい
●【クライアント】VisualStudioでSubversionを利用したい
●【サーバー・クライアント】Tips・トラブルシューティング
●【サーバー・クライアント】まとめ

※※ご案内※※
この記事に対しご意見やご不明な点がございましたらお気軽にご相談、ご連絡ください。

●【サーバー】サーバーの基本環境を構築したい

後に説明するバックアップやバージョン管理を行う場合は、
この項を参考にしてサーバー設定を完了させてください。

▼サーバー用PCの決定
サーバー用パソコンを決めます。
サーバーは普通のデスクトップパソコンでも、ノートパソコンでも結構です。
デスクトップパソコンがあれば、デスクトップのほうがお勧めです。

後述するバックアップサーバーとバージョン管理サーバーは
同一のパソコンをサーバーにします。

▼サーバーPCは常時電源をつけておく
LANやインターネット(WAN)からのアクセスでサーバーを参照する場合は、
サーバーPCの電源が入っていないとアクセスできません。
よって、このような利用が想定される場合、サーバーPCは常時電源を起動しておき、
スリープ(スタンバイ)や、休止状態になってしまわないよう電源管理設定を行ってください。

▼ローカルIPアドレスを固定する
サーバーPCは、ローカルIPアドレスを固定します。

まずはルーターのIPアドレスを確認してください。
そしてルーターのDHCPでふられるアドレスの範囲を確認します。
次にDHCP範囲外のIPアドレスで、サーバーのアドレスを決定します。

ネットワークのプロトコル(TCP/IP)の設定で、「次のIPアドレスを使う」で、
以下の設定を行います。

例:(ルーターのローカルIPアドレスが 192.168.24.1 の場合)
IPアドレス:192.168.24.201(DHCP範囲外の好きな番号)
サブネットマスク:255.255.255.0
デフォルトゲートウェイ:192.168.24.1(ルーターのIPアドレス)
優先DNSサーバー:192.168.24.1(ルーターにDNSの機能があればルーターのIPアドレス)
代替DNSサーバー:192.168.24.2(ルーターにDNSの機能があれば指定なし)

ネットワークやDHCP、ルーター設定についての詳細はここでは明記しません。
不明な点がある場合はルーターの説明書や他のサイトを参考にしてください。
他のサイトを見てもわからない場合は、この記事のコメントにご質問いただいても結構です。

→参考:
自宅サーバー用LAN接続の設定例(Windows XP)
http://sakaguch.com/SetWinXPnet.html


▼動作テスト
ネットワーク設定を行ったサーバー用PCで、インターネットに接続できるかを確認してください。
正常に接続できない場合は、ネットワーク設定が間違っている可能性があります。

※コメントを頂けると大変うれしいです。コメントはお気軽にどうぞ^-^

テーマ : IT関連 ジャンル : コンピュータ

00:56  |  ソフトウェア開発/プログラム  |  Trackback(0)  |  Comment(0)  |  EDIT  |  Top↑

2009.10.01 (Thu)

[TortoiseSVN] WindowsでSubversionを使いバージョン管理とバックアップを備えた自宅オンラインストレージ環境を構築する

---目次---
■WindowsでSubversionを使いバージョン管理とバックアップを備えた自宅オンラインストレージ環境を構築する
●【サーバー】サーバーの基本環境を構築したい
●【サーバー・クライアント】バックアップ環境を構築したい
●【サーバー】バージョン管理サーバーを立てたい
●【サーバー】Subversionサーバーにインターネット経由でアクセスしたい
●【サーバー】Subversionのデータをネットワーク上の他の場所に同期したい
●【クライアント】バージョン管理クライアント環境を構築したい
●【クライアント】TortoiseSVN の利用方法を知りたい
●【クライアント】VisualStudioでSubversionを利用したい
●【サーバー・クライアント】Tips・トラブルシューティング
●【サーバー・クライアント】まとめ

※※ご案内※※
この記事に対しご意見やご不明な点がございましたらお気軽にご相談、ご連絡ください。

以前「Mercurial(TortoiseHG)を利用した、バージョン管理とバックアップ」を説明しましたが、
今回は Subversion(TortoiseSVN) での構築方法を説明します。

●今なぜ Subversion なのか?

・バージョン管理を備えた自宅オンラインストレージ環境を構築するには最適だと感じた。
・分散型だと、とりあえず全体の最新をかき集めたり、把握することが難しい。
・分散型だと、なんとなく、やりたいことが実現できない、または手間がかかる。
・Mercurialでは、管理する各フォルダにルートとしての管理領域が作られる為、
 各フォルダで消費する容量が実質2倍以上になってしまう。
・VisualSourceSafe(VSS)はVisualStudioではいいけど、それ以外にはなんとも。そして有料。

Git、Mercurial、Bazzarなど、現在は「分散型バージョン管理システム」が
脚光を浴びていますが、個人的にいずれもWindows環境ではまたまだ使い辛いのと、
Mercurialを実際に利用してみたところ「分散型」よりも「集中型」の方が、
結果的にスマートな管理ができると感じた為です。

また、最近はデータの保存場所として「オンラインストレージサービス」が増えてきていますが、
無料のところはどこも速度が遅く、有料のサービスはちょっと高いと感じるし容量制限もある、
だったら、Subversion を使ってオンラインストレージみたいに利用すれば良いじゃないか、
と思い立ったのが Subversion を研究する発端でありました。

自宅でバージョン管理とバックアップを備えたオンラインストレージ環境を構築するメリットは、
なんといっても「ハードディスクの容量が許す限り使え、増設も可」ということです。
そして良質なプロバイダで光回線を引いていればインターネット経由での速度も速いです。
速度やファイルサイズの制限で悩むことはなくなります。
デメリットとしてはサーバー用PCの電気代がかかるぐらいです。


●用語説明

▼オンラインストレージ
インターネット上でファイル保管用のディスクスペースを貸し出すサービス。

→参考:
一番便利な無料「オンラインストレージ」はどれか
http://it.nikkei.co.jp/internet/news/index.aspx?n=MMIT00000022102008


無料オンラインストレージ・無料ファイル転送
http://www.kooss.com/etc/storage.html


Subversion
http://subversion.tigris.org/

集中型バージョン管理システムのなかで有名なものの一つ。

VisualSVN Server
http://www.visualsvn.com/server/

Subversionサーバーを立てるアプリケーション。

TortoiseSVN
http://tortoisesvn.tigris.org/

Subversionを利用するためのクライアントツール。

▼リポジトリ
Subversion で管理される資源の格納場所、および管理データの単位

▼Dynamic DNS (DDNS)
DNSデータベースを動的に更新する技術。接続ごとにDNSレコードを更新することで
一意のホスト名を常時接続環境を利用する自宅のパソコンに対して付与するサービスがDDNSである。


●設定作業においての注意

設定作業においてWindowsユーザーは管理者権限を持ち、ユーザー名は半角英数とします。
そうでないと以下の作業時にうまくいかない可能性があります。


●目次詳細(やること・必要なもの・必要なこと)

利用ケースに応じて紹介します。以下を参考にして、
この後の解説を読んでいただければよいと思います。

他のやり方で同様の事を実現する方法は幾通りも有りますが、
推奨する方法を紹介しておきます。

詳細な説明は以下の各項ごとに後述していきます。
それぞれのリンクから詳細説明を確認することができます。

▼1台のパソコンでバージョン管理のみしたい
TortoiseSVN(バージョン管理クライアントツール) のみでも行えますが、
サーバーを構築しない単体での単純な利用方法は、ここでは解説しません。
一台で管理する場合も、後々の事を考え「サーバーを構築する」方法をお勧めします。

▼【サーバー】サーバーの基本環境を構築したい
・サーバー用PCの決定
・サーバーは常時電源をつけておく
・ローカルIPアドレスを固定する
・動作テスト

▼【サーバー・クライアント】バックアップ環境を構築したい
・バックアップサーバーには物理的にハードディスクを2台準備
・サーバーのみの設定:ミラー環境を構築
・サーバー・クライアントの設定:共有設定
・サーバー・クライアントへのバックアップツールインストール
・サーバー・クライアント共通設定:BunBackupの環境設定
・サーバー・クライアント共通設定:各バックアップの詳細設定
・動作テスト

▼【サーバー】バージョン管理サーバーを立てたい
・VisualSVN Server のインストール
・VisualSVN Server のサーバー設定
・VisualSVN Server のユーザーの作成
・VisualSVN Server のユーザーグループ作成
・VisualSVN Server の共通リポジトリ設定
・VisualSVN Server でリポジトリを作成する
・動作テスト

▼【サーバー】Subversionサーバーにインターネット経由でアクセスしたい
・環境構築の前準備
・インターネット(WAN)からのアクセスを想定し、ルーターの設定を行う
・インターネット(WAN)からのアクセスを想定し、DynamicDNSの設定を行う
・外部IPアドレスの変更を自動検知してDynamicDNSの設定を変更する
・動作テスト

▼【サーバー】Subversionのデータをネットワーク上の他の場所に同期したい
・svnsyncを使った同期の利点と欠点
・同期先サーバーの設定
・同期元サーバーの設定:環境変数
・同期の初期化
・手動同期を行う
・手動同期後のご注意
・コミット時に同期するようにする
・コミット時の同期テスト
・エラーが出て同期できなくなった場合

▼【クライアント】バージョン管理クライアント環境を構築したい
・バージョン管理クライアントツール TortoiseSVN のインストール
・TortoiseSVN を日本語化する
・TortoiseSVN 除外パターンの設定
・TortoiseSVN 管理フォルダ名の変更
・TortoiseSVN アイコンオーバーレイ設定の変更
・マージツール WinMerge のインストール
・TortoiseSVN 設定反映のため再起動
・hostsファイルの設定(LAN上のPCのみ)
・動作テスト
・リポジトリブラウザ利用のご注意

▼【クライアント】TortoiseSVN の利用方法を知りたい
・作業フォルダ(ローカルファイル)のフォルダ構成
・バージョン管理の概念(trunk, branches, tags)
・バージョン管理の注意事項
・アイコンオーバーレイについて
・バージョン管理へ登録(チェックアウト→コミット)
・バージョン管理から取得(チェックアウト)
・バージョン管理へ更新(SVNコミット)
・競合の編集・解決とマージ
・tag や branch の作成方法
・ブランチのマージ
・差分を確認する・リビジョンの比較を行う
・作業フォルダの変更をキャンセルし、最終コミット状態に戻す

▼【クライアント】VisualStudioでSubversionを利用したい
・AnkhSVNのインストール
・AnkhSVNの利用方法、利用目的
・AnkhSVN:設定
・AnkhSVN:ソリューションエクスプローラー
・AnkhSVN:Pending Changes ウインドウ
・AnkhSVNについての詳細は・・・

▼【サーバー・クライアント】Tips・トラブルシューティング
・リポジトリブラウザの情報が更新されない
・削除したファイルの復活方法
・エラーが出てコミットができない
・「Word、Excel、PowerPoint、PDF、一太郎」などのファイルをWinMergeで比較したい
・作業フォルダを作らずにSubversionに登録したい
・ファイル名(ディレクトリ名)の大文字小文字の変更を行いたい
・TorotiseSVNのユーザー情報を消去したい、ユーザーを変更したい
・証明書やユーザーのデータはどこに保持されているのか?
・リポジトリ内でファイル検索を行いたい、管理サイズを知りたい
・削除したファイルの復活方法
・一度登録したファイルを完全に削除したい
・リポジトリ名を変更したい
・リポジトリを他のサーバーに移動する
・VisualSVN Server を再起動するには?
・VisualSVN Server Manager を閉じるとサーバーは停止してしまいますか?

▼【サーバー・クライアント】まとめ
・Visual SourceSafe と Subversion の用語の対応
・さいごに
・参考サイトについて

※コメントを頂けると大変うれしいです。コメントはお気軽にどうぞ^-^

テーマ : IT関連 ジャンル : コンピュータ

00:52  |  ソフトウェア開発/プログラム  |  Trackback(0)  |  Comment(2)  |  EDIT  |  Top↑

2009.08.07 (Fri)

で、連続投稿3件目。FC2ブログのブログ内検索がおかしいからGoogle検索に変えてみた

さて・・・

連続投稿三件目。
何かをしようとすると、うまくいかず、いろいろと「あら」が見えてくる。
そして「あら」が見えるとそれを直さずにはいられなくなる、

そう、そんなスィンです。

なんかこのブログ、ピックアップのリンクおかしくなってましたね。
FC2ブログのブログ内検索機能を使って、ブログ内の記事を引っ張ってくるリンクにしていたのですが、
障害があるようでピックアップからはたどれなくなっていました。
現在はGoogle検索で対応し修復済みです。ご迷惑をおかけいたしました。

で、 記事も増えてきたので、サイト内検索もほしいですよね。
ということで早速、Googleサイト内検索実装~♪

Google - リンク、検索機能を追加
http://www.google.co.jp/intl/ja/searchcode.html


上記サイトの2番目の説明、
「Google フリー検索 (ベーシック版): ウェブ検索 + サイト検索」
のサンプルタグをさらにFC2ブログのこのテンプレート用に調整しました。

これでまた、目的の記事にたどれるようになったと思います。
気付くのが遅くなってごめんなさい。><

以下、調整したタグを参考のために掲載しておきます~

※コメントを頂けると大変うれしいです。コメントはお気軽にどうぞ^-^

テーマ : ホームページ・ブログ制作 ジャンル : コンピュータ

21:44  |  ソフトウェア開発/プログラム  |  Trackback(0)  |  Comment(0)  |  EDIT  |  Top↑

2008.08.22 (Fri)

[WindowsMobile] sinPocketStopWatch 3.20 リリースしました。[ストップウォッチ]

Windows Mobile 5.0/6.0/6.1 以降用のストップウオッチツール、
sinPocketStopWatch Version 3.20 をリリースしました。

ご利用になられている WindowsMobile端末で動作を確認できましたら、
この記事のコメントでご報告いただけますと幸いです。
また、ご要望やご感想などもお聞かせ頂けますと光栄です。

--------------------------------------------------------------------------
Download sinPocketStopWatch 3.20
--------------------------------------------------------------------------
Download sinPocketStopWatch 3.20 - Free (213KB)

HelpFile For Japanese
HelpFile For English
--Translation into English by Coke_Station

--------------------------------------------------------------------------
Screenshots
--------------------------------------------------------------------------
縦画面
normal.jpg

横画面
landscape.jpg

--------------------------------------------------------------------------
バージョンアップの内容
--------------------------------------------------------------------------
横画面時にレイアウトを変更するように対応。
Windows Mobile 6.1 の 480 x 800 (240 x 400) 画面サイズに対応。横画面も対応。
オプション画面で、横画面表示にしたときにスクロールバーが表示されなかった障害を修正。
英語メッセージの一部を修正。

--------------------------------------------------------------------------
概要
--------------------------------------------------------------------------
「スィン ポケットストップウォッチ」は、
Windows Mobile 5.0 以降のOS上で動作する、ストップウォッチです。

本ソフトウェアはフリーウェアです。無料でご利用いただけます。

--------------------------------------------------------------------------
特徴
--------------------------------------------------------------------------
いつでもどこでもお手軽に利用できるストップウォッチです。
ストップウォッチの表示モードは4種類サポートしています。

▼通常モード
時、分、秒を表示します。サスペンドしていても正しい時間を計測できます。
 のんびり計測したいときはこちらをご利用ください。

▼高精度モード
時、分、秒、に加え 100分の1秒単位で表示します。
サスペンドモードに入らないよう制御されます。

▼Decimal Minuteモード(工業用デシマル計測)
工業用デシマル計測(10進法計測)です。計測精度は1/1000分です。(1000で1分)
サスペンドモードに入らないよう制御されます。

▼Decimal Hourモード(工業用デシマル計測)
工業用デシマル計測(10進法計測)です。計測精度は1/100000時間です。(100000で1時間)
サスペンドモードに入らないよう制御されます。

ログ画面では、計測時間のログリストと、分析結果が表示されます。

・計測アクション時(ボタン押下時)の時刻、ラップタイム、トータル時間の明細ログ
・ログから分析された、平均ラップタイム、最高ラップタイム、最低ラップタイム、トータル時間の表示

オプション画面では、起動時のモード変更、サウンドの設定などが行えます。
計測中の誤った操作を防止するためにボタン操作のロックが行えます。

--------------------------------------------------------------------------
動作すると思われる機種の一覧(動作確認ができているものではありません)
--------------------------------------------------------------------------
現在、Windows Mobile Standard の端末ではエラーが表示され実行できないことが、
確認されています。以下の一覧の中で Standard がインストールされているものは動作いたしません。
Standard 対応をするかどうかは、しばらくお時間を頂いてアナウンスさせていただきます。
(Standard端末でのリクエストが多い場合は、対応する確率も上がります。。。)


▼WILLCOM
ウィルコム WILLCOM 03 (WS020SH)
ウィルコム Advanced W-ZERO3[es] (WS011SH)
ウィルコム W-ZERO3[es] (WS007SH)
ウィルコム W-ZERO3 (WS002SH, WS003SH, WS004SH)

▼EMOBILE
イーモバイル EMONSTER lite(S12HT)
イーモバイル EMONSTER(S11HT)
イーモバイル EM・ONE (S01SH)

▼NTT DoCoMo
NTTドコモ HT1100
NTTドコモ F1100
NTTドコモ hTc Z

▼SoftBank
ソフトバンク X03HT
ソフトバンク X02HT
ソフトバンク X01T
ソフトバンク X01HT

▼OTHERS
DELL Axim X51v
DELL Axim X51
HP iPAQ hx2790 Pocket PC
HP iPAQ hx2490 Pocket PC
HP iPAQ hx2190 Pocket PC
HP iPAQ rx1950 Pocket PC

--------------------------------------------------------------------------
Windows Mobile 5.0 では .NET Compact Framework 2.0 SP1 が必要です
--------------------------------------------------------------------------
.NET Compact Framework 2.0/2.0 SP1は以下のマイクロソフトのページで配布しています。
.NET Compact Framework 2.0 Service Pack 1 再頒布可能パッケージ

※コメントを頂けると大変うれしいです。コメントはお気軽にどうぞ^-^

テーマ : フリーソフト ジャンル : コンピュータ

00:32  |  ソフトウェア開発/プログラム  |  Trackback(1)  |  Comment(23)  |  EDIT  |  Top↑

2008.08.21 (Thu)

[WindowsMobile] もうすぐ sinPocketStopWatch 3.20 リリースします

お知らせというか告知というか。
もうすぐ sinPocketStopWatch 3.20 リリース致します。

sinPocketStopWatchの利用者より、ご要望をメールでいただきまして、

・EMONE(S01SH)やWILLCOM 03(WS020SH) などの解像度 480x800 表示対応
・横画面表示対応

を行いました。

ご要望を送ってくれた方に協力をお願いしまして、解像度 480x800 の EMONE において、
縦画面、横画面の表示確認を行っていただきました。
レポートのメールにはスクリーンショットまでついており、大変参考になりました。
ご協力ありがとうございました。

あと、横画面表示時における計測表示部分のセンタリング対応と、
WindowsMobile 5.0 の W-ZERO3[es](WS007SH) で表示確認を行ったらリリースする予定です。

英語のドキュメントも Coke さんに調整していただきましたので、
最新の英語ドキュメントもつけて、また海外の WindowsMobile ソフト紹介サイトにも連絡する予定です。
結構、海外の利用者も多いみたいで、嬉しいことです。

●やること残件
調整して、
実機テストして、
記事のためにスクリーンショットとって、
リリース記事書いて、
窓の杜にも連絡して、
Vectorも更新して
海外サイトに告知して

・・・って、
大変だなぁ。。。気力が継続するかどうか。(苦笑

※コメントを頂けると大変うれしいです。コメントはお気軽にどうぞ^-^

テーマ : フリーソフト ジャンル : コンピュータ

12:52  |  ソフトウェア開発/プログラム  |  Trackback(0)  |  Comment(0)  |  EDIT  |  Top↑

2008.07.17 (Thu)

[コーディングスタイル] 私が定数や判定条件値を比較演算子の左辺(左側)に書く理由

※この記事は、タイトルの方法を「絶対すべき」と強く推奨するものではありません。
※この記事で説明するコーディングスタイルは、一般的なソースコード記述スタイルに反しており、推奨されておらず、そして多くの人の批判を浴びるものです。

結論から言いますと、「判定条件の値が先にわかる」ことです。
実際、条件式は簡潔で見やすいのがよいのですが、必然的に長くなってしまうこともあります。
判定条件が右辺にある場合は、左辺が長い際に、「で、判定条件の値は何なのよ」となるからです。

比較の際に「定数を左辺に書く」という方法は、比較演算子(==)と代入演算子(=)をうっかり間違えた際、
コンパイル時に発見できるようにということで説明されることが多いですが、昨今のコンパイラは、
このような記述は警告を発しますし、左辺が定数ではなく変数であればまったく意味が無いことです。
なのでこのような理由で私がこのコーディングスタイルを採用してるわけではありません。

---他サイト引用--------------
例えば傘をさす、という場合に、「さす、傘を」と考えますか、それとも「傘をさす」と考えますか?何を馬鹿な質問をしているのだ、「傘をさす」に決まっているじゃないか、と言われそうですが、これは重要なことです。普通、ものごとを考える順序としては、何かに対して、何かする、という方向であることが圧倒的に多いわけです。
左に変数を書いて、「もし fp が NULL なら」と考える方が自然です。「もし NULL が fp なら」と考える人は滅多にいないでしょう。
---他サイト引用おわり--------

という説明がありました。日本ではそうかもしれませんが、英語のような動詞が先に来る言語を使う人たちは違うかもしれません。 「どういう条件で、何を評価するのか」という流れのほうが自分にはわかりやすいと感じるのです。
自分は「もし NULL なら。fp が。」と頭の中で考えています。

---他サイト引用--------------
・定数を左辺に書くなんて今時、林晴比古と林晴比古信者しかやらない
・一般的な書き方をお薦めしないとか、一般的でない書き方を広めようとしないでくれよ。
・定数のときだけ左に書くほうが不自然だし定数左派が言うようなメリットなんて勘違いでしかないというのに押しつけがましく奨めてくるから鬱陶しい。
・定数を左が禁止とまでは言わないが右に比べてメリットがあるとはやはり思えないです。
---他サイト引用おわり--------

私は誰かの信者でもありませんし、無理に薦めたりもしません。
不自然に見えるかもしれませんが、自分が感じているメリットは、前述したとおりです。

こういう話は宗教的な論争になってきますので、もしこの件について論議がしたい場合は、仲の良い友人以外にはしないほうが良いでしょう。

ちなみに自分は、上記とは矛盾していますが for 文の条件式においては、一般的な


の順序で書きます。
コーディングスタイルは、「可読性・保守性をあげるためのひとつの手段」にしか過ぎません。
手段と目的を取り違えないように。

●一般的なコーディングスタイル

●判定条件を左辺に記述するスタイル

▼参考サイト
Cプログラミングの秘訣
2ちゃんねる 『不正なbreakです』
初級C言語Q&A(6)
C言語の悪習 (Weblog on mebius.tokaichiba.jp)
コーディングスタイルにこだわるスレ
コーディングスタイルスレ - cppll BBS

※コメントを頂けると大変うれしいです。コメントはお気軽にどうぞ^-^

テーマ : プログラミング ジャンル : コンピュータ

22:02  |  ソフトウェア開発/プログラム  |  Trackback(0)  |  Comment(6)  |  EDIT  |  Top↑

2008.07.12 (Sat)

[英語・英会話] ブログで勉強できるような仕組みを考えてみるテスト

いろいろ収集した英文をブログに掲載していって勉強に役立てよう。
そう考えて、一つ前の記事で早速試みてみた。

日本語から英語を連想するときに英語を読んでしまわないように、
色を薄くしてみたが、なんとなく許せない。
もっとこう、勉強しやすくできないものか。

早速考えてみる。およそ以下のような機能が欲しい。

はじめに英語を表示しておき日本語を後から表示する。
はじめに日本語を表示しておき英語は後から表示する。
補足説明の表示、非表示。
各問題ごとの表示切り替え、および一括切り替え。
英語は実際に入力して間違い確認がしたい。
英語の発音が聞きたい。

そして、技術的に実現したかったことはこんなところ。

ASP、JSP、PHP、CGI、Ajaxなどのサーバーサイド技術に頼らない。
JavaScriptで作成する場合、名前空間のようなものを実装したい。
テキスト入力欄と英文の比較チェックがしたい。
入力欄はrowsを指定できるようにしたい。
SEO対策のため、テキスト部分はHTMLに直に記述したい。

そして作ってみた。以下のような感じ。

▼サンプル

1.
これはペンです。
This is a pen.
日本で教える英語ですね。

2.
久しぶり!
Long time no see!
砕けた言い方です。

なかなかいい感じに出来上がったかな。

英語の発音を聴く機能はサポートできなかったが、MP3ファイルを準備するか、
テキストを post か get で送信して合成音声を喋らせられるWebサイトがあれば、
Yahooのサイトのように音声も聞かせられそう。

ソースを掲載しておきます。
次からこんな感じで英文を掲載してみます。であであ^-^

▼JavaScript部

▼HTML部

※コメントを頂けると大変うれしいです。コメントはお気軽にどうぞ^-^

テーマ : プログラミング ジャンル : コンピュータ

02:37  |  ソフトウェア開発/プログラム  |  Trackback(0)  |  Comment(0)  |  EDIT  |  Top↑

2008.07.06 (Sun)

[C#] パフォーマンス測定クラスを拡張しました

C# 空文字の定義は String.Empty を使うべき?それとも "" ですか?」にパフォーマンス測定用のクラスを紹介していますが、それをさらにカッコよく?汎用的に拡張したので公開しておきます。

・単純に前回の計測時からの差分を計測するタイプ
・計測の開始位置と終了位置を指定して計測するタイプ
・(コールバック関数の計測をするタイプ)

があります。

一連の処理の中でボトルネックを探す際に利用すると効果的ですよん^-^

※コメントを頂けると大変うれしいです。コメントはお気軽にどうぞ^-^

テーマ : プログラミング ジャンル : コンピュータ

04:58  |  ソフトウェア開発/プログラム  |  Trackback(0)  |  Comment(0)  |  EDIT  |  Top↑

2008.07.05 (Sat)

[C#] 空文字の定義は String.Empty を使うべき?それとも "" ですか?

.NET プログラミングを始めたころから、空文字定義には "" を使わず、String.Empty を使うことと習ってきました。でも、もう、ぶっちゃけ、"" でいいと思うよ。うん、かなり。

そういうのは論より証拠。自分でパフォーマンステストしてみればいいのです。ということでやってみたのです。あまり深いことは書かないので、深いことを知りたい場合は、記事末尾の参考サイトをご覧ください。

今回はパフォーマンスの計測に .NET Framework 2.0 からサポートされた Stopwatch クラスを利用しています。今までは精度の高い計測を行いたい場合は、WindowsAPI の QueryPerformanceCounter や QueryPerformanceFrequency を利用しなければいけなかったのですが、それらを簡単に利用できるようになったようです。

以下のコードでは、 String.Empty と "" を使った文字列連結のパフォーマンステストをしています。すいません、ただそれだけです。(汗)

でも、パフォーマンステスト用のクラスを汎用的に使えるようにと工夫をしていたら、コード量がかなり多くなってしまいました。

パフォーマンス確認用クラスでは、それぞれのテスト用の関数をコールバックで呼び出して計測しています。手前味噌のストップウォッチソフトみたいに、ラップタイム(というか処理の単位時間)とトータルタイムを計測できるようにしてあります。

BeginCheckとEndCheckを利用すれば、メソッドのループチェックだけでなく、処理フローの中でどこが遅いのかというパフォーマンステストにも使えるでしょう。というかそういう意図で作ってます。

今日はお酒が入ってるので軽いノリですが、このあたりでさようなら^-^

そろそろ、WindowsCEじゃなくて普通のWindows用の便利なストップウォッチでも作ってリリースしてみようかしら・・・


▼参考サイト
C#系
パフォーマンスを気にするなら、String.Empty より "" と書いた方が良い。
【C#】string.Emptyと "" の違い[その2](空文字列)|νNusservollabisson - All for C#
文字列(string.Empty)の参照比較の挙動が.NET Fx1.1 と 2.0 で異なる
「String.Empty ≠ ""」文字列インターンプールの問題
String.Empty と "" の違いはなんですか?? - Yahoo!知恵袋

※コメントを頂けると大変うれしいです。コメントはお気軽にどうぞ^-^

テーマ : プログラミング ジャンル : コンピュータ

00:25  |  ソフトウェア開発/プログラム  |  Trackback(0)  |  Comment(0)  |  EDIT  |  Top↑
 | BLOGTOP |  NEXT