2010年12月27日月曜日

[Reading] 12月読書リスト

ゴールデンスランバー(新潮文庫)伊坂幸太郎
サクサク読めた。これまでの伊坂作品以上に構成が練りに練られてる感がある。その感覚が強すぎて納得感が薄いと感じてしまった。エンターテインメントとしてのポップさを意図的に目指しているのだろうけど、もう少し重厚さが欲しいと思いました。

2010年12月26日日曜日

[Maintenance] 改行を含むログの解析手法

デバッグログによくあるようにログが複数行に跨がって出力されている場合、単純にエラーコードでgrepが行えないわけです。

そんなときは、如何に複数行のログを1行として扱うか検討する必要があります。

ログの出力はシステムごとにポリシーが違うため、統一的なコマンドは存在しないと思いますが、コマンド作成の道筋は同様だと考えています。

方針:
1行と見なす開始点の文字列をパターン化すること、そして行末と見なす文字列をパターン化することです。

以下のようなログについて考えてみます。

2010-12-26 23:00:14 [3300] CRIT (GetData.php 30) DB error
SQL= Select test_id from Table_name Where test_id = ?
array {
0=>1000
}
2010-12-26 23:00:14 [3300] ~~~~~~

この場合、日付部(2010~~~)が開始点となり、SQL文の末尾の配列の閉じ括弧が行末です。
したがって、閉じ括弧が登場するまでが1行ですので、途中の改行は不要となります。

そこで、調査時のコマンドは以下のようになります。

Perlが使える環境ならコレ

perl -pe 's/[^}]\n//' awk_test.log | grep 'CRIT'


perl -オプション 'スクリプト' 入力ファイル
  文字列の検索: perl -ne 'print if (m/検索文字列/[i])' 入力ファイル
  文字の置換:  perl -pe 'tr/文字列1/文字列2/' 入力ファイル
  文字列の置換: perl -pe 's/検索文字列/置換文字列/[ig]' 入力ファイル

sedを使うならコレ

sed ':loop; N; $!b loop; ;s/\n/\x20/g' awk_test.log | grep 'CRIT'

ただし、回りくどい上に、1度全体行を読み込んでからの処理となるため、それなりの容量があるテキストファイルを扱うのは難しいと思われる。また、環境によっては使用できない可能性もある。

awkは全体の改行コードを変換することはできるが、部分的にはできないようです。
例えば、以下の置換はうまくいかない。どうしても改行コードが基点になるようです。

awk '{sub(/[^}]\x0A/,"\x20"); print;}' awk_test.log

全体の改行をスペースに変換(というか出力時の区切りを変更するだけ)

awk -F\n -v ORS='' '{print}' filename

# 改行
$kaigyou = '\x0A';

# 半角スペース
$space = '\x20';

# 全角スペース
$Zspace = '(?:\xA1\xA1)'; # EUC-JP
$Zspace_sjis = '(?:\x81\x40)'; # SJIS

Mac のファイルは改行コードが 0x0D (8進で 015) だが、これを UNIX の改行コード 0x0A (8進で 012) に変換する


以上です。

2010年7月16日金曜日

[Reading] 6月読書リスト

正規表現クックブック Jan Goyvaerts、Steven Levithan、 長尾 高弘
仕事柄正規表現をもっと効果的に使いたいと常々感じていますが、ネット上の情報は使用言語ごとの方言を意識していない(恐らくできない)汎用的なものが多く、参照しても結局トライ&エラーになりがちでした。本書は、正規表現を使用したチェック処理やデータ整形などのテクニックを7種類の言語(Perl、PCRE、.NET、Java、JavaScript、Python、Ruby)ごとの実現方法を明示的に記載しているため、正規表現の使い分けを意識することができ、実装にあたりとても重宝しています。これからも傍らで活躍してくれる一冊です。


