add warning when ref supplied for R rule

thanks to Tom Robinson; see
https://groups.google.com/d/msg/gitolite/nz-vdyVVSkg/bT6FeBOdPgoJ
minor backward compat breakage in specifying owner/desc,

see https://groups.google.com/forum/#!topic/gitolite/uyoHYZ1Oyvg
mirroring: allow 'nosync' option for slaves

(people who look at the *code* will realise there's also a 'sync' option!)

diff --git c/src/lib/Gitolite/Triggers/Mirroring.pm i/src/lib/Gitolite/Triggers/Mirroring.pm
index 014408d..7d55692 100644
--- c/src/lib/Gitolite/Triggers/Mirroring.pm
+++ i/src/lib/Gitolite/Triggers/Mirroring.pm
@@ -189,8 +189,17 @@ sub post_git {
     }

     sub slaves {
-        my $ref = git_config( +shift, "^gitolite-options\\.mirror\\.slaves.*" );
-        my %out = map { $_ => 1 } map { split } values %$ref;
+        my $repo = shift;
+
+        my $ref = git_config( $repo, "^gitolite-options\\.mirror\\.slaves.*" );
+        my %out = map { $_ => 'async' } map { split } values %$ref;
+
+        $ref = git_config( $repo, "^gitolite-options\\.mirror\\.slaves\\.sync.*" );
+        map { $out{$_} = 'sync' } map { split } values %$ref;
+
+        $ref = git_config( $repo, "^gitolite-options\\.mirror\\.slaves\\.nosync.*" );
+        map { $out{$_} = 'nosync' } map { split } values %$ref;
+
         return %out;
     }

@@ -222,7 +231,9 @@ sub push_to_slaves {
     delete $ENV{GL_USER};    # why?  see src/commands/mirror

     for my $s ( sort keys %slaves ) {
-        system("gitolite mirror push $s $repo </dev/null >/dev/null 2>&1 &");
+        system("gitolite mirror push $s $repo </dev/null >/dev/null 2>&1 &") if $slaves{$s} eq 'async';
+        system("gitolite mirror push $s $repo </dev/null >/dev/null 2>&1")   if $slaves{$s} eq 'sync';
+        _warn "manual mirror push pending for '$s'"                          if $slaves{$s} eq 'nosync';
     }

     $ENV{GL_USER} = $u;