2016-08-05 89 views

回答

1

嘗試首先,從query_languagecleartool find,語法

cleartool find <vobtag> -element "!{created_since(target-data-time)}" -print 

如果不工作,你將不得不退卻到:

  • 列表與所有文件在過去30天內創建的版本
  • 列出所有文件並提取不屬於第一個列表的文件。

關於所述第一名單(從「How to determine the last time a VOB was modified」),使用cleartool find

cleartool find <vobtag> -element "{created_since(target-data-time)}" -print 
or 
cleartool find <vobtag> -version "{created_since(target-data-time)}" -print 

該文件還提到了cleartool lshistory -minor -all .,但不可靠,它使用的是可以在任何時候被廢棄當地的元數據。

對於第二個清單:

cleartool find . -cview -ele -print 
+0

我試過了第一個選項。但是,因爲有成千上萬的文件,如果它是正確的,我不是100%確定的。 – user2636464

+0

@ user2636464只需選擇一個並查看其版本樹,以查看是否有最近30天創建的版本son3 – VonC

+0

頂部的cleartool find命令將用於元素創建日期,而不是版本時間戳記...我認爲有一種方法,讓我看看我能否創造出一些東西。我相信你可以使用find -version「created_since ...」給你一個有修改的元素列表,然後將它與VOB中所有元素的列表進行比較。 –

1

下面是一個簡單的Perl腳本做你問什麼。這有一個硬編碼的日期字符串,以避免陷入Perl日期算法。它獲取VOB中所有元素的列表,然後刪除自該列表指定的日期以來修改版本的元素,最後輸出未修改的元素。

#!/usr/bin/Perl -w 
my %elem_hash; 
my $datestring="01-jan-2014"; 
my $demarq= "-------------------------------------------------"; 
my $allelemtxt="-- All elements located in the current VOB --"; 
my $ver_hdr ="--  Versions modified since $datestring  --"; 
my $nonmodtext="-- Elements not modified since $datestring --"; 
# 
# Get all elements in the current VOB. 
# 
$cmdout=`cleartool find -all -print`; 
@elemtext=split('\n',$cmdout); 
# 
# Add them to a hashmap, simply because it's easier to delete from this list type 
# 
foreach $elem (@elemtext) 
{ 
    # Quick and dirty way to remove the @@ 
    $elem = substr($elem,0,length($elem)-2); 
    $elem_hash{$elem} = 1; 
} 
# 
printf("\n%s\n%s\n%s\n",$demarq,$allelemtxt,$demarq); 
foreach $elem2 (sort (keys (%elem_hash))) 
{ 
    printf("Element: %s\n",$elem2); 
} 

# 
# Get VERSIONS modified since the specified date string 
# 

$cmdout=`cleartool find -all -version "created_since($datestring)" -print`; 
@vertext=split('\n',$cmdout); 

# 
# strip the trailing version id's and then delete the resulting key from the hashmap. 
# 
printf("\n%s\n%s\n%s\n",$demarq,$ver_hdr,$demarq); 
foreach $version (@vertext) 
{ 
    printf("Version: %s\n",$version); 
    $version=substr($version,0,length($version)-(length($version)- rindex($version,"@@"))); 
    if (exists($elem_hash{$version})) 
    { 
     delete $elem_hash{$version}; 
    } 
} 

printf("\n%s\n%s\n%s\n",$demarq,$nonmodtext,$demarq); 
foreach $elem2 (sort (keys (%elem_hash))) 
{ 
    printf("Element: %s\n",$elem2); 
} 
+0

非常感謝 – user2636464