convert: use a collections.deque
This function was doing a list.pop(0) on a list whose length
was the number of revisions to convert. Popping an early element
from long lists is not an efficient operation.
collections.deque supports efficient inserts and pops at both
ends. So we switch to that data structure.
When converting the mozilla-unified repository, which has 445,748
revisions, this change makes the "sorting..." step of
`hg convert --sourcesort` significantly faster:
before: ~59.2s
after: ~1.3s
Differential Revision: https://phab.mercurial-scm.org/D1934
Mercurial's documentation is kept in reStructuredText format, which is
a simple plain text format that's easy to read and edit:
http://docutils.sourceforge.net/rst.html
It's also convertible to a variety of other formats including standard
UNIX man page format and HTML. You'll need to install Docutils:
http://docutils.sourceforge.net/
Use the Makefile in this directory to generate the man and HTML pages.