]> git.madduck.net Git - code/myrepos.git/commitdiff

madduck's git repository

Every one of the projects in this repository is available at the canonical URL git://git.madduck.net/madduck/pub/<projectpath> — see each project's metadata for the exact URL.

All patches and comments are welcome. Please squash your changes to logical commits before using git-format-patch and git-send-email to patches@git.madduck.net. If you'd read over the Git project's submission guidelines and adhered to them, I'd be especially grateful.

SSH access, as well as push access can be individually arranged.

If you use my repositories frequently, consider adding the following snippet to ~/.gitconfig and using the third clone URL listed for each project:

[url "git://git.madduck.net/madduck/"]
  insteadOf = madduck:

Merge branch 'master' into mrconfig_bestguess
authorJoey Hess <joey@kodama.kitenet.net>
Thu, 18 Oct 2007 21:30:44 +0000 (17:30 -0400)
committerJoey Hess <joey@kodama.kitenet.net>
Thu, 18 Oct 2007 21:30:44 +0000 (17:30 -0400)
debian/changelog
mr

index 800c8cccefb8b50a9b571624f527a0b4b904d67b..5122cb377d17f0e6d0fb2716fa49c5f77cadccbf 100644 (file)
@@ -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 <joeyh@debian.org>  Thu, 18 Oct 2007 15:39:03 -0400
+ -- Joey Hess <joeyh@debian.org>  Thu, 18 Oct 2007 16:20:34 -0400
 
 mr (0.3) unstable; urgency=low
 
diff --git a/mr b/mr
index 14f41656fee0844aac030602aea22c059e0ba0d2..19c29aa68f064595d5e4aa6c421ddbf383d0e4c1 100755 (executable)
--- 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