現在のディレクトリ内のすべてのビュープライベートファイルを再帰的に見つけるためのclearcaseコマンドとは何ですか?
通常のコマンドは cleartool ls
:
ct lsprivate
:ただし、動的ビュー専用であり、スナップショットビューではありませんct ls -rec -view_only
:少なくとも、スナップショットビューと動的ビューの両方で機能しますただし、両方ともチェックアウトしたファイルをリストします。
privateファイルのみが必要な場合、つまりhijacked/eclipsed/checked-outとsymlinksをスキップする場合、それらを除外する必要があります。
Windowsでは、次のようになります。
for /F "usebackq delims=" %i in (`cleartool ls -rec ^| find /V "Rule:" ^| find /V "hijacked" ^| find /V "eclipsed" ^| find /V "-->"`) do @echo "%i"
Unixの場合:
cleartool ls -rec | grep -v "Rule:" | grep -v "hijacked" | grep -v "eclipsed" | grep -v "-->" | xargs echo
それがこの質問を読んでいる他の誰かを助ける場合に備えて、ここでVonCのWindowsソリューションがいくつかあり、Windowsスクリプトとして実行するためにいくつかのマイナーな変更が加えられています。
@echo off
setlocal
for /F "usebackq delims=" %%A in (`cleartool ls -rec ^| find /V "Rule:" ^| find /V "hijacked" ^| find /V "eclipsed" ^| find /V "-->"`) do @echo "%%A"
置換@echo
とrmdir /S /Q
およびdel /F
ここ の説明に従って実際の削除を行います。したがって、最終的なスクリプトは次のとおりです。
@echo off
setlocal
for /F "usebackq delims=" %%A in (`cleartool ls -rec ^| find /V "Rule:" ^| find /V "hijacked" ^| find /V "eclipsed" ^| find /V "-->"`) do rmdir /S /Q "%%A"
for /F "usebackq delims=" %%A in (`cleartool ls -rec ^| find /V "Rule:" ^| find /V "hijacked" ^| find /V "eclipsed" ^| find /V "-->"`) do del /F "%%A"
クリーンアップするビューの要素の下に.batファイルとして保存すると、スクリプトもそれ自体を削除してクリーンアップします:-)
@MilesHampsonでバージョンを修正しました。結果が多すぎるため、これをバッチファイルとして実行したいと考えています。
私の新しいファイルはdebug
またはobj
フォルダーに含まれないため、これらのフォルダーの結果を表示する必要はありません...また、C#でのみ作業しています。だから私が見る必要があるのはそれだけです。
@echo off
setlocal
@echo Searching, please wait as this can take a while...
for /F "usebackq delims=" %%A in (`cleartool ls -rec ^| find /V "Rule:" ^| find /V "hijacked" ^| find /V "eclipsed" ^| find /V "-->" ^| find /V "obj" ^| find /V "debug"`) do (
if "%%~xA"==".cs" echo %%A
)
)
@echo === === === === === Search Complete === === === === === ===
pause
上記を使用してbatファイルを作成し、ルートプロジェクトフォルダーにドロップして実行します。ソース管理にないものを表示します。
この質問を読んでいる人を助けるために、WindowsのCygwinで実行するためにいくつかのマイナーな変更を加えたVonCのUnixソリューションを次に示します。
Cygwinの場合:
cleartool ls -rec | grep -v "Rule:" | grep -v "hijacked" | grep -v "eclipsed" | grep -v -- "-->"
Cygwinの行はVonCが提供するUnixに似ていますが、最後のgrepに二重ダッシュが必要であることに注意してください(xargsは不要です)。
ct lsprivate -other
チェックアウトされたファイルも除外されます
ct lsprivate -co
:チェックアウトされたすべてのファイルを一覧表示します
ct lsprivate -do
:すべての派生オブジェクトファイルを一覧表示します
ct lsprivate -other
:他のすべてのプライベートファイルをリストする
私は上記のすべての解決策に従いましたが、それは素晴らしいコマンドです。上記でカバーされていないいくつかの要件があったので、以下の追加ポイントでスクリプトを少し修正しました
一般にファイルに関心があるため、リストからディレクトリを削除しました
特別にJava開発者向け。除外されたターゲットフォルダとjarファイルは、一般にチェックインされないため
Eclipseに固有の.classpath、.projectおよび.settingsフォルダーを削除しました(プロジェクト/モジュールと同じレベルの場合)。
@echo off
setlocal
@echo.
@echo Searching, please wait as this can take a while...
@echo.
for /F "usebackq delims=" %%i in (`cleartool ls -rec ^| find /V "Rule:" ^| find /V "hijacked" ^| find /V "eclipsed" ^| find /V "-->" ^| find /V ".settings" ^| find /V "jar" ^| find /V "keep" ^| find /V "target" ^| find /V ".classpath" ^| find /V ".project" ^| find /V "%~n0" `) do ( if not exist %%i\* @echo "%%i")
@echo.
@echo === === === === === Search Complete === === === === === ===
@echo.
@echo.
pause