2017-02-21 6 views
1

ClearCaseに任意のディレクトリツリーをコミットできるプロセスを探しています。ツリーには、通常のファイル、ディレクトリ、シンボリックリンク(ファイルまたはディレクトリ)が含まれている場合があります。任意のディレクトリツリーをコミットする方法

我々は排他的に動的ビューで作業している、と私は(私はディレクトリfooの全体構造をClearCaseのためにコミットする必要があることを前提とし)そのような場合に従うことが、古いチームのメンバーで、次のような処理を与えられている:

  1. fooが表示されているディレクトリに移動して確認してください。

    ct checkout

  2. レジスタのClearCaseオブジェクトとしてfoo内のすべてのファイル:

    CT mkelem -mkpath $

  3. 新しく鋳造ClearCaseのオブジェクトチェックイン(fooという型Fを見つける。):

    CT CI

  4. コミット(CT lscheckcout -me -cvi -recu -shoのfoo)$

    ct ci。

上記は、通常のファイルでは機能しているようですが、シンボリックリンクが存在する場合は機能しません。

など。私が次のことをすれば:

mkdir foo && cd foo 
touch a && ln -s a a2 && cd .. 

…そして、#1、#2が正常に実行工程(find -type f -o -type lを使用するために、ステップ2でfind呪文を変更)上記の処理は、次のとおり

$ ct co . 
Checkout comments for ".": 
. 
Checked out "." from version "/main/dbdev_br/2". 
$ ct mkelem -mkpath $(find foo -type f -o -type l) 
Creating parent directory element "foo". 
Created directory element "foo". 
Checking out parent directory "foo". 
Created branch "dbdev_br" from "foo" version "/main/0". 
Creation comments for "foo/a": 
. 
Created element "foo/a" (type "text_file"). 
Created branch "dbdev_br" from "foo/a" version "/main/0". 
Checked out "foo/a" from version "/main/dbdev_br/0". 
Creation comments for "foo/a2": 
. 
Created element "foo/a2" (type "text_file"). 
Created branch "dbdev_br" from "foo/a2" version "/main/0". 
Checked out "foo/a2" from version "/main/dbdev_br/0". 

&hellipを、私はステップ#3を実行しようとするけど、私が手:

Checked in "foo/a" version "/main/dbdev_br/1". 
Private version of "foo/a2" saved in "foo/a2.keep". 
cleartool: Warning: Operation "view_change_oid" failed ("foo/a2"): Read-only file system. 
cleartool: Warning: VOB updated, but view update of uncheckout of "foo/a2" failed: error detected by ClearCase subsystem. 
Checked in "foo/a2" version "/main/dbdev_br/1". 

私はClearCaseの中で(通常のファイル、ディレクトリ、シンボリックリンクを持つ)任意のディレクトリツリーをコミットするために使用すべきプロセスは何ですか?私はこれを手動で、ファイルごとに、ディレクトリでディレクトリごとに行う必要がないように、スクリプトを作成することができるものを探しています。スクリプトを使用して、同じコミットメッセージを一貫して適用することもできます。

それはのように簡単になりますのgitで

git add foo 
git commit -m 'foo added' 

答えて

1

What's the process I should use to commit an arbitrary directory tree (with regular files, directories and symlinks) in ClearCase?

はその "How can I quickly checkin a large number of files in clearcase" でI詳細最初clearfsimportを試してみてください。
ClearCaseビューに(そのフォルダが別のビューまたは単純なOSの正規のフォルダにあることができる)任意のフォルダから大量のファイルを追加する(スナップショットまたは動的な、UCMかない)のための公式のコマンドである

ありませんより多くのcheckoutの宛先フォルダは、それ以上mkelemclearfsimportが処理します。私は私が手(ディレクトリ `それが既にあるfoo`をコミットする)$ clearfsimport -recu fooという.``しようとすると

Processes the object to which a UNIX or Linux symbolic link points, instead of importing the link itself into the VOB.

+0

あなたが-followオプションを使用しての選択肢を持っている 'clearfsimportを:エラー:許可が拒否されました:VOB所有者または特権ユーザーではありません。 clearfsimport:エラー: "。"。 "にインポートできません。 '$ ct clearfsimport'を実行すると' cleartool:Error:Unrecognized command: "clearfsimport" ' –

+0

@MarcusJuniusBrutus No:fooフォルダをビューの"外側 "に移動し、ビュー内に戻します。 – VonC

+0

私はそれを一時ディレクトリに移して、それから 'clearfsimport〜/ tmp/foo/.'を実行しました。同じ問題:' clearfsimport:エラー:権限が拒否されました:VOB所有者または特権ユーザーではありません。 clearfsimport:エラー: "。"にインポートできません。 –

関連する問題