cmpnewest
1.38 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
#! /usr/sbin/perl
#
# head revision と work とを比較して、違いのあるファイルに関して、
# 違いを表示するスクリプト
#
# 主に、パッチブランチ上で使用し、メインの head と相違がないかを
# チェックするのに利用する。
#
$master="/hosts/liberte/disk6/Master/cvsmdev2";
$root=$ENV{'ROOT'};
#
# オプションの取得
#
while( @ARGV ){
$sw = shift;
if ( $sw =~ /^-/ ) {
if ( $sw eq "-h" ){
&usage;
exit(0);
} else {
&usage;
exit(1);
}
}
}
&usage, exit(1) if $#ARGV != -1;
open(LOG, "cvs log |") || die "$!";
while(<LOG>){
if (/^RCS file: ${master}\/PR\/(.+),v$/){
$filename = $1;
}
elsif (/^head: (1\..+)$/) {
$head = $1;
}
if (/=================================/){
open(DIFF, "cvs diff -kk -r $head ${root}/PR/$filename |") || die "$!";
@diff = <DIFF>;
if (@diff != ()) {
splice(@diff, 0, 5);
if (@diff != ()) {
print "==========================================\n";
print "filename: $filename\n";
print "head revision: $head\n";
print "-----------------\n";
print "@diff\n";
print "-----------------\n";
}
}
close(DIFF);
}
}
close(LOG);
sub usage {
print "\n";
print "usage: cmpnewest\n";
print "\tカレントディレクトリの下に関して、マスターの最新バージョンとの\n";
print "\tdiff をとり、異なるものだけを報告します。\n";
print "\n";
}