},
'force-manifest', 'force-regen', 'test-build', 'validate',
'all-fixups', 'early-fixup=s@', 'late-fixup=s@', 'valgrind',
- 'check-args', 'check-shebang!', 'usage|help|?', 'A=s@',
+ 'check-args', 'check-shebang!', 'usage|help|?', 'gold=s',
+ 'A=s@',
'D=s@' => sub {
my (undef, $val) = @_;
if ($val =~ /\A([^=]+)=(.*)/s) {
=item *
+--gold
+
+Revision to use when checking out known-good recent versions of files,
+such as F<makedepend.SH>. F<bisect-runner.pl> defaults this to I<blead>,
+but F<bisect.pl> will default it to the most recent stable release.
+
+=item *
+
--usage
=item *
sub checkout_file {
my ($file, $commit) = @_;
- $commit ||= 'blead';
+ $commit ||= $options{gold} || 'blead';
system "git show $commit:$file > $file </dev/null"
and die_255("Could not extract $file at revision $commit");
}
# Which isn't what we want.
use Getopt::Long qw(:config pass_through no_auto_abbrev);
-my ($start, $end, $validate, $usage, $bad, $jobs, $make);
+my ($start, $end, $validate, $usage, $bad, $jobs, $make, $gold);
$bad = !GetOptions('start=s' => \$start, 'end=s' => \$end,
- 'jobs|j=i' => \$jobs, 'make=s' => \$make,
+ 'jobs|j=i' => \$jobs, 'make=s' => \$make, 'gold=s' => \$gold,
validate => \$validate, 'usage|help|?' => \$usage);
unshift @ARGV, '--help' if $bad || $usage;
unshift @ARGV, '--validate' if $validate;
}
}
+unshift @ARGV, '--gold', defined $gold ? $gold : $stable[-1];
+
$end = 'blead' unless defined $end;
# Canonicalising branches to revisions before moving the checkout permits one