Команда для рекурсивного поиска всех просмотренных приватных файлов в текущем каталоге. - PullRequest
28 голосов
/ 05 октября 2011

Что такое команда clearcase для рекурсивного поиска всех просмотренных личных файлов в текущем каталоге?

Ответы [ 6 ]

32 голосов
/ 05 октября 2011

Обычные команды основаны на cleartool ls:

  • ct lsprivate: но это только для динамических представлений, а не представлений снимков
  • ct ls -rec -view_only: по крайней мере, он работает как в снимках, так и в динамических представлениях

Однако оба списка также ваши извлеченные файлы.

Если вы хотите только личные файлы, т.е. , пропускающие захваченные / затмеваемые / извлеченные и символические ссылки , вам необходимо отфильтровать их.

В 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
5 голосов
/ 27 ноября 2013

В случае, если это поможет кому-то еще прочитать этот вопрос, это решение 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, чтобы выполнить фактическое удаление, как описано здесь . Итак, последний сценарий:

* * 1010

Если вы сохраните файл в формате .bat под элементом представления, из которого вы чистите, сценарий также будет очищен путем удаления самого себя: -)

3 голосов
/ 05 февраля 2014

В случае, если это поможет кому-либо еще прочитать этот вопрос, вот решение VonC для Unix с парой незначительных изменений, которые будут работать под Cygwin в Windows.

В Cygwin:

cleartool ls -rec | grep -v "Rule:" | grep -v "hijacked" | grep -v "eclipsed" | grep -v -- "-->" 

Строка Cygwin похожа на Unix, заданный VonC, но обратите внимание, что двойная черта на последнем grep необходима (а xargs не нужна).

3 голосов
/ 04 февраля 2014

Я изменил версию @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 с вышеприведенным, поместите его в корневую папку проекта и запустите.Будут отображаться те, которые не находятся в управлении источниками.

1 голос
/ 24 сентября 2013
ct lsprivate -other 

Также отфильтровывает извлеченные файлы

ct lsprivate -co: список всех извлеченных файлов

ct lsprivate -do: список всех производных объектных файлов

ct lsprivate -other: список всех других личных файлов

0 голосов
/ 09 августа 2017

Я следовал всем вышеперечисленным решениям, и это отличная команда.У меня было еще несколько требований, которые не были рассмотрены выше, поэтому я немного изменил сценарий, добавив следующие дополнительные пункты

  1. Исключенный пакетный файл из списка (в противном случае текущий пакетный файл также появляется в списке)
  2. Удален каталог из списка, поскольку обычно меня интересует файл

  3. Специально для разработчика java, исключены целевая папка и файлы jar, так как они обычно не проверяются в

  4. Удалены папки .classpath, .project и .settings, относящиеся к Eclipse (если они того же уровня, что и проект / модули)

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