ccm work_area /find find_str /replace new_str
/reg または /regexp も指定する場合は、find_str と new_str は両方とも正規表現として解釈されます。
ccm work_area /dbpath old_path
old_path オプションは、正規表現として解釈することはできません。 /dbpath オプションは、見つかったプロジェクトのワークエリア ID ファイルを、現在のデータベースのパス名を使用して更新します。このオプションは、データベースを移動した場合にのみ使用してください。UNIX リンク・ベース・ワークエリアに対してこのオプションを使用すると、新しいデータベースの場所へのリンクを更新するためにワークエリアが同期されます。/nosync オプションも指定する場合は同期が保留されます。ただし、ワークエリアを使用するには、その前に同期を手動で実行する必要があります。
新しいデータベースの存在を示すために、/new オプションを /find と /replace に追加することができます。 これは、/find によって指定されている元のワークエリアが、このセッションに対して可視ではないため、無視する必要があるということを意味します。 このオプションは、データベースを新しいパス名にアンパックした後に元のデータベース・ワークエリアを無視する場合、または元のデータベースが存在しない場合に便利です。/new オプションを追加しない場合、このコマンドは可視のワークエリアを持つプロジェクトに対してのみ機能します。
/show オプションを /find または /dbpath に追加して、更新するプロジェクトを表示することができます。 /show を /find および /replace と一緒に使用すると、置換パス名が表示されます。 これは、/find および /replace を、正規表現 (/regexp) と一緒に使用する場合に便利です。
> ccm work_area /find "-" /replace "~"
このコマンドは、データベース区切り文字を "-" から "~" に変更した後で使用することができます。すべてのワークエリアを変更するには、このコマンドを十分な数のセッションから実行する必要があります。1 つのセッションからすべてのワークエリアが可視である場合は、1 つのセッションで十分です。 Windows ワークエリアと UNIX ワークエリアの両方がある場合は、Windows クライアントと UNIX クライアントの両方で、このコマンドを実行する必要があります。
> ccm work_area /find "-" /replace "~" /scope prep
このコマンドは、データベース区切り文字を "-" から "~" に変更した後で使用することができます。すべてのビルド管理ワークエリアを変更するには、このコマンドを十分な数のセッションから build_mgr として実行する必要があります。1 つのセッションからすべての prep ワークエリアが可視である場合は、1 つのセッションで十分です。 ただし、Windows ビルド管理ワークエリアと UNIX ビルド管理ワークエリアの両方がある場合は、Windows クライアントと UNIX クライアントの両方で、このコマンドを実行する必要があります。
$ ccm work_area -dbpath /vol/acrel5/ccmdb/ccm_platform
このコマンドを使用して、移動されたものの、以前のワークエリア・パスを使用できるデータベースを更新します。 すべてのワークエリアを変更するには、このコマンドを十分な数のセッションから実行する必要があります。1 つのセッションからすべてのワークエリアが可視である場合は、1 つのセッションで十分です。 Windows ワークエリアと UNIX ワークエリアの両方がある場合は、Windows クライアントと UNIX クライアントの両方で、このコマンドを実行する必要があります。
> ccm work_area /find platform /replace services /new
このコマンドを使用して、アンパックまたはコピーされたデータベースを新しい名前に更新します。 以前のワークエリアは以前のデータベースによって使用されているため、/new オプションは、ワークエリアを作成します。以前のワークエリアを (移動したデータベース用などに) 再使用する場合は、まず、/dbpath オプションを使用して、以前のワークエリアがこのデータベースに対して可視になるよう、ワークエリア ID ファイルを更新する必要があります。
オプション /reg または /regexp を使用すると、work_area コマンドが find_str 引数および new_str 引数を正規表現として解釈するようになります。
> ccm wa /find "joe45¥¥¥¥" /replace "" /reg /p
Checking work area paths for replacement...
1 project(s) will be checked.
Setting path for work area of ‘hsai~1’ to ‘c:¥ccm_wa¥hsai~1’...
1 project work area path(s) were updated:
‘hsai~1’: ‘c:¥ccm_wa¥hsai~1’
パスからディレクトリーを削除する場合は、関連する円記号も含めてください。 先頭に円記号を指定する方が簡単ですが、以下の例では末尾に円記号が使用されています。
joe45¥
Rational Synergy コマンド・プロセッサーは、joe45 の先行する引用符を認識してから、末尾の引用符を探している間に円記号を検出すると、後続の引用符を終了引用符ではなく引数の一部として組み込むためのシグナルとしてその円記号を解釈します。したがって、その円記号の前にもう一つの円記号を付加してエスケープする必要があります。 また、Rational Synergy コマンド処理から得られた結果の表現 (joe45¥) は、末尾の円記号が 2 つの追加の円記号によってエスケープされない限り、対応する置換構文文字のない円記号として正規表現プロセッサーによって誤って解釈されてしまいます。
複数のディレクトリーを引用符で囲む場合、終了引用符の直前にある末尾のディレクトリー円記号には 4 つの引用符しか使用できません。引数の途中で使用するディレクトリー円記号は、正規表現プロセッサーが円記号を置換構文の先頭として解釈しないように、1 回エスケープすることができます。
> ccm wa /find "ccm_wa¥¥joe45¥¥¥¥" /replace "" /reg /p hsaw~1
Checking work area paths for replacement...
1 project(s) will be checked.
Setting path for work area of ‘hsaw~1’ to ‘c:¥users¥joe¥hsaw~1’...
1 project work area path(s) were updated:
‘hsaw~1’: ‘c:¥users¥joe¥hsaw~1’
> ccm wa /find "¥+joe45¥¥¥¥" /replace "" /reg /p hsaw~1
Checking work area paths for replacement...
1 project(s) will be checked.
Setting path for work area of ‘hsaw~1’ to ‘c:¥ccm_wa¥hsaw~1’...
1 project work area path(s) were updated:
‘hsaw~1’: ‘c:¥ccm_wa¥hsaw~1’
> ccm wa /find "¥¥¥+joe45" /replace "" /reg /p hsaw~1
Checking work area paths for replacement...
1 project(s) will be checked. Setting path for work area of ‘hsaw~1’ to
‘c:¥ccm_wa¥hsaw~1’...
1 project work area path(s) were updated:
‘hsaw~1’: ‘c:¥ccm_wa¥hsaw~1’
一般に、find_str または new_str に特殊文字またはスペースがない限り、引用符は不要です (UNIX 以外の環境の場合)。以下の例は、引用符を使用しない正規表現を示しています。
> ccm wa /find users¥¥joe¥¥ccm_wa¥¥ /replace temp¥¥ccm¥¥ /reg /p junk~1
Checking work area paths for replacement...
1 roject(s) will be checked.
Seting path for work area of ‘junk~1’ to
‘c¥temp¥ccm¥joe45¥junk~1’...
1 roject work area path(s) were updated:
‘jnk~1’: ‘c:¥temp¥ccm¥joe45¥junk~1’
この場合、エスケープする必要がある文字は、正規表現プロセッサーが通常は置換構文を開始するために使用する円記号のみです。
置換構文をエスケープしない一般的な理由の 1 つは、UNIX ファイル・システムが大文字と小文字を区別することです。
Rational Synergy 管理者がディレクトリーの命名基準を変更した場合に、この作業を行う必要が生じる可能性があります。
pc-1: /users/joe/ccm_wa/owner/pc-1
pi-1: /users/joe/ccm_wa/static/pi-1
pw-1: /users/joe/ccm_wa/owner/pw-
UNIX シェルによって「*」や他の特殊文字が処理されないように引数を引用符で囲み、(この場合はオプションですが) 円記号もエスケープします。 括弧は、後で置換する 1 番目の式と 2 番目の式を示しています。 選択セット (@) 演算子は、クエリーの結果を表します。
$ ccm wa -find "/users/joe/ccm_wa/([^/]+)/(.*)" -replace ¥
"/users/joe/ccm_wa/¥¥u¥¥1/¥¥2" -reg @
Checking work area paths for replacement...
3 project(s) will be checked.
Setting path for work area of ‘pc-1’ to ‘/users/joe/ccm_wa/Owner/pc-1’
. . .
Setting path for work area of ‘pi-1’ to ‘/users/joe/ccm_wa/Static/pi-1’
. . .
Setting path for work area of ‘pw-1’ to ‘/users/joe/ccm_wa/Owner/pw-1’
. . .
3 project work area path(s) were updated:
‘pc-1’: ‘/users/joe/ccm_wa/Owner/pc-1’
‘pi-1’: ‘/users/joe/ccm_wa/Static/pi-1’
‘pw-1’: ‘/users/joe/ccm_wa/Owner/pw-1’
Rational Synergy 管理者がディレクトリーの命名基準を変更した場合に、この作業を行う必要が生じる可能性があります。
pc-1: c:¥joe¥ccm_wa¥Owner¥pc-1
pi-1: c:¥joe¥ccm_wa¥Static/pi-1
pw-1: c:¥joe¥ccm_wa¥Owner/pw-1
シェルによって「*」や他の特殊文字が処理されないように引数を引用符で囲み、(この場合はオプションですが) 円記号もエスケープします。 括弧は、後で置換する 1 番目の式と 2 番目の式を示しています。 選択セット (@) 演算子は、クエリーの結果を表します。
> ccm wa /find "¥¥joe¥ccm_wa¥¥([^¥¥]+)¥¥(.*)" /replace
"¥¥joe¥ccm_wa¥¥¥1¥¥¥1¥¥¥2" /reg @
Checking work area paths for replacement...
3 project(s) will be checked.
Setting path for work area of ‘pc-1’ to ‘C:¥joe¥ccm_wa¥owner¥pc-1’
. . .
Setting path for work area of ‘pi-1’ to ‘C:¥joe¥ccm_wa¥static¥pi-1’
. . .
Setting path for work area of ‘pw-1’ to ‘C:¥joe¥ccm_wa¥owner¥pw-1’
. . .
3 project work area path(s) were updated:
‘pc-1’: ‘C:¥joe¥ccm_wa¥owner¥pc-1’
‘pi-1’: ‘C:¥joe¥ccm_wa¥static¥pi-1’
‘pw-1’: ‘C:¥joe¥ccm_wa¥owner¥pw-1’