Use threading to speed up git pulls
Add default values for include and exclude parameters in repos.conf

Signed-off-by: Konrad Scherer <Konrad.Scherer@windriver.com>
Add "git repack" support to grok-fsck

See issue #3 on github.
Don't complain about "no default references"
Explicitly set manpage section numbers

rst2man produces a blank section number in the generated man page's .TH
line, which confuses some tools. (E.g., Debian's dh_installman
interprets the date as the section number.) Explicitly set the manual
section in the RST source.

Signed-off-by: Robert S. Edmonds <edmonds@debian.org>
Signed-off-by: Konstantin Ryabitsev <mricon@kernel.org>
Check that required config file command line arguments are present

grok-fsck and grok-pull require specifying the path to a config file on
the command line. Generate an error message if the argument is not
present rather than a traceback:

edmonds@chase{0}:~$ grok-pull
Traceback (most recent call last):
  File "/usr/bin/grok-pull", line 630, in <module>
    ini.read(opts.config)
  File "/usr/lib/python2.7/ConfigParser.py", line 300, in read
    for filename in filenames:
TypeError: 'NoneType' object is not iterable
edmonds@chase{1}:~$

Signed-off-by: Robert S. Edmonds <edmonds@debian.org>
Signed-off-by: Konstantin Ryabitsev <mricon@kernel.org>
Merge pull request #2 from kscherer/default_values

Add default values for include and exclude parameters in repos.conf
Add timeout to manifest retrieval calls
Merge branch 'master' of github.com:mricon/grokmirror
Make 'ignore these strings returned by git-fsck' configurable

Fixes issue #7
Allow setting repack flags

Closes issue #6
Make pretty-printing the manifest configurable

Closes issue #5
Increment version to 0.3.5 in preparation for release
Get rid of the global lock

Previously, we always ensured that only one instance of grok-pull is
running, but this was causing intermittent problems. For example, if
there was a new large repository added, the entirety of the mirror would
stop updating while the new repository was cloned -- which could
sometimes take hours.

This change gets rid of that problem. Locks are now tracked
per-repository and there should be sufficient heuristics in place to
ensure that we can still safely clone things while running updates in
another process.
More fixes to make no-global-lock work right

- Switch logic behind -r. Now it means the opposite, because otherwise
  there may be conditions where we stop updating repos due to multiple
  writers modifying manifest.
- Allow adjusting alternates from None to some other value. This is the
  only safe operation as far as alternates are concerned, since
  everything else would require a repack prior to operation. Might add
  that in later, but not right now.
Changes to documentation, and use safer repack flags
Don't try to fstat local manifest on initial run
Set version to 0.4.0-pre
Don't lock the world on initial run

On large amounts of repos (*cough* codeaurora *cough*), attempting to
lock 3500 entries will understandably fail with "too many open files."
This change only locks repos while we're trying to actually do something
with them.
Always use non-blocking locks