From: Joey Hess Date: Thu, 18 Oct 2007 21:30:44 +0000 (-0400) Subject: Merge branch 'master' into mrconfig_bestguess X-Git-Url: https://git.madduck.net/code/myrepos.git/commitdiff_plain/4c155e72e66ff5d1122b4c9f583514725308ad04?hp=0b92463c6a828645b635f2db5e9085337431bfa7 Merge branch 'master' into mrconfig_bestguess --- diff --git a/debian/changelog b/debian/changelog index 800c8cc..5122cb3 100644 --- a/debian/changelog +++ b/debian/changelog @@ -9,8 +9,9 @@ mr (0.4) UNRELEASED; urgency=low * Add the -n switch, for disabling recursion. * Allow for more complex deleted tests, such as marking a repo deleted on some hosts, while not on others. + * Support registering CVS repositories. Closes: #447171 - -- Joey Hess Thu, 18 Oct 2007 15:39:03 -0400 + -- Joey Hess Thu, 18 Oct 2007 16:20:34 -0400 mr (0.3) unstable; urgency=low diff --git a/mr b/mr index 14f4165..19c29aa 100755 --- a/mr +++ b/mr @@ -276,7 +276,7 @@ my %alias; Getopt::Long::Configure("no_permute"); my $result=GetOptions( "d|directory=s" => sub { $directory=abs_path($_[1]) }, - "c|config=s" => sub { $ENV{MR_CONFIG}=abs_path($_[1]) }, + "c|config=s" => \$ENV{MR_CONFIG}, "v|verbose" => \$verbose, "s|stats" => \$stats, "n|no-recurse" => \$no_recurse, @@ -287,6 +287,13 @@ if (! $result || @ARGV < 1) { } +# Make sure MR_CONFIG is an absolute path, but don't use abs_path since +# the config file might be a symlink to elsewhere, and the directory it's +# in is significant. +if ($ENV{MR_CONFIG} !~ /^\//) { + $ENV{MR_CONFIG}=getcwd()."/".$ENV{MR_CONFIG}; +} + loadconfig(\*DATA); loadconfig($ENV{MR_CONFIG}); #use Data::Dumper; @@ -329,6 +336,8 @@ elsif ($action eq 'config') { if ($section=~/^\//) { # try to convert to a path relative to the config file my ($dir)=$ENV{MR_CONFIG}=~/^(.*\/)[^\/]+$/; + $dir=abs_path($dir); + $dir.="/" unless $dir=~/\/$/; if ($section=~/^\Q$dir\E(.*)/) { $section=$1; } @@ -895,6 +904,15 @@ register = fi echo "Registering bzr url: $url in $MR_CONFIG" mr -c "$MR_CONFIG" config "$(pwd)" checkout="bzr clone $url $basedir" + elif [ -d CVS ]; then + repo=$(cat CVS/Repository) + root=$(cat CVS/Root) + if [ -z "$root" ]; then + error "cannot determine cvs root" + fi + echo "Registering cvs repository $repo at root $root" + mr -c "$MR_CONFIG" config "$(pwd)" \ + checkout="cvs -d '$root' co -d $basedir $repo" else error "unable to register this repo type" fi