- #!/usr/local/bin/perl
- use File::stat;
- use Time::localtime;
- use Getopt::Long;
- $Getopt::Long::autoabbrev=0;
- unless($result=GetOptions("h", "bname=s",
- "l")) {
- die "Illegal Input Options, -h for help\n";
- }
- $HELP="Usage: cdscheckouts -bname <branch_name> [-l]
- Long format will stat each file\nto give modify time\nand can take a few moments\n";
- if($opt_h) {
- print $HELP;
- exit;
- }
- if(!$opt_bname) {
- print $HELP;
- exit;
- }
- $cmd="p4 branches | grep $opt_bname > /dev/null";
- system($cmd);
- if($? ne 0) {
- print "Couldn't find branch $opt_bname\n";
- exit 1;
- }
- print "Getting check out status...please wait\n";
- $cmd="p4 opened -a //depot/$opt_bname/...| grep cdb > /tmp/p4cdsco.$$";
- system($cmd);
- open(CMD,"</tmp/p4cdsco.$$") || die;
- while(<CMD>) {
- chop;
- (@data)=split;
- ($user,$client)=split('@',$data[7]);
- ($nclient,$branch)=split(':',$client);
- (@dspec)=split('/',$data[0]);
- $max=($#dspec);
- $datastring="$user $dspec[$max-3] $dspec[$max-2]";
- $dlen=length($datastring);
- $numspaces=40-$dlen;
- $pad="";
- for $i (0...$numspaces) {
- $pad=$pad." ";
- }
- $datastring=$datastring.$pad.$dspec[$max-1];
- # target column 50 for beginning of data field
- $dlen=length($datastring);
- $numspaces=50-$dlen;
- $pad="";
- for $i (0...$numspaces) {
- $pad=$pad." ";
- }
- $datastring=$datastring.$pad.$data[2];
- if($opt_l) {
- # if modtime is set in the client
- # we can see the time the file was last modified
- (@dfilenorev)=split('#',$data[0]);
- $cmd="p4 -c $client have $dfilenorev[0]";
- open(CMD2,"$cmd 2>&1|") || die;
- while(<CMD2>) {
- chop;
- if(/not on client/) {
- $date_string= "No data ($client)";
- next;
- }
- ($ig,$ig,$unixpath)=split;
- $date_string = ctime(stat($unixpath)->mtime());
- }
- $dlen=length($datastring);
- # target column 60 for beginning of data field
- $numspaces=60-$dlen;
- $pad="";
- for $i (0...$numspaces) {
- $pad=$pad." ";
- }
- $datastring=$datastring.$pad.$date_string;
- }
- $cotable{$branch}=$cotable{$branch}."\n".$datastring;
- }
- close(CMD);
- foreach $key (sort(keys(%cotable))) {
- print "\nBranch: $key\n-------------------------------------------\n$cotable{$key}\n";
- }
- system("rm /tmp/p4cdsco.$$");
# | Change | User | Description | Committed | |
---|---|---|---|---|---|
#1 | 5093 | Hari Krishna Dara |
Populating perforce branch. I will be adding p4admin files to it. |
20 years ago | |
//guest/perforce_software/cdsp4/release/2.2/Utils/cdscheckouts | |||||
#1 | 1675 | Shiv Sikand | New 2.2 tree | 23 years ago |