}
#print STDERR "VCS $item $upwards $try GO\n";
$try =~ m/\w+/ or die;
- return $v->_ch(('srcdump_byvcs_'.lc $&),
- $dumpdir, $upwards, $outfn);
+ return $v->_ch('srcdump_byvcs', $dumpdir, $upwards, $outfn, lc $&);
}
$upwards =~ s#/*[^/]+$##;
}
}
}
-sub srcdump_byvcs_git ($$$$$) {
- my ($c, $v, $dumpdir, $dir, $outfn) = @_;
+sub srcdump_byvcs ($$$$$$) {
+ my ($c, $v, $dumpdir, $dir, $outfn, $vcs) = @_;
#print STDERR "BYVCS GIT $dir\n";
- return srcdump_dir_cpio($c,$v,$dumpdir,$dir,$outfn,'git',"
- git ls-files -z
- git ls-files -z --others --exclude-from=.gitignore
- find .git -print0
- ");
+ return srcdump_dir_cpio($c,$v,$dumpdir,$dir,$outfn,$vcs,
+ $v->{S}{"srcdump_vcsscript_$vcs"});
}
sub srcdump_file ($$$$) {
die $!;
}
$!=0; (waitpid $pid, 0) == $pid or die "$!";
- die "$dir ($script) $outfile $?" if $?;
+ die "$dir ($how $script) $outfile $?" if $?;
}
sub srcdump_dirscan_prepare ($$) {
$_[2] =~ m#^/etc/|^/usr/(?!local/)(?!lib/cgi)#;
},
srcdump_process_item => \&srcdump_process_item,
- srcdump_vcs_dirs => [qw(.git .hg .svn CVS)],
- srcdump_byvcs_git => \&srcdump_byvcs_git,
- srcdump_byvcs_hg => \&srcdump_byvcs_hg,
- srcdump_byvcs_svn => \&srcdump_byvcs_svn,
- srcdump_byvcs_cvs => \&srcdump_byvcs_cvs,
+ srcdump_vcs_dirs => [qw(.git .hg .bzr .svn CVS)],
+ srcdump_vcsscript_git => "
+ git ls-files -z
+ git ls-files -z --others --exclude-from=.gitignore
+ find .git -print0
+ ",
+ srcdump_vcsscript_hg => "false hg",
+ srcdump_vcsscript_bzr => "false bzr",
+ srcdump_vcsscript_svn => "false svn",
+ srcdump_vcsscript_cvs => "false cvs",
+ srcdump_byvcs => \&srcdump_byvcs,
srcdump_novcs => \&srcdump_novcs,
srcdump_excludes => [qw(*~ *.bak *.tmp), '#*#'],
dump => \&dump_plain,