ba1a0b76cf30ef61c89ca926843e15001e6dc2cb
[p5sagit/p5-mst-13.2.git] / Porting / git-find-p4-change
1 #!/usr/bin/perl
2
3 # given a perforce change number, output the equivalent git commit id
4
5 die "usage: $0 [git-log-options] num" unless @ARGV;
6
7 my $num = 1;
8
9 for (@ARGV) {
10         m{^\d+$} && (($change,$_) = ($_,undef));
11         m{^-\d+$} && (($num,$_) = (-$_,undef));
12 }
13
14 my $grep = "--grep=^p4raw-id:.*\@$change\$";
15 @ARGV = grep { defined } @ARGV;
16
17 if ( -t STDOUT or @ARGV ) {
18         system(qw(git log), $grep, "-$num", "--all", @ARGV);
19 }
20 else {
21         system(qw(git rev-list -1 --all), $grep);
22 }