Qu'est-ce que la commande clearcase pour rechercher tous les fichiers privés de vue dans le répertoire actuel de manière récursive?
Les commandes habituelles sont basées sur cleartool ls
:
ct lsprivate
: mais ce n'est que pour les vues dynamiques, pas les vues instantanéesct ls -rec -view_only
: au moins, cela fonctionne dans les vues instantanées et dynamiquesCependant tous les deux listent aussi vos fichiers extraits.
Si vous souhaitez uniquement les fichiers privés, c'est-à-dire en ignorant les éléments piratés/éclipsés/extraits et les liens symboliques , vous devez les filtrer.
Sous Windows, ce serait:
for /F "usebackq delims=" %i in (`cleartool ls -rec ^| find /V "Rule:" ^| find /V "hijacked" ^| find /V "eclipsed" ^| find /V "-->"`) do @echo "%i"
Sous Unix:
cleartool ls -rec | grep -v "Rule:" | grep -v "hijacked" | grep -v "eclipsed" | grep -v "-->" | xargs echo
Au cas où cela aiderait quelqu'un d'autre à lire cette question, voici la solution Windows de VonC avec quelques modifications mineures à exécuter en tant que script 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"
Remplacez @echo
par rmdir /S /Q
et del /F
pour effectuer les suppressions effectives comme décrit ici . Le script final est donc:
@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"
Si vous enregistrez en tant que fichier .bat sous l'élément de la vue que vous nettoyez, le script se nettoiera en se supprimant également :-)
J'ai modifié la version de @MilesHampson car cela me donnait trop de résultats et je souhaite l'exécuter en tant que fichier de traitement par lots.
Mes nouveaux fichiers ne seront pas dans le dossier debug
ou obj
et, en tant que tel, je n'ai besoin de voir aucun résultat pour ces dossiers ... Je ne travaille également qu'en C #. Donc c'est tout ce que j'ai besoin de voir.
@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
Créez un fichier bat avec ce qui précède, déposez-le dans votre dossier de projet racine et exécutez-le. Il affichera ceux qui ne sont pas dans le contrôle de source.
Au cas où cela aiderait quelqu'un d'autre à lire cette question, voici la solution Unix de VonC avec quelques modifications mineures à exécuter sous Cygwin sous Windows.
En Cygwin:
cleartool ls -rec | grep -v "Rule:" | grep -v "hijacked" | grep -v "eclipsed" | grep -v -- "-->"
La ligne Cygwin est similaire à la version Unix donnée par VonC, mais notez que le double tiret sur le dernier grep est nécessaire (et que xargs n’est pas nécessaire).
ct lsprivate -other
Serait également filtrer les fichiers extraits
ct lsprivate -co
: liste tous les fichiers extraits
ct lsprivate -do
: liste tous les fichiers d'objet dérivés
ct lsprivate -other
: liste tous les autres fichiers privés
J'ai suivi toutes les solutions ci-dessus et c'est formidable. J'avais quelques exigences supplémentaires qui n'étaient pas couvertes ci-dessus, donc j'ai légèrement modifié le script avec des points supplémentaires ci-dessous
Suppression du répertoire de la liste, généralement je m'intéresse au fichier
Spécialement pour les développeurs Java, le dossier cible et les fichiers jar exclus. , Car ils ne sont généralement pas archivés
Suppression des dossiers .classpath, .project Et .settings spécifiques à Eclipse (s'ils ont le même niveau Que projet/modules)
@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