Head First PHP & MySQL —頭とからだで覚えるWebアプリケーション開発の基本 Lynn Beighley (著), Michael Morrison (著), 佐藤 嘉一 (翻訳)
前からすごく興味があったこのシリーズ。遂に手を出してしまいました。これまで読んだプログラムの本(PHP以外も含めて)と比べて、とにかく語り口がおもしろくて堅苦しくないのが良いです。逆にいうとがっちりとした構文を学びたいという方には向いていない(本書の冒頭で著者も書いてますが)のではないかと思います。構文なんて置いといてとにかく手を動かして学びたいという私に最適な本だと思います♪


プレゼンテーション Zen Garr Reynolds、ガー・レイノルズ、 熊谷 小百合
初めてプレゼンテーション関連の書籍を手に取りましたが、この本を読んで、私自身、なぜ会社のプレゼンフォーマットが大嫌いなのか分かりました(笑)それだけでもホントに価値のある本でしたし、自分の感覚を信じることができるようになりましたし、いわゆるビジネスフォーマットはこうあるべきという型にはまった考え方を見事に外してくれました。良書です。


虐殺器官 (ハヤカワ文庫JA) 伊藤計劃
宮部みゆきと伊坂幸太郎の推薦文にのせられて購入しました。導入から発想が飛び抜けていると感じさせてくれます。そして、SFの体裁ながら、現代の世界やそこに生きる人々の問題、ジレンマなどを浮き彫りにする一種ノンフィクションを読んでいるかのような卓越した物言いに文字どおり舌を巻きました。作者が他界されていることをあとで知りショックでした。

2010年7月4日日曜日

[Reading] 5月読書リスト

Webを支える技術 -HTTP、URI、HTML、そしてREST (WEB+DB PRESS plus) 山本 陽平
著者の並々ならぬ意欲を感じる本。HTTPの基本からRESTfulな設計のスマートさまで、とても勉強になりました。


WEB+DB PRESS Vol.56 WEB+DB PRESS編集部
新人さん向け特集は置いておいて、iPhone向けサービスについてのはてな関連の特集と伊藤直也さんの連載がいつも通り秀逸でした。


2010年6月3日木曜日

[Web] Cookieテスト

Cookieの1レコードに保持できるデータ量はほとんどの環境で4096byteだと思いますが、実際にマルチバイト文字である日本語を何文字登録できるか検証してみました。


//mb_internal_encoding("Shift-JIS");
echo mb_internal_encoding()."

";

echo "SetCookieのテストを実施します

";
$keyword = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa=ああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああ";
setcookie("KeywordConfig", $keyword, time() + 1000000);
echo urldecode($keyword);


文字エンコード形式による登録可能文字数の違い。
SJISでの最大byte 4082byte → 664文字


以上です。

2010年5月8日土曜日

[Reading] 4月読書リスト

4月に読んだ書籍

・はじめてのGTD ストレスフリーの整理術 (単行本(ソフトカバー)294ページ) (二見書房) デビッド・アレン (著), 田口 元 (監修) (2008/12/24)
GTDの実践。タスク整理に特化せず気になることすべてを書き出し、そのすべてに次の行動を定義するという点が参考になった。少しずつ実践しているが、これまでのタスク管理、時間管理術よりしっくりくると感じている。モバイル版Evernoteを使用することで、より効率的な管理ができるのではないか。

・コンサルタントの「質問力」 (PHPビジネス新書) (新書 208ページ) 野口 吉昭 (著)
コンサルタントに求められる能力の中で質問力の重要さにフォーカスしている内容。質問力がある人とはどのような思考ができる人であるか、モデルケースを挙げている点が参考になった。

2010年3月15日月曜日

[PHP] 標準関数まとめ

PHP関数について、使用例をまとめていきます。

parse_url() — URL を解釈し、その構成要素を返す
$geturl = $_GET['url'];
$aParse = parse_url($geturl);

パース内容は以下の通り
Array
(
[scheme] => http
[host] => hostname
[user] => username
[pass] => password
[path] => /path
[query] => arg=value
[fragment] => anchor
)

getenv() — 環境変数の値を取得する
$env = getenv('HTTP_REFERER');
$ip = getenv('REMOTE_ADDR');

※スーパーグローバル変数を使用する場合と等価
$ip = $_SERVER['REMOTE_ADDR'];

