web-dev-qa-db-fra.com

Commande pour Tous les fichiers privés de vue dans le répertoire actuel de manière récursive

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?

26
eeerahul

Les commandes habituelles sont basées sur cleartool ls :

  • ct lsprivate: mais ce n'est que pour les vues dynamiques, pas les vues instantanées
  • ct ls -rec -view_only: au moins, cela fonctionne dans les vues instantanées et dynamiques

Cependant 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
31
VonC

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 :-)

5
MilesHampson

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.

3
Dave

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).

3
iwan2know
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

1
Otzen

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

  1. Fichier de commandes exclu de la liste (sinon, le fichier de commandes actuel entre également dans la liste)
  2. Suppression du répertoire de la liste, généralement je m'intéresse au fichier

  3. 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 

  4. 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
    
0
ashah