merge trunk ← branch

trunkで行う

merge from...を選択

初回はtrunk branchの設定をする

trunkは1つ
branchは複数のディレクトリ構造とする
branch
/ver.1
/ver.2
/ver.3
上記の場合、以下の様に設定

設定完了したら再度 merge from...を選択
branchを選ぶと以下のディレクトリ一覧が出るので選択

後は流れ

subclipse マージ

とりあえず、branch/ver xx を作成する

dir1フォルダの構造を維持したまま編集したい対象をブランチにコピー
「チーム」「ブランチ/タグ」

コピー先のURLに気をつける

同じように編集したいファイルをbranch/ver xxに集める

で、branch側でファイルを編集

■フォルダごとマージ
ファイルを新規作成した場合など
フォルダを選択した状態で「マージ」
リビジョン指定でやるとeclipseが強制終了するときがある
HEADリビジョンでやる
■ファイル個別にマージ
反映させたいほうのファイルを選択した状態で「マージ」

test2.txtに vp 2.1の修正を反映させる

マージ元のファイルを選択

対象ファイルの修正リビジョンのみ表示される

マージ完了

次からはマージが完了したリビジョンは表示されなくなる

test2.txtのヒストリーからマージしたリビジョンを取り消せば
再びマージ可能リストに表示されるようになる
※コメントはマージであることとリビジョンを明記する

例外

LogicException (extends Exception)
├ BadFunctionCallException
│ └ BadMethodCallException
├ DomainException
├ InvalidArgumentException
├ LengthException
└ OutOfRangeException

RuntimeException (extends Exception)
├ OutOfBoundsException
├ OverflowException
├ RangeException
├ UnderflowException
└ UnexpectedValueException

LogicException:プログラムのロジック内でのエラーを表す例外です。
この例外が出た場合は、自分が書いたコードを修正すべきです。
RuntimeException:実行時にだけ発生するようなエラーの際にスローされます。

文字関連

■外部入力がutf8以外の場合の処理
文字コードを判別
utf8以外なら
sjis⇒内部文字列⇒utf8の順に変換

use Encode::Guess qw/euc-jp shift-jis/;
$enc=guess_encoding($shop_name);
if ($enc->name ne 'utf8') {
save_debugfile("文字コード:".$enc->name." から utf8 に変換します\n");
$shop_name = decode($enc->name, $shop_name);
$shop_name = encode('UTF-8', $shop_name);
}

■値をコードポイントで表示

my @items = unpack "H*", $str;
foreach my $item (@items) {
print $item, " ";
}

環境変数確認

print "version: perl".$]."\n"; # バージョン確認
print $ENV{NLS_LANG}; #
foreach $key (keys %ENV) {
print "$key : $ENV{$key}
\n";
}