(Almost) all extensions together in one place

Greg Ward greg at gerg.ca
Wed Mar 30 20:53:24 CDT 2011


[also available as http://hg.gerg.ca/allextensions/raw-file/tip/README.txt]

All Mercurial Extensions
========================

This project is a meta-repository that gathers together all known
Mercurial extensions that are not included with the latest version of
Mercurial, as listed in the Mercurial wiki.  It has two purposes:

  * make it easier to audit the universe of extensions for Mercurial
    developers proposing an API change: "if I make this change, how
    much pain will it cause for how many extension developers?"

  * give Mercurial developers a place to play around with subrepos

This project includes the following:

  * scrape, a script to parse the Mercurial wiki and find third-party
    extensions and their repo URLs
  * gather, a script that processes the output of scrape and creates
    new subrepos as needed
  * a subrepo for every extension currently known


Why is my extension missing?
----------------------------

The best way to get your extension listed is to make sure it is in the
Mercurial wiki, i.e. *all* of the following should be true:

  * it must be listed in

      http://mercurial.selenic.com/wiki/CategoryExtensionsByOthers

  * the link in that page must work

  * the extension page must contain a line like

      Repository: <http url>

    (Note that despite the name, `scrape` works by reading the source
    wiki markup, not by parsing the rendered HTML.)

  * the URL must be a cloneable Mercurial repository


Adding new extensions
---------------------

If you want to update allextensions by re-scraping the wiki:

  1. run ./scrape; this will write repo-urls.txt with the
     information it finds
  2. run ./gather; this will read repo-urls.txt, make new clones
     as needed and add lines to .hgsub

Neither scrape nor gather attempt to handle every conceivable
situation.  That would be hard.  scrape parses the wiki pages as best
it can and says when it's giving up.  gather also tries to report
various error scenarios and move on.


Contact
-------

allextensions was initially cobbled together by Greg Ward
(greg at gerg dot ca).  Contributions are welcome.  Hacks to make
'scrape' see more extensions are not welcome: the right fix is to make
the extension meet the above requirements.

The canonical repository URL for allextensions is:

  *to be determined* (selenic.com? bitbucket.org? other?)

For now, you can get it from

  http://hg.gerg.ca/allextensions


More information about the Mercurial-devel mailing list