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?

25
demandé sur eeerahul 2011-10-05 09:35:21

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
29
répondu VonC 2011-10-05 05:45:19

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

3
répondu MilesHampson 2017-05-23 12:34:11

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.

2
répondu Dave 2014-02-04 13:56:48

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

2
répondu iwan2know 2014-02-04 20:49:22
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

1
répondu Otzen 2013-09-24 13:33:20

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

  1. fichier batch exclu de la liste (sinon le fichier batch actuel arrive également dans la liste)
  2. Répertoire supprimé de la liste comme généralement je suis intéressé par file

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

  4. 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
    
0
répondu ashah 2017-08-09 09:45:48