2011-10-05 30 views

回答

29

常用的命令基於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 
+0

對於CT lsprivate,指定 - 其他選項將會離開了檢出的文件。 編輯:沒關係,Otzen已經在2年前的回答中說過了。 – antred

1
ct lsprivate -other 

還要篩選出簽出的文件

ct lsprivate -co:列出所有已簽出文件

ct lsprivate -do:列出所有派生對象文件

ct lsprivate -other:列表中的所有其他私人文件

+0

只適用於動態視圖 – x29a

3

在情況下,它可以幫助任何人在這裏其他閱讀這個問題是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" 

更換@echormdir /S /Qdel /F描述here做實際的缺失。所以,最終的腳本是:

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

如果你保存爲您從清潔視圖的元素下一個.bat文件,腳本會刪除自身以及:-)

+1

看起來不錯,比我對Windows的回答更準確。 +1 – VonC

2

我清理@MilesHampson修改了版本,因爲這給我帶來了太多的結果,我想把它作爲批處理文件運行。

我的新文件將不在debugobj文件夾中,因此,我不需要查看這些文件夾的任何結果......我也只在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文件,放到你的根項目文件夾中並運行它。它會顯示那些不在源代碼控制中的。

2

如果能幫助其他人閱讀這個問題,這裏是VonC的Unix解決方案,它有一些小的改動,可以在Windows下的Cygwin下運行。

在Cygwin的:

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

Cygwin的線是類似於VonC給出了Unix,但要注意在最後的grep雙破折號需要(和不需要xargs的)。

0

我遵循上述所有的解決方案,這是偉大的命令。我有一些未涵蓋的上方,我修改劇本下面附加分

多一些更高的要求
    從列表
  1. 排除批處理文件(否則當前的批處理文件也在名單即將)
  2. 從列表,刪除目錄通常我感興趣的文件

  3. 專門爲Java開發人員,排除目標文件夾和JAR文件 ,因爲它們一般不

  4. 刪除的.classpath檢查, 。項目 和.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 
    
相關問題