#!/usr/bin/env perl # ts=4 # do the hard work for an MFC # last update 2012-05-30 use strict; use warnings; use File::Basename; my $prog = basename($0); my ($rev, $remoterepo, $revdir, $localdir, $localrepo); my ($log, $mrgd, $info, $stat, $minf, $diff); my $reportdir = '/tmp'; sub usage { print $#ARGV; print <', $fname) or die $!; print $fh "merging r$rev of $remoterepo\n"; print $fh " to $localdir\n\n"; # print $fh $break; # print $fh "svn merge -c $rev $remoterepo $localrepo\n"; # print $fh $mrgd, "\n\n"; print $fh $break; print $fh "% svn info $localrepo\n"; print $fh $info, "\n\n"; print $fh $break; print $fh "% svn stat $localrepo\n"; print $fh $stat, "\n\n"; print $fh $break; print $fh "% svn propget -R svn:mergeinfo $localrepo\n"; print $fh $minf, "\n\n"; print $fh $break; print $fh "% svn diff $localrepo\n"; print $fh $diff, "\n\n"; print $fh $break; print $fh "to commit:\n\n"; print $fh " % svn commit $localrepo\n\n\n"; print $fh $break; print $fh "% svn log -r$rev $remoterepo\n"; print $fh "(commit message)\n\n"; print $fh "MFC r$rev\n\n"; print $fh $log; close $fh or die $!; } sub collectinfo { print "collecting information\n"; $log = `svn log -r$rev $remoterepo`; $log =~ s/^.*\n.*\n.*\n//; # remove first three lines of svn log $info = `svn info $localrepo`; $stat = `svn stat $localrepo`; $minf = `svn propget -R svn:mergeinfo $localrepo`; $diff = `svn diff $localrepo`; } sub showinfo { print "local merge complete\n"; print "to commit:\n\n"; print " svn commit $localrepo\n\n"; print "commit message:\n\n"; print "MFC r$rev:\n\n"; print "$log"; } # main getcmdline; precheck; mergeit; collectinfo; writereport; showinfo;