]> 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:

Add -p switch, that makes mr search the current directory and its parents for a ...
authorJoey Hess <joey@gnu.kitenet.net>
Fri, 7 Aug 2009 02:14:22 +0000 (22:14 -0400)
committerJoey Hess <joey@gnu.kitenet.net>
Fri, 7 Aug 2009 02:14:22 +0000 (22:14 -0400)
debian/changelog
debian/control
mr

index 70ebe43c6e8d07284cf7028e9c2fa3ba38db107d..32958faaa2fdb39de87f3faedb1a44e1950f5e67 100644 (file)
@@ -1,3 +1,12 @@
+mr (0.41) UNRELEASED; urgency=low
+
+  * Add -p switch, that makes mr search the current directory and its
+    parents for a .mrconfig file to use. Useful for projects that want
+    to publish a mrconfig file to use to check out their several repositories,
+    without requiring users put it anywhere in particular.
+
+ -- Joey Hess <joeyh@debian.org>  Thu, 06 Aug 2009 22:13:05 -0400
+
 mr (0.40) unstable; urgency=low
 
   * Pass --pull to bzr merge to avoid needing to commit
index 95eb8019608c5c204bbe1a92338ba3e613348b36..36f51bfa631462760ef9f248377b66b29a492057 100644 (file)
@@ -1,5 +1,5 @@
 Source: mr
-Section: utils
+Section: vcs
 Priority: optional
 Build-Depends: debhelper (>= 7), dpkg-dev (>= 1.9.0)
 Maintainer: Joey Hess <joeyh@debian.org>
@@ -9,7 +9,7 @@ Vcs-Git: git://git.kitenet.net/mr
 
 Package: mr
 Architecture: all
-Section: utils
+Section: vcs
 Depends: ${misc:Depends}
 Suggests: subversion, git-core, cvs, bzr, mercurial, darcs, liburi-perl
 Recommends: libwww-perl, libhtml-parser-perl
diff --git a/mr b/mr
index a897a5fdde3f3d87158bd05d962d72ac79c131a2..4dbaa7a6a3e1969e01c65b2e7a5ba050c20f970d 100755 (executable)
--- a/mr
+++ b/mr
@@ -179,6 +179,11 @@ the current working directory.
 
 Use the specified mrconfig file. The default is B<~/.mrconfig>
 
+=item -p
+
+Search in the current directory, and its parent directories and use
+the first B<.mrconfig> found, instead of the default B<~/.mrconfig>.
+
 =item -v
 
 Be verbose.
@@ -1147,12 +1152,24 @@ sub expandaction {
        return $action;
 }
 
+sub find_nearest_mrconfig {
+       my $dir=getcwd();
+       while (length $dir) {
+               if (-e "$dir/.mrconfig") {
+                       return "$dir/.mrconfig";
+               }
+               $dir=~s/\/[^\/]*$//;
+       }
+       die "no .mrconfig found in path\n";
+}
+
 sub getopts {
        my @saved=@ARGV;
        Getopt::Long::Configure("bundling", "no_permute");
        my $result=GetOptions(
                "d|directory=s" => sub { $directory=abs_path($_[1]) },
                "c|config=s" => sub { $ENV{MR_CONFIG}=$_[1]; $config_overridden=1 },
+               "p|path" => sub { $ENV{MR_CONFIG}=find_nearest_mrconfig(); $config_overridden=1 },
                "v|verbose" => \$verbose,
                "q|quiet" => \$quiet,
                "s|stats" => \$stats,