Commande pour trouver tous les fichiers privés de vue dans le répertoire courant récursivement
Quelle est la commande clearcase pour trouver tous les fichiers privés de vue dans le répertoire courant de manière récursive?
6 réponses
Les commandes Les plus utilisées sont basées sur cleartool ls
:
-
ct lsprivate
, mais c'est uniquement pour les vues dynamiques, pas les vues instantanées -
ct ls -rec -view_only
: au moins, cela fonctionne à la fois dans les vues instantanées et dynamiques
Cependant, les deux liste aussi vos fichiers extraits.
Si vous ne voulez que les fichiers private , c'est-à-dire en ignorant les fichiers détournés/éclipsés/extraits et les liens symboliques, vous devez les filtrer.
Dans Windows, ce serait être:
for /F "usebackq delims=" %i in (`cleartool ls -rec ^| find /V "Rule:" ^| find /V "hijacked" ^| find /V "eclipsed" ^| find /V "-->"`) do @echo "%i"
Dans 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"
Remplacer @echo
avec rmdir /S /Q
et del /F
pour effectuer les suppressions comme décrit ici. Donc le script final est:
@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 à partir de laquelle vous nettoyez, le script se nettoiera également en se supprimant: -)
J'ai modifié la version par @MilesHampson car cela a renvoyé trop de résultats pour moi et, je veux l'exécuter en tant que fichier batch.
Mes nouveaux fichiers ne seront pas dans le dossier debug
ou obj
et en tant que tel, je n'ai pas besoin de voir de résultats pour ces dossiers... Je ne travaille aussi que sur C#. 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 la 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.
Dans Cygwin:
cleartool ls -rec | grep -v "Rule:" | grep -v "hijacked" | grep -v "eclipsed" | grep -v -- "-->"
La ligne Cygwin est similaire à L'Unix donné par VonC, mais notez que le double-tiret sur le dernier grep est nécessaire (et le xargs n'est pas nécessaire).
ct lsprivate -other
Filtrerait également les fichiers extraits
ct lsprivate -co
: Liste tous les fichiers extraits
ct lsprivate -do
: Liste tous les fichiers d'objets dérivés
ct lsprivate -other
: liste de tous les autres fichiers privés
J'ai suivi toutes les solutions ci-dessus et c'est une excellente commande. J'avais d'autres exigences qui n'étaient pas couvertes ci-dessus, donc j'ai modifié le script un peu plus avec des points supplémentaires ci-dessous
- fichier batch exclu de la liste (sinon le fichier batch actuel arrive également dans la liste)
-
Répertoire supprimé de la liste comme généralement je suis intéressé par file
Spécialement pour le développeur java, le dossier cible exclu et les fichiers jar comme ils ne sont généralement pas enregistrés
-
Supprimé .classpath .projet et .dossier Paramètres spécifique à Eclipse (s'ils sont identiques niveau comme 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