work_area コマンド構文

以下の例は、/find オプションと /dbpath オプションのみの構文を示しています。

新しいデータベースの存在を示すために、/new オプションを /find/replace に追加することができます。 これは、/find によって指定されている元のワークエリアが、このセッションに対して可視ではないため、無視する必要があるということを意味します。 このオプションは、データベースを新しいパス名にアンパックした後に元のデータベース・ワークエリアを無視する場合、または元のデータベースが存在しない場合に便利です。/new オプションを追加しない場合、このコマンドは可視のワークエリアを持つプロジェクトに対してのみ機能します。

/show オプションを /find または /dbpath に追加して、更新するプロジェクトを表示することができます。 /show/find および /replace と一緒に使用すると、置換パス名が表示されます。 これは、/find および /replace を、正規表現 (/regexp) と一緒に使用する場合に便利です。

  • 以下のコマンドは、可視のワークエリアと、"-" 文字が含まれているパスを持つすべての working プロジェクトを見つけて、"-""~" に変更します。

    > ccm work_area /find "-" /replace "~"

    このコマンドは、データベース区切り文字を "-" から "~" に変更した後で使用することができます。すべてのワークエリアを変更するには、このコマンドを十分な数のセッションから実行する必要があります。1 つのセッションからすべてのワークエリアが可視である場合は、1 つのセッションで十分です。 Windows ワークエリアと UNIX ワークエリアの両方がある場合は、Windows クライアントと UNIX クライアントの両方で、このコマンドを実行する必要があります。

  • 以下のコマンドは、可視のワークエリアと、"-" 文字が含まれているパスを持つすべての prep プロジェクトを見つけて、"-""~" に変更します。

    > ccm work_area /find "-" /replace "~" /scope prep

    このコマンドは、データベース区切り文字を "-" から "~" に変更した後で使用することができます。すべてのビルド管理ワークエリアを変更するには、このコマンドを十分な数のセッションから build_mgr として実行する必要があります。1 つのセッションからすべての prep ワークエリアが可視である場合は、1 つのセッションで十分です。 ただし、Windows ビルド管理ワークエリアと UNIX ビルド管理ワークエリアの両方がある場合は、Windows クライアントと UNIX クライアントの両方で、このコマンドを実行する必要があります。

  • For UNIXUNIX ユーザー: 以下のコマンドは、/vol/acrel5/ccmdb/ccm_platform データベース用のワークエリアを持つすべての working プロジェクトを見つけて、現在のデータベースの場所へのパスを使用してワークエリア ID ファイルを更新します。

    $ ccm work_area -dbpath /vol/acrel5/ccmdb/ccm_platform

    このコマンドを使用して、移動されたものの、以前のワークエリア・パスを使用できるデータベースを更新します。 すべてのワークエリアを変更するには、このコマンドを十分な数のセッションから実行する必要があります。1 つのセッションからすべてのワークエリアが可視である場合は、1 つのセッションで十分です。 Windows ワークエリアと UNIX ワークエリアの両方がある場合は、Windows クライアントと UNIX クライアントの両方で、このコマンドを実行する必要があります。

  • 以下のコマンドは、platform ストリングが含まれているパスを持つすべての作業プロジェクトを見つけて、ストリングを services に変更します。

    > ccm work_area /find platform /replace services /new

    このコマンドを使用して、アンパックまたはコピーされたデータベースを新しい名前に更新します。 以前のワークエリアは以前のデータベースによって使用されているため、/new オプションは、ワークエリアを作成します。以前のワークエリアを (移動したデータベース用などに) 再使用する場合は、まず、/dbpath オプションを使用して、以前のワークエリアがこのデータベースに対して可視になるよう、ワークエリア ID ファイルを更新する必要があります。

正規表現の例

オプション /reg または /regexp を使用すると、work_area コマンドが find_str 引数および new_str 引数を正規表現として解釈するようになります。

正規表現は便利ですが、以下の制限があります。
  • Windows クライアントは、ディレクトリー名に円記号を使用します。正規表現での円記号は、エスケープまたは置換構文の一部として解釈される可能性があります。
  • find_str 引数または new_str 引数を引用符で囲むと、コマンド・ライン処理で混乱が生じる可能性があります。 この状態になるのは、Windows クライアント上であっても、引用符が UNIX シェルと Rational® Synergy コマンド・ライン・プロセッサーの両方によって解釈されるためです。
以下の例は、正規表現を使用したワークエリア・パスの変更を示しています。
  • c:¥ccm_wa¥joe45¥ の下のすべてのワークエリア・パスを c:¥ccm_wa¥ に短縮します。
    > 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’
  • 末尾の円記号を使用して、先行する特殊文字を含むディレクトリーをパスから削除し、ワークエリア・パスを c:¥ccm_wa¥+joe45¥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’
  • 先行する円記号を使用して、先行する特殊文字を含むディレクトリーをパスから削除します。
    > 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 以外の環境の場合)。以下の例は、引用符を使用しない正規表現を示しています。

  • ワークエリア・パスを c:¥ccm_wa¥joe45¥junk~1 から c:¥temp¥ccm¥joe45¥junk~1 に変換します。
    > 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 ファイル・システムが大文字と小文字を区別することです。

  • For UNIXUNIX ユーザー: ccm query コマンドを実行してワークエリアを含む 3 つのプロジェクトが返された後で、パス名の部分ごとの先頭文字を小文字から大文字に変換します。

    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’
  • For WindowsWindows ユーザー: ccm query コマンドを実行してワークエリアを含む 3 つのプロジェクトが返された後で、パス名の部分ごとの先頭文字を大文字から小文字に変換します。

    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’

フィードバック