13 die "usage: $0\n\tDetermines what changelists need to be pushed to test\n" if (@ARGV != 0);
17 # read in the data files list
18 print STDERR
"reading current files" if ($debug);
20 open(P4
, "$p4 -ztag files //depot/swg/current/data/... //depot/swg/current/dsrc/... |");
33 elsif (s/^\.\.\. depotFile //)
37 elsif (s/^\.\.\. rev //)
43 die "missing depotFile" if (!defined($depotFile));
44 die "missing revision " if (!defined($revision));
45 $data_revisions{$depotFile} = $revision;
48 my @data_keys = sort keys %data_revisions;
49 print STDERR
" (", scalar(@data_keys), " files)\n" if ($debug);
51 # read in the stage files list
52 print STDERR
"reading stage files" if ($debug);
54 open(P4
, "$p4 -ztag files //depot/swg/current/data/...\@swg-stage-label //depot/swg/current/dsrc/...\@swg-stage-label |");
67 elsif (s/^\.\.\. depotFile //)
71 elsif (s/^\.\.\. rev //)
77 die "missing depotFile" if (!defined($depotFile));
78 die "missing revision " if (!defined($revision));
79 $stage_revisions{$depotFile} = $revision;
82 my @stage_keys = sort keys %stage_revisions;
83 print STDERR
" (", scalar(@stage_keys), " files)\n" if ($debug);
85 print STDERR
"comparing current vs stage" if ($debug);
86 # compare the two sets of files
91 if (@stage_keys && ($data_keys[0] eq $stage_keys[0]))
93 my $key = shift @data_keys;
94 my $s = shift @stage_keys;
95 if ($data_revisions{$key} != $stage_revisions{$key})
98 foreach my $revision ($stage_revisions{$key}+1 .. $data_revisions{$key})
100 push(@new_revisions, "$key#$revision");
106 die "\nD\n$data_keys[0]\n$stage_keys[0]\n" if (@stage_keys && $stage_keys[0] lt $data_keys[0]);
110 my $key = shift @data_keys;
111 foreach my $revision (1 .. $data_revisions{$key})
113 push(@new_revisions, "$key#$revision");
117 print STDERR
" (", $changed, " files changed)\n" if ($debug);
119 # generate the temp file of the revisions
120 print STDERR
"finding changelists" if ($debug);
121 my $fstat = "fstat.tmp";
122 open(FSTAT
, ">" . $fstat);
123 foreach (@new_revisions)
125 print FSTAT
$_, "\n";
130 open(P4
, "$p4 -x $fstat fstat |") || die "$0: Could not open p4 fstat pipe: $!\n";
134 if (s/^\.\.\. headChange //)
136 # print $_, "\t", (shift @new_revisions), "\n";
142 print STDERR
" (", scalar keys %changes, " changes)\n" if ($debug);
144 # get a description of each changelist
145 print STDERR
"getting changelist descriptions\n" if ($debug);
146 foreach (sort numerically
keys %changes)
148 open(P4
, "$p4 describe -s $_|");
152 $header = "" if (/\[automated\]/);