strpos() — 文字列が最初に現れる場所を見つける
$mystring = 'abc';
$findme = 'a';
$pos = strpos($mystring, $findme); // 0

ereg_replace() — 正規表現にマッチした文字列を置き換える
$string_from = "original_string"; // 変更対象の文字列
$string_before = "~"; // 変更する箇所
$string_after = "~" // 変更する内容

$string_to = ereg_replace($string_before, $string_after, $string_from);

preg_replace() — はPerlの正規表現が使用できる。

配列内に要素があることを確認
in_array()

型チェック(整数値であるかを確認)
in_numeric()


以上です。


[MySQL] CSVやTSVファイルを対象としたデータ入出力方法

入力
文字の囲み文字が「"」のときの使用例。
囲み文字が必要ないときはENCLOSED BY '"'を外す。
[構文]
LOAD DATA INFILE "ファイル名" INTO TABLE テーブル名
FIELDS TERMINATED BY ',区切り文字' ENCLOSED BY '"';

[使用例]
LOAD DATA INFILE "c:/data.csv" INTO TABLE data FIELDS TERMINATED BY ',' ENCLOSED BY '"';

TSVの場合
load data infile "c:/data.tsv" into table data fields terminated by '¥t';

出力
[構文]
SELECT * FROM テーブル名 INTO OUTFILE "ファイル名" FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '囲み文字の指定';

使用例
select * from data into outfile "c:/out/data.tsv" fields terminated by '¥t';

以上です。

2010年3月14日日曜日

[Env] CentOSのセットアップ

MacのVMWare FusionにCentOSをインストールしました。

環境セットアップ情報を記録しておきます。

1.Apache&PHP
$ yum install -y php-mbstring

yumではインストールするパッケージに依存するパッケージもあわせてインストールされるため、php-mbstringを使用する際に必須となるApacheも自動的にインストールされる。






2.MySQL

$ yum -y install mysql-server // MySQLのサーバ
$ yum -y install mysql // MySQLのクライアント
$ yum -y install mysql-libs // MySQL関連のライブラリ
$ yum -y install mysql-devel // プログラムからMySQLへの接続に使用する







//状態を確認
$ service mysqld status
//起動
$ service mysqld start
//停止
$ service mysqld stop


以上です。

[Env] Sennaのインストール

とある案件でSennaを採用することになった。
Sennnaとは組み込み型全文検索エンジンです
Sennaプロジェクト

SennaをMySQLにバインディングするため、Tritonnをインストールする。
Tritonnプロジェクト

インストール環境
OS: CentOS release 5.4 (Final)[VM-Ware Fusion]


ビルドの大まかな流れ

1. MeCabをビルド
2. Sennaをビルド
3. Tritonnをビルド

Tritonnをビルドするためには、事前にSennaのライブラリ(libsenna)がビルドされている必要があります。またSennaをビルドするためには、MeCabのライブラリと辞書が事前にビルドされている必要があります(非MeCabなビルド方法は後述)。そこで上記のような手順でビルドを行います。


MeCabプロジェクト
gccをインストール
# yum install glibc glibc.i386
# yum install gcc*

y/Nでyを入力すること

g++をインストール
# yum install gcc-c++
少しイレギュラーなので注意

MeCabをビルド
# ./configure --prefix=/usr --with-charset=utf8
# make
# make install


# mecab-ipadic-2.7.0-XXXX
# ./configure --prefix=/usr --with-charset=utf8
# make
# make install

Sennaをビルド
# ./configure --prefix=/usr
# make
# make install


Tritonnをビルド
# ./configure --with-senna --with-mecab
error発生
configure: error: No curses/termcap library found
ライブラリが足りないらしい。下記コマンドでインストール。
# yum install ncurses-devel
# make
# sudo make install

ここも参考になる


最後の# make installが通らない。
y.tab.cがないとおこられる。

どうしたものか、調査中
(2010/3/14)

2010年3月10日水曜日

[PHP] キャッシュ手法まとめ

PHPでのキャッシュ手法をまとめる

1.中間コードキャッシュ
・APC
・eAccelerator
・XCache
・Zend Optimizer

APCが最も安定している
インストールコマンド
sudo aptitude install php-apc
sudo /etc/init.d/apache restart

管理画面apc.phpの導入
cd /usr/share/doc/php-apc/
sudo gzip -d apc.php.gz -c > /var/www/html/apc.php

GDのインストール
sudo aptitude install php5-gd
sudo /etc/init.d/apache restart

apache-benchコマンド
ab -n 500 -c 5 http://localhost/index.php
同時接続数5で500リクエストを送信


2.データキャッシュ
・ディスクキャッシュ
Cache_Liteの使用
インストール
sudo aptitude install php-pear
sudo pear install -Z Cache_Lite

・オンメモリキャッシュ

3.ページキャッシュ

2010年2月16日火曜日

[Reading] 2月読書リスト

2月に読んだ書籍
・ フリー~〈無料〉からお金を生みだす新戦略 クリス・アンダーソン、小林弘人、 高橋則明 (ハードカバー - 2009/11/21)

・日経新聞の数字がわかる本 「景気指標」から経済が見える 小宮 一慶 (単行本 - 2009/8/6)
経済に関する数字を意識できるようになったことで、日経新聞を読む際だけでなく、ニュースや雑誌で使用される用語につながりを見いだすことができるようになった。大変参考になった。

2010年2月15日月曜日

[MySQL] テーブルを結合するSQL

結合で使用するテーブル名には必ずエイリアスを貼りましょう。
SQL全体がコンパクトになり、見通しがよくなります。
構文:table_name AS alias_name

xoops_picoカテゴリテーブルより、特定のデータを抽出しカテゴリID順で並べ表示する
$sql = "SELECT cat_id, cat_permission_id, cat_title, cat_created_time, cat_extra_fields FROM xoops_gencontents_categories ORDER BY cat_id";

xoops_picoコンテンツテーブルより、特定のデータを抽出しコンテンツID順で並べ表示する
$sql = "SELECT content_id, permission_id, subject, created_time, extra_fields FROM xoops_gencontents_contents ORDER BY content_id";

コンテンツテーブルとカテゴリテーブルを内部結合
$sql = "SELECT con.cat_id AS cat_id1, cat.cat_id AS cont_id2 FROM xoops_gencontents_contents AS con LEFT JOIN xoops_gencontents_categories AS cat ON con.cat_id = cat.cat_id";

コンテンツテーブルとカテゴリテーブルを内部結合
$sql = "SELECT con.cat_title AS category_name, con.subject AS content_name, con.created_time FROM xoops_gencontents_contents AS con LEFT JOIN xoops_gencontents_categories AS cat ON con.cat_id = cat.cat_id"

コンテンツ、カテゴリテーブルとユーザーテーブルの3テーブルを結合
$sql = "SELECT cat.cat_title AS category_name, con.subject AS content_name, con.created_time, us.uname AS poster_user FROM xoops_users AS us INNER JOIN (xoops_gencontents_contents AS con INNER JOIN xoops_gencontents_categories AS cat ON con.cat_id = cat.cat_id) ON us.uid = con.poster_id";


以上です。

2010年2月8日月曜日

[Env] VMWare Serverを使用していて注意すべきこと

VMWare Serverは無料で使用できるため、重宝するが、
商用のVMWare Workstationと比較し、注意するべき点があります。

VMWare Serverはスナップショットを1つのみ許容します。
つまり、2つ目のスナップショットを取得した時点で、1つ目のスナップショットは破棄されるので、
うっかり必要なバージョンを消してしまわないよう注意が必要です。

VMWare Workstationではそのような制約はありません。
スナップショットマネージャーでいくつでも管理できます。


以上です。

2010年2月1日月曜日

[PHP] PEARのインストール

コマンドは以下のとおり

$go-pear.bat

Are you installing a system-wide PEAR or a local copy?
(system|local) [system] :

enter


以上です。

[Reading] 1月読書リスト

ソフトウェアアーキテクトが知るべき97のこと(Richard Monson-Haefel、鈴木 雄介、 長尾 高弘 2009/10/5)
第一線で活躍するソフトウェアアーキテクトたちが自らの経験よりアーキテクトが心すべきことを多くの観点から語る。業務に照らし合わせて読むことで大変参考になった。また、これからの設計業務においても、選択肢の視野を広げる良い機会となった。

SEが28歳までに身につける28の力 【第二版】 (技評SE選書) 中尾 真二、今井 孝、石川説明堂、 伊藤 直也 (単行本(ソフトカバー) - 2009/11/20)

WEB+DB PRESS Vol.54 WEB+DB PRESS編集部 (大型本 - 2009/12/23)
Google Waveの特集が興味深かった。

Web creators ( ウェブクリエイターズ ) 2010年 02月号 [雑誌] (雑誌 - 2009/12/26)

2010年1月31日日曜日

[MySQL] ストレージエンジンを確認する

MySQLにて特定のテーブルが使用するストレージエンジンを確認したい場合は、SHOW TABLE STATUS コマンドを使用します。

使用例:
mysql> SHOW TABLE STATUS LIKE 'node' \G
*************************** 1. row ***************************
Name: node
Engine: MyISAM
Version: 10
Row_format: Dynamic
Rows: 3
Avg_row_length: 66
Data_length: 200
Max_data_length: 281474976710655
Index_length: 19456
Data_free: 0
Auto_increment: 4
Create_time: 2010-01-23 22:15:46
Update_time: 2010-01-30 07:22:26
Check_time: NULL
Collation: utf8_general_ci
Checksum: NULL
Create_options:
Comment:
1 row in set (0.00 sec)


以上です。

2010年1月27日水曜日

Oracleへの接続

管理者権限で接続します。

$ sqlplus '/ as sysdba'

>show databases

select * From v$instance;

>show tables

select * From tab;

>descコマンド(テーブル定義の表示)

desc テーブル名

http://otn.oracle.co.jp/document/products/oracle10g/index.html

2010年1月20日水曜日

[Drupal][MySQL]Drupalインストール

MySQLにDrupal用DB、ユーザ、パスワードを用意する

#DBを作成
create database drupal_db;

#ユーザを作成
-----------------------------------------------------------------------------------
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ON drupal_db.* TO dmaster@'localhost' IDENTIFIED BY 'drupalxxxx';

FLUSH PRIVILEGES;
-----------------------------------------------------------------------------------

-----------------------------------------------------------------
GRANT ALL ON drupal_db.* TO dmaster IDENTIFIED BY 'drupalxxxx';

FLUSH PRIVILEGES;
-----------------------------------------------------------------


Windowsで詰まったこと
・PHPのGDライブラリがないか古いというメッセージが出た
⇒php.iniでGDライブラリを使用する設定を行う
php_gd2.dllをダウンロードしてきて、PHP/extに配置

設定追記
extension=php_gd2.dll


cckモジュールをインストールしたところ、画面が真っ白になり、管理画面へアクセスできなくなった。

対応としてはDBでモジュールを無効とするフラグを設定することで回復する
http://www.5thbear.jp/node/56

[MySQL] インストールコマンド

# MacOSXではMacportを使用します
$sudo port install mysql5 +server
$sudo -u mysql mysql_install_db5
Password:
Installing MySQL system tables...
OK
Filling help tables...
OK

To start mysqld at boot time you have to copy
support-files/mysql.server to the right place for your system

PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
To do so, start the server, then issue the following commands:

/opt/local/lib/mysql5/bin/mysqladmin -u root password 'new-password'
/opt/local/lib/mysql5/bin/mysqladmin -u root -h host_name password 'new-password'

Alternatively you can run:
/opt/local/lib/mysql5/bin/mysql_secure_installation

which will also give you the option of removing the test
databases and anonymous user created by default. This is
strongly recommended for production servers.

See the manual for more instructions.

You can start the MySQL daemon with:
cd /opt/local ; /opt/local/lib/mysql5/bin/mysqld_safe &

You can test the MySQL daemon with mysql-test-run.pl
cd /opt/local/mysql-test ; perl mysql-test-run.pl

Please report any problems with the /opt/local/lib/mysql5/bin/mysqlbug script!

The latest information about MySQL is available at http://www.mysql.com/
Support MySQL by buying support/licenses from http://shop.mysql.com/

$sudo /opt/local/share/mysql5/mysql/mysql.server start
Starting MySQL
. SUCCESS!

$mysql5 -u root
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.1.42 Source distribution

# Ubuntuではapt-getを使用します
$sudo apt-get install apache2 php5 libapache2-mod-php5

$sudo apt-get install mysql-client mysql-server php5-dev php5-cli php5-common php-pear php5-mysql php5-mcrypt $php5-dev php5-mhash php5-gd php5-xsl php5-xmlrpc

参考URL
http://d.hatena.ne.jp/hiratake55/20090119/1232363523


以上です。

2010年1月9日土曜日

[Git] MacOSにインストールしてみる

MacOSXでのGit導入はMacportsを使用するかGooglecodeからインストーラをダウンロードする。

インストール自体は以下のコマンドで完了します。お手軽です。
sudo /opt/local/bin/port install git-core +svn +doc

※Macports使用はXcodeがインストールされていることが前提となります。


以上です。

2010年1月8日金曜日

[Env] プロンプトの表示を変更する

LinuxやMacOSXでプロンプトの表示を変更したい場合があります。

ホームディレクトリ内の.bash_profile(ない場合は新規作成)に下記のように設定を加えることで実現できます。

export PS1=’[\u@\h \W]\$ ‘

[各種指定の意味]
\d 日付
\h ホスト名
\n 改行
\s シェルの名前
\t 時間
\u ユーザー名
\w ワークディレクトリ
\W ワークディレクトリのベース名
\# コマンド番号
\! ヒストリ番号
\$ 有効なUIDが0なら「#」、それ以外なら「$」
\nnn 8進数での文字コード
\\ バックスラッシュそのもの
\[ 非表示文字の開始
\] 非表示文字の終了


 /etc/bashrc,/etc/profileと,各ユーザーごとの.bash_rc,.bash_profileの間には,“呼び出し関係” がある。.bash_profileは,.bashrcを,.bashrcは,/etc/bashrcを読み出すようにあらかじめ指定されている。このため,あるユーザーがbashを起動すると,まず最初に全ユーザー共通の設定内容が適用され,そこに各ユーザーごとの個別の設定が上書きされる。
システムへのログイン時には,.bash_profileと/etc/profileが読み出される。その後,例えばGNOME端末などのシェルを起動するたびに,.bashrcが読み込まれる。しかし,.bash_profileは読み込まれない。従って,ログイン直後に1度だけ実行させたいプログラムは.bash_profileに記述するべきである。


引用元:http://itpro.nikkeibp.co.jp/article/Keyword/20070831/280849/

2010年1月5日火曜日

XoopsとDrupalの違い

Xoops
・管理者画面という概念がある

Drupal
・管理者画面という概念はなく、ログインユーザーが管理者の場合、各種設定へのリンクが表示される。

コアは最小限
モジュール拡張容易
イベント駆動開発(フック)

フックの例:例えばユーザーがログインする際、Drupalはモジュール名_user(フック名)という規則に則り命名された関数をすべてコールする。comment_user()、mail_user()などである。

コアの機能性を利用する最も一般的な方法はモジュールにフックを実装すること

コンテンツタイプはノードと呼ばれる1つの基底タイプから派生。拡張されたタイプも基礎をなすデータ構造はすべて同じ。
→管理インターフェースはノードを一括編集する画面を提供することが可能

2010年1月4日月曜日

[Maintenance] 作業ディレクトリをバージョン管理外にする

作業コピーから .svn ディレクトリを削除し、通常のフォルダに戻したい場合は、
新しくまっさらなディレクトリツリーを生成するのではなく、コントロールディレクトリを
削除するエクスポートコマンドを実行します。

その為にフォルダ自身にエクスポートしてください!
TortoiseSVN はこの特殊なケースを検出し、作業コピーをバージョン管理下から外すか
どうかを聞いてきます。

はい と答えると、コントロールディレクトリを削除し、まっさらなバージョン管理されていないディレクトリになります。


以上です。