X-Git-Url: https://git.madduck.net/code/myrepos.git/blobdiff_plain/157203e8c58b608b328d55ba8dcbcfe791c847f5..4f6dbb4fb3f744397618026f52b605eeb395e91d:/mr?ds=inline diff --git a/mr b/mr index a4469e9..8cfe013 100755 --- a/mr +++ b/mr @@ -161,11 +161,15 @@ If a number is specified, will recurse into repositories at most that many subdirectories deep. For example, with -n 2 it would recurse into ./src/foo, but not ./src/packages/bar. -=item -j number +=item -j [number] -Run the specified number of jobs in parallel. This can greatly speed up -operations such as updates. It is not recommended for interactive -operations. +Run the specified number of jobs in parallel, or an unlimited number of jobs +with no number specified. This can greatly speed up operations such as updates. +It is not recommended for interactive operations. + +Note that running more than 10 jobs at a time is likely to run afoul of +ssh connection limits. Running between 3 and 5 jobs at a time will yeild +a good speedup in updates without loading the machine too much. =back @@ -510,7 +514,7 @@ sub mrs { #{{{ my @out; my $running=0; while (@fhs or @repos) { - while ($running < $jobs && @repos) { + while ((!$jobs || $running < $jobs) && @repos) { $running++; my $repo = shift @repos; pipe(my $outfh, CHILD_STDOUT); @@ -928,7 +932,7 @@ sub dispatch { #{{{ register(@ARGV); } - if ($jobs > 1) { + if (!$jobs || $jobs > 1) { mrs($action, selectrepos()); } else { @@ -1052,7 +1056,7 @@ sub getopts { #{{{ "v|verbose" => \$verbose, "s|stats" => \$stats, "n|no-recurse:i" => \$max_depth, - "j|jobs=i" => \$jobs, + "j|jobs:i" => \$jobs, ); if (! $result || @ARGV < 1) { die("Usage: mr [-d directory] action [params ...]\n".