|
@@ -133,6 +133,7 @@ my %VCS_cmds_git = (
|
|
|
"author_pattern" => "^GitAuthor: (.*)",
|
|
|
"subject_pattern" => "^GitSubject: (.*)",
|
|
|
"stat_pattern" => "^(\\d+)\\t(\\d+)\\t\$file\$",
|
|
|
+ "file_exists_cmd" => "git ls-files \$file",
|
|
|
);
|
|
|
|
|
|
my %VCS_cmds_hg = (
|
|
@@ -161,6 +162,7 @@ my %VCS_cmds_hg = (
|
|
|
"author_pattern" => "^HgAuthor: (.*)",
|
|
|
"subject_pattern" => "^HgSubject: (.*)",
|
|
|
"stat_pattern" => "^(\\d+)\t(\\d+)\t\$file\$",
|
|
|
+ "file_exists_cmd" => "hg files \$file",
|
|
|
);
|
|
|
|
|
|
my $conf = which_conf(".get_maintainer.conf");
|
|
@@ -430,7 +432,7 @@ foreach my $file (@ARGV) {
|
|
|
die "$P: file '${file}' not found\n";
|
|
|
}
|
|
|
}
|
|
|
- if ($from_filename) {
|
|
|
+ if ($from_filename || vcs_file_exists($file)) {
|
|
|
$file =~ s/^\Q${cur_path}\E//; #strip any absolute path
|
|
|
$file =~ s/^\Q${lk_path}\E//; #or the path to the lk tree
|
|
|
push(@files, $file);
|
|
@@ -2124,6 +2126,22 @@ sub vcs_file_blame {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+sub vcs_file_exists {
|
|
|
+ my ($file) = @_;
|
|
|
+
|
|
|
+ my $exists;
|
|
|
+
|
|
|
+ my $vcs_used = vcs_exists();
|
|
|
+ return 0 if (!$vcs_used);
|
|
|
+
|
|
|
+ my $cmd = $VCS_cmds{"file_exists_cmd"};
|
|
|
+ $cmd =~ s/(\$\w+)/$1/eeg; # interpolate $cmd
|
|
|
+
|
|
|
+ $exists = &{$VCS_cmds{"execute_cmd"}}($cmd);
|
|
|
+
|
|
|
+ return $exists;
|
|
|
+}
|
|
|
+
|
|
|
sub uniq {
|
|
|
my (@parms) = @_;
|
|
|
|