setup: fix typo forgetting brackets introduced in 5c1d4311440d
Optimize get_git_author

Pre-compile regular expression. Prevent extra key lookup in author_map.
Precompile Git URI regular expression
Precompile Git username sanitizing regular expression
Precompile Git author extra data regular expression
Precompile Git progress regular expressions
Precompile author file regular expression
Verify tree and parent objects are in Git repo

When exporting Git commits, verify that the tree and parents objects
exist in the repository before allowing the commit to be exported. If a
tree or parent commit is missing, then the repository is not valid and
the export should not be allowed.
outgoing: don't delete remote refs

There was a bug introduced in 8c1f2b07c04b such that calling hg outgoing on
a Git repository would result in all refs being deleted from the remote
repository (with the possible exception of the currently checked out branch).
It wasn't noticed before because the existing test for outgoing didn't actually
verify the refs on the remote.  This changeset fixes the bug, as well as adding
test coverage to allow verifying that the fix works.
docs: include buglink

Mercurial has support for including a link to an issue tracker when it detects
that an extension has broken.  This change includes the appropriate attribute
in the extension, pointing it at the issue tracker for the main BitBucket repo.
docs: include testedwith

Mercurial has support for including information about the tested versions of
Mercurial for an extension when it detects that an extension has broken.  This
change includes the appropriate attribute in the extension.
tests: fix test-subrepos.t sporadically failing

I was seeing sporadic failures running this test on Mac OS X 10.8.
They looked like this:
+  sed: 1: "s_/private/var/folders/ ...": bad flag in substitute command: 'T'

My assumption is that some character was being included in the path of the
temporary directory that sed didn't like.  It looks like the sed function was
being used to eliminate differences between test runs due to the path changing
each run.  That isn't needed any more now that we're using the unified test
format, since said replacement is taken care of for us by run-tests.py.  Thus,
this changeset removes the calls to sed and updates the output to use the result
from the framework-level replacement.
tests: add coverage for bookmark workflow comparison; cloning
tests: add coverage for outgoing with no changes
push: change "no changes" default output to match normal mercurial

The output for "hg push" when there were no changes didn't quite match between
Mercurial with and without Hg-Git, so I changed the behavior to bring it into
synch.  The existing "creating and sending data" message was changed to be
included if --verbose is specified.
tests: add workflow coverage for push with no changes

test-bookmark-workflow.t now skips all Mercurial versions below 2.1, as the
return code is different, and it's more important for this test to accurately
show that we match the behavior of current Mercurial than that all versions
behave the same.
git_handler: lazy-load mapping

Loading the mapping was costing about half a second for a user on IRC
on the pidgin repo. There's no reason to load this data aggressively.

--HG--
extra : transplant_source : %22%20%00%0Bc%E58%3A%0A%CF%EFg%2C9%90%B2%EC%A3o%B1
Merge
git_handler: replace with-statement with try-finally

Python 2.4 does not have a with-statement
push: fix traceback when pushing empty hg repo to empty git repo (issue #58)

In the logic that was attempting to handle the case where the local repo doesn't
have any bookmarks, the assumption was being made that tip resolved to a
non-null revision.  In the case of a totally empty local repo, however, that
isn't a valid assumption, and resulted in attempting to set the master ref
to None, which broke dulwich.

The "fix", which avoids the traceback and allows the push to complete (though
still do nothing, since in this case there aren't any changes to push), is to
not tweak the refs at all if tip is nullid.  Leaving the special capabilities
ref and not adding a master ref appears to be fine in this case.