← Back to team overview

launchpad-reviewers team mailing list archive

[Merge] lp:~wallyworld/launchpad/die-hg-die into lp:launchpad

 

Ian Booth has proposed merging lp:~wallyworld/launchpad/die-hg-die into lp:launchpad.

Commit message:
Remove support for Mercurial code imports; fix code import ui bug.

Requested reviews:
  Launchpad code reviewers (launchpad-reviewers)
Related bugs:
  Bug #1021276 in Launchpad itself: "Branch url field disabled when returning to Bazaar repository type on request code import page"
  https://bugs.launchpad.net/launchpad/+bug/1021276
  Bug #1063510 in Launchpad itself: "Remove support for Mecurial imports"
  https://bugs.launchpad.net/launchpad/+bug/1063510

For more details, see:
https://code.launchpad.net/~wallyworld/launchpad/die-hg-die/+merge/128408

Mercurial imports are dead. Remove support for the functionality in Launchpad.

Take the earlier work by Jelmer and get rid of the bit rot.  

When doing some smoke tests, I found and fixes an existing bug related to the code imports page ui.
-- 
https://code.launchpad.net/~wallyworld/launchpad/die-hg-die/+merge/128408
Your team Launchpad code reviewers is requested to review the proposed merge of lp:~wallyworld/launchpad/die-hg-die into lp:launchpad.
=== modified file 'lib/lp/code/browser/branch.py'
--- lib/lp/code/browser/branch.py	2012-10-02 23:20:29 +0000
+++ lib/lp/code/browser/branch.py	2012-10-08 03:05:29 +0000
@@ -659,7 +659,7 @@
     @property
     def url_is_web(self):
         """True if an imported branch's URL is HTTP or HTTPS."""
-        # You should only be calling this if it's an SVN, BZR, GIT or HG code
+        # You should only be calling this if it's an SVN, BZR or GIT code
         # import
         assert self.context.code_import
         url = self.context.code_import.url

=== modified file 'lib/lp/code/browser/codeimport.py'
--- lib/lp/code/browser/codeimport.py	2012-10-02 23:20:29 +0000
+++ lib/lp/code/browser/codeimport.py	2012-10-08 03:05:29 +0000
@@ -244,18 +244,6 @@
         allow_fragment=False,
         trailing_slash=False)
 
-    hg_repo_url = URIField(
-        title=_("Repo URL"), required=False,
-        description=_(
-            "The URL of the Mercurial repository.  The tip branch will be "
-            "imported."),
-        allowed_schemes=["http", "https"],
-        allow_userinfo=True,
-        allow_port=True,
-        allow_query=False,     # Query makes no sense in Bazaar.
-        allow_fragment=False,  # Fragment makes no sense in Bazaar.
-        trailing_slash=False)  # See http://launchpad.net/bugs/56357.
-
     bzr_branch_url = URIField(
         title=_("Branch URL"), required=False,
         description=_("The URL of the Bazaar branch."),
@@ -342,20 +330,19 @@
         # display them separately in the form.
         soup = BeautifulSoup(self.widgets['rcs_type']())
         fields = soup.findAll('input')
-        [cvs_button, svn_button, git_button, hg_button, bzr_button,
+        [cvs_button, svn_button, git_button, bzr_button,
             empty_marker] = [
                 field for field in fields
                 if field.get('value') in [
-                     'CVS', 'BZR_SVN', 'GIT', 'HG', 'BZR', '1']]
+                     'CVS', 'BZR_SVN', 'GIT', 'BZR', '1']]
+        bzr_button['onclick'] = 'updateWidgets()'
         cvs_button['onclick'] = 'updateWidgets()'
         svn_button['onclick'] = 'updateWidgets()'
         git_button['onclick'] = 'updateWidgets()'
-        hg_button['onclick'] = 'updateWidgets()'
         # The following attributes are used only in the page template.
         self.rcs_type_cvs = str(cvs_button)
         self.rcs_type_svn = str(svn_button)
         self.rcs_type_git = str(git_button)
-        self.rcs_type_hg = str(hg_button)
         self.rcs_type_bzr = str(bzr_button)
         self.rcs_type_emptymarker = str(empty_marker)
 
@@ -368,8 +355,6 @@
             return None, None, data.get('svn_branch_url')
         elif rcs_type == RevisionControlSystems.GIT:
             return None, None, data.get('git_repo_url')
-        elif rcs_type == RevisionControlSystems.HG:
-            return None, None, data.get('hg_repo_url')
         elif rcs_type == RevisionControlSystems.BZR:
             return None, None, data.get('bzr_branch_url')
         else:
@@ -461,9 +446,6 @@
         elif rcs_type == RevisionControlSystems.GIT:
             self._validateURL(
                 data.get('git_repo_url'), field_name='git_repo_url')
-        elif rcs_type == RevisionControlSystems.HG:
-            self._validateURL(
-                data.get('hg_repo_url'), field_name='hg_repo_url')
         elif rcs_type == RevisionControlSystems.BZR:
             self._validateURL(
                 data.get('bzr_branch_url'), field_name='bzr_branch_url')
@@ -561,7 +543,6 @@
         elif self.code_import.rcs_type in (RevisionControlSystems.SVN,
                                            RevisionControlSystems.BZR_SVN,
                                            RevisionControlSystems.GIT,
-                                           RevisionControlSystems.HG,
                                            RevisionControlSystems.BZR):
             self.form_fields = self.form_fields.omit(
                 'cvs_root', 'cvs_module')
@@ -597,7 +578,6 @@
         elif self.code_import.rcs_type in (RevisionControlSystems.SVN,
                                            RevisionControlSystems.BZR_SVN,
                                            RevisionControlSystems.GIT,
-                                           RevisionControlSystems.HG,
                                            RevisionControlSystems.BZR):
             self._validateURL(data.get('url'), self.code_import)
         else:

=== modified file 'lib/lp/code/doc/codeimport-event.txt'
--- lib/lp/code/doc/codeimport-event.txt	2011-12-24 17:49:30 +0000
+++ lib/lp/code/doc/codeimport-event.txt	2012-10-08 03:05:29 +0000
@@ -163,20 +163,6 @@
     UPDATE_INTERVAL None
     URL u'git://git.example.org/main.git'
 
-And for a Mercurial import, the hg details are recorded.
-
-    >>> hg_import = factory.makeCodeImport(
-    ...     hg_repo_url='http://hg.example.org/main')
-    >>> hg_create_event = event_set.newCreate(hg_import, nopriv)
-    >>> print_items(hg_create_event)
-    CODE_IMPORT <muted>
-    OWNER ...
-    REVIEW_STATUS u'REVIEWED'
-    ASSIGNEE None
-    UPDATE_INTERVAL None
-    URL u'http://hg.example.org/main'
-
-
 MODIFY
 ------
 

=== modified file 'lib/lp/code/doc/codeimport.txt'
--- lib/lp/code/doc/codeimport.txt	2011-12-29 05:29:36 +0000
+++ lib/lp/code/doc/codeimport.txt	2012-10-08 03:05:29 +0000
@@ -61,7 +61,6 @@
     Subversion via CSCVS
     Subversion via bzr-svn
     Git
-    Mercurial
     Bazaar
 
 
@@ -203,34 +202,6 @@
     >>> git_import == existing_import
     True
 
-Import from Mercurial
-+++++++++++++++++++++
-
-Code imports from Mercurial specify the URL used with "hg clone" to
-retrieve the branch to import.
-
-    >>> hg = RevisionControlSystems.HG
-    >>> hg_url = 'http://hg.example.com/metallic'
-    >>> hg_import = code_import_set.new(
-    ...     registrant=nopriv, target=target, branch_name='trunk-hg',
-    ...     rcs_type=hg, url=hg_url)
-    >>> verifyObject(ICodeImport, removeSecurityProxy(hg_import))
-    True
-
-Creating a CodeImport object creates a corresponding CodeImportEvent.
-
-    >>> hg_events = event_set.getEventsForCodeImport(hg_import)
-    >>> [event.event_type.name for event in hg_events]
-    ['CREATE']
-
-The CodeImportSet is also able to retrieve the code imports with the
-specified hg repo url.
-
-    >>> existing_import = code_import_set.getByURL(url=hg_url)
-    >>> hg_import == existing_import
-    True
-
-
 Updating code import details
 ----------------------------
 
@@ -345,8 +316,6 @@
     ...     seconds=config.codeimport.default_interval_subversion)
     >>> default_interval_git = timedelta(
     ...     seconds=config.codeimport.default_interval_git)
-    >>> default_interval_hg = timedelta(
-    ...     seconds=config.codeimport.default_interval_hg)
 
 By default, code imports are created with an unspecified update interval.
 
@@ -376,11 +345,6 @@
     >>> git_import.effective_update_interval
     datetime.timedelta(0, 21600)
 
-    >>> default_interval_hg
-    datetime.timedelta(0, 21600)
-    >>> hg_import.effective_update_interval
-    datetime.timedelta(0, 21600)
-
 
 If the update interval is set, then it overrides the default value.
 
@@ -557,17 +521,6 @@
     instead of:
         svn://svn.example.com/for-bzr-svn/trunk
 
-And for Mercurial.
-
-    >>> data = {'url': 'http://metal.example.com/byebye.hg'}
-    >>> modify_event = hg_import.updateFromData(data, nopriv)
-    >>> print make_email_body_for_code_import_update(
-    ...     hg_import, modify_event, None)
-    ~import-person/widget/trunk-hg is now being imported from:
-        http://metal.example.com/byebye.hg
-    instead of:
-        http://hg.example.com/metallic
-
 In addition, updateFromData can be used to set the branch whiteboard,
 which is also described in the email that is sent.
 

=== modified file 'lib/lp/code/enums.py'
--- lib/lp/code/enums.py	2011-09-13 10:07:59 +0000
+++ lib/lp/code/enums.py	2012-10-08 03:05:29 +0000
@@ -374,7 +374,7 @@
     HG = DBItem(5, """
         Mercurial
 
-        Imports from Mercurial using bzr-hg.
+        Imports from Mercurial using bzr-hg. (no longer supported)
         """)
 
     BZR = DBItem(6, """

=== modified file 'lib/lp/code/mail/codeimport.py'
--- lib/lp/code/mail/codeimport.py	2012-01-01 02:58:52 +0000
+++ lib/lp/code/mail/codeimport.py	2012-10-08 03:05:29 +0000
@@ -50,7 +50,6 @@
         RevisionControlSystems.SVN: 'subversion',
         RevisionControlSystems.BZR_SVN: 'subversion',
         RevisionControlSystems.GIT: 'git',
-        RevisionControlSystems.HG: 'mercurial',
         RevisionControlSystems.BZR: 'bazaar',
         }
     body = get_email_template('new-code-import.txt', app='code') % {
@@ -124,7 +123,6 @@
     elif code_import.rcs_type in (RevisionControlSystems.SVN,
                                   RevisionControlSystems.BZR_SVN,
                                   RevisionControlSystems.GIT,
-                                  RevisionControlSystems.HG,
                                   RevisionControlSystems.BZR):
         if CodeImportEventDataType.OLD_URL in event_data:
             old_url = event_data[CodeImportEventDataType.OLD_URL]

=== modified file 'lib/lp/code/mail/tests/test_codeimport.py'
--- lib/lp/code/mail/tests/test_codeimport.py	2012-01-01 02:58:52 +0000
+++ lib/lp/code/mail/tests/test_codeimport.py	2012-10-08 03:05:29 +0000
@@ -90,29 +90,6 @@
             '-- \nYou are getting this email because you are a member of the '
             'vcs-imports team.\n', msg.get_payload(decode=True))
 
-    def test_hg_import(self):
-        # Test the email for a new hg import.
-        eric = self.factory.makePerson(name='eric')
-        fooix = self.factory.makeProduct(name='fooix')
-        # Eric needs to be logged in for the mail to be sent.
-        login_person(eric)
-        code_import = self.factory.makeProductCodeImport(
-            hg_repo_url='http://hg.example.com/fooix.hg',
-            branch_name='master', product=fooix, registrant=eric)
-        transaction.commit()
-        msg = message_from_string(stub.test_emails[0][2])
-        self.assertEqual('code-import', msg['X-Launchpad-Notification-Type'])
-        self.assertEqual('~eric/fooix/master', msg['X-Launchpad-Branch'])
-        self.assertEqual(
-            'A new mercurial code import has been requested '
-            'by Eric:\n'
-            '    http://code.launchpad.dev/~eric/fooix/master\n'
-            'from\n'
-            '    http://hg.example.com/fooix.hg\n'
-            '\n'
-            '-- \nYou are getting this email because you are a member of the '
-            'vcs-imports team.\n', msg.get_payload(decode=True))
-
     def test_new_source_package_import(self):
         # Test the email for a new sourcepackage import.
         eric = self.factory.makePerson(name='eric')
@@ -124,7 +101,7 @@
         # Eric needs to be logged in for the mail to be sent.
         login_person(eric)
         code_import = self.factory.makePackageCodeImport(
-            hg_repo_url='http://hg.example.com/fooix.hg',
+            git_repo_url='http://hg.example.com/fooix.hg',
             branch_name='master', sourcepackage=fooix, registrant=eric)
         transaction.commit()
         msg = message_from_string(stub.test_emails[0][2])
@@ -132,7 +109,7 @@
         self.assertEqual(
             '~eric/foobuntu/manic/fooix/master', msg['X-Launchpad-Branch'])
         self.assertEqual(
-            'A new mercurial code import has been requested '
+            'A new Git code import has been requested '
             'by Eric:\n'
             '    http://code.launchpad.dev/~eric/foobuntu/manic/fooix/master\n'
             'from\n'

=== modified file 'lib/lp/code/model/codeimport.py'
--- lib/lp/code/model/codeimport.py	2012-10-02 23:20:29 +0000
+++ lib/lp/code/model/codeimport.py	2012-10-08 03:05:29 +0000
@@ -112,8 +112,6 @@
                 config.codeimport.default_interval_subversion,
             RevisionControlSystems.GIT:
                 config.codeimport.default_interval_git,
-            RevisionControlSystems.HG:
-                config.codeimport.default_interval_hg,
             RevisionControlSystems.BZR:
                 config.codeimport.default_interval_bzr,
             }
@@ -133,7 +131,6 @@
             RevisionControlSystems.SVN,
             RevisionControlSystems.GIT,
             RevisionControlSystems.BZR_SVN,
-            RevisionControlSystems.HG,
             RevisionControlSystems.BZR):
             return self.url
         else:
@@ -247,7 +244,6 @@
         elif rcs_type in (RevisionControlSystems.SVN,
                           RevisionControlSystems.BZR_SVN,
                           RevisionControlSystems.GIT,
-                          RevisionControlSystems.HG,
                           RevisionControlSystems.BZR):
             assert cvs_root is None and cvs_module is None
             assert url is not None

=== modified file 'lib/lp/code/model/codeimportevent.py'
--- lib/lp/code/model/codeimportevent.py	2011-12-30 06:14:56 +0000
+++ lib/lp/code/model/codeimportevent.py	2012-10-08 03:05:29 +0000
@@ -272,7 +272,6 @@
         if code_import.rcs_type in (RevisionControlSystems.SVN,
                                     RevisionControlSystems.BZR_SVN,
                                     RevisionControlSystems.GIT,
-                                    RevisionControlSystems.HG,
                                     RevisionControlSystems.BZR):
             yield 'URL', code_import.url
         elif code_import.rcs_type == RevisionControlSystems.CVS:

=== modified file 'lib/lp/code/model/tests/test_codeimport.py'
--- lib/lp/code/model/tests/test_codeimport.py	2012-01-01 02:58:52 +0000
+++ lib/lp/code/model/tests/test_codeimport.py	2012-10-08 03:05:29 +0000
@@ -131,21 +131,6 @@
         # A job is created for the import.
         self.assertIsNot(None, code_import.import_job)
 
-    def test_hg_import_reviewed(self):
-        """A new hg import is always reviewed by default."""
-        code_import = CodeImportSet().new(
-            registrant=self.factory.makePerson(),
-            target=IBranchTarget(self.factory.makeProduct()),
-            branch_name='imported',
-            rcs_type=RevisionControlSystems.HG,
-            url=self.factory.getUniqueURL(),
-            review_status=None)
-        self.assertEqual(
-            CodeImportReviewStatus.REVIEWED,
-            code_import.review_status)
-        # A job is created for the import.
-        self.assertIsNot(None, code_import.import_job)
-
     def test_bzr_import_reviewed(self):
         """A new bzr import is always reviewed by default."""
         code_import = CodeImportSet().new(
@@ -168,7 +153,7 @@
             registrant=registrant,
             target=IBranchTarget(registrant),
             branch_name='imported',
-            rcs_type=RevisionControlSystems.HG,
+            rcs_type=RevisionControlSystems.GIT,
             url=self.factory.getUniqueURL(),
             review_status=None)
 
@@ -181,7 +166,7 @@
             registrant=registrant,
             target=target,
             branch_name='imported',
-            rcs_type=RevisionControlSystems.HG,
+            rcs_type=RevisionControlSystems.GIT,
             url=self.factory.getUniqueURL(),
             review_status=None)
         code_import = removeSecurityProxy(code_import)
@@ -203,7 +188,7 @@
             registrant=registrant,
             target=target,
             branch_name='imported',
-            rcs_type=RevisionControlSystems.HG,
+            rcs_type=RevisionControlSystems.GIT,
             url=self.factory.getUniqueURL(),
             review_status=None, owner=owner)
         code_import = removeSecurityProxy(code_import)
@@ -227,7 +212,7 @@
             registrant=registrant,
             target=target,
             branch_name='imported',
-            rcs_type=RevisionControlSystems.HG,
+            rcs_type=RevisionControlSystems.GIT,
             url=self.factory.getUniqueURL(),
             review_status=None, owner=owner)
 

=== modified file 'lib/lp/code/stories/branches/xx-product-branches.txt'
--- lib/lp/code/stories/branches/xx-product-branches.txt	2012-10-02 20:01:11 +0000
+++ lib/lp/code/stories/branches/xx-product-branches.txt	2012-10-08 03:05:29 +0000
@@ -49,7 +49,7 @@
       by registering a Mirrored branch. Read more.
     Launchpad can also act as a primary location for Bazaar branches of
       Gnome Applets. Read more.
-    Launchpad can import code from CVS, Subversion, Mercurial or Git
+    Launchpad can import code from CVS, Subversion or Git
       into Bazaar branches. Read more...
 
 The 'Help' links go to the help wiki.

=== modified file 'lib/lp/code/stories/codeimport/xx-admin-codeimport.txt'
--- lib/lp/code/stories/codeimport/xx-admin-codeimport.txt	2011-12-24 17:49:30 +0000
+++ lib/lp/code/stories/codeimport/xx-admin-codeimport.txt	2012-10-08 03:05:29 +0000
@@ -33,13 +33,8 @@
     >>> git_import_location = str(canonical_url(git_import.branch))
     >>> git_import_branch_unique_name = git_import.branch.unique_name
 
-    >>> hg_import = factory.makeProductCodeImport(
-    ...     hg_repo_url="http://hg.example.org/bar";)
-    >>> hg_import_location = str(canonical_url(hg_import.branch))
-    >>> hg_import_branch_unique_name = hg_import.branch.unique_name
-
     >>> package_import = factory.makePackageCodeImport(
-    ...     hg_repo_url="http://hg.example.org/zap";)
+    ...     git_repo_url="http://git.example.org/zap";)
     >>> package_import_location = str(canonical_url(package_import.branch))
     >>> package_import_branch_unique_name = package_import.branch.unique_name
 
@@ -110,15 +105,10 @@
     >>> print_form_fields(import_browser)
     field.url: git://git.example.org/fooix
 
-    >>> import_browser.open(hg_import_location)
-    >>> import_browser.getLink('Edit import source or review import').click()
-    >>> print_form_fields(import_browser)
-    field.url: http://hg.example.org/bar
-
     >>> import_browser.open(package_import_location)
     >>> import_browser.getLink('Edit import source or review import').click()
     >>> print_form_fields(import_browser)
-    field.url: http://hg.example.org/zap
+    field.url: http://git.example.org/zap
 
 
 Editing the import location
@@ -170,16 +160,6 @@
     ...     print extract_text(message)
     The code import has been updated.
 
-Mercurial imports,
-
-    >>> import_browser.open(hg_import_location + '/+edit-import')
-    >>> import_browser.getControl('URL').value = \
-    ...     'http://user:password@xxxxxxxxxxxxxxxxx/bar'
-    >>> import_browser.getControl('Update').click()
-    >>> for message in get_feedback_messages(import_browser.contents):
-    ...     print extract_text(message)
-    The code import has been updated.
-
 and imports targetting source packages.
 
     >>> import_browser.open(package_import_location + '/+edit-import')

=== modified file 'lib/lp/code/stories/codeimport/xx-create-codeimport.txt'
--- lib/lp/code/stories/codeimport/xx-create-codeimport.txt	2011-10-03 15:35:14 +0000
+++ lib/lp/code/stories/codeimport/xx-create-codeimport.txt	2012-10-08 03:05:29 +0000
@@ -59,7 +59,6 @@
     >>> print_radio_button_field(browser.contents, "rcs_type")
     (*) Bazaar
     ( ) Git
-    ( ) Mercurial
     ( ) Subversion
     ( ) CVS
 
@@ -175,29 +174,6 @@
     The next import is scheduled to run as soon as possible.
 
 
-Requesting a Mercurial import
-=======================
-
-The user is required to enter a project that the import is for,
-a name for the import branch, and a mercurial branch location.
-
-    >>> browser.open("http://code.launchpad.dev/+code-imports/+new";)
-    >>> browser.getControl('Project').value = "firefox"
-    >>> browser.getControl('Branch Name').value = "hg-import"
-    >>> browser.getControl('Mercurial').click()
-    >>> browser.getControl('Repo URL', index=1).value = (
-    ...     "http://example.com/firefox.hg";)
-    >>> browser.getControl('Request Import').click()
-
-When the user clicks continue, the approved import branch is created
-
-    >>> print extract_text(find_tag_by_id(browser.contents, "import-details"))
-    Import Status: Reviewed
-    This branch is an import of the tip branch of the Mercurial repository at
-    http://example.com/firefox.hg.
-    The next import is scheduled to run as soon as possible.
-
-
 Requesting a CVS import
 =======================
 

=== modified file 'lib/lp/code/stories/webservice/xx-code-import.txt'
--- lib/lp/code/stories/webservice/xx-code-import.txt	2012-10-02 20:22:55 +0000
+++ lib/lp/code/stories/webservice/xx-code-import.txt	2012-10-08 03:05:29 +0000
@@ -182,7 +182,7 @@
     ...     + source_package.name)
     >>> new_remote_url = factory.getUniqueURL()
     >>> response = import_webservice.named_post(source_package_url,
-    ...    'newCodeImport', branch_name='new-import', rcs_type='Mercurial',
+    ...    'newCodeImport', branch_name='new-import', rcs_type='Git',
     ...    url=new_remote_url)
     >>> print response.status
     201
@@ -194,7 +194,7 @@
     >>> print representation['branch_link']
     http://.../~import-owner/scruffbuntu/manic/scruff/new-import
     >>> print representation['rcs_type']
-    Mercurial
+    Git
     >>> print representation['url'] == new_remote_url
     True
     >>> print representation['cvs_root']

=== modified file 'lib/lp/code/templates/bazaar-index.pt'
--- lib/lp/code/templates/bazaar-index.pt	2012-09-12 06:13:41 +0000
+++ lib/lp/code/templates/bazaar-index.pt	2012-10-08 03:05:29 +0000
@@ -47,7 +47,7 @@
           # the URL produced.
         </tal:XXX>
         <a href="/+recently-imported-branches">over 2000
-        <abbr>CVS</abbr>, <abbr>SVN</abbr>, Git and Mercurial projects</a>,
+        <abbr>CVS</abbr>, <abbr>SVN</abbr> and Git projects</a>,
         so you can use Bazaar with those too.
         (<a href="https://help.launchpad.net/Code";>Read our guide</a>)
       </p>

=== modified file 'lib/lp/code/templates/branch-import-details.pt'
--- lib/lp/code/templates/branch-import-details.pt	2012-08-21 01:06:31 +0000
+++ lib/lp/code/templates/branch-import-details.pt	2012-10-08 03:05:29 +0000
@@ -50,18 +50,6 @@
           </p>
         </tal:git-import>
 
-        <tal:hg-import condition="code_import/rcs_type/enumvalue:HG">
-          <p>This branch is an import of the tip branch of the Mercurial repository at
-            <tal:is-web-url condition="view/url_is_web">
-              <a tal:attributes="href code_import/url"
-                 tal:content="code_import/url" />.
-            </tal:is-web-url>
-            <tal:not-web-url condition="not: view/url_is_web">
-              <span tal:replace="code_import/url" />.
-            </tal:not-web-url>
-          </p>
-        </tal:hg-import>
-
         <tal:bzr-import condition="code_import/rcs_type/enumvalue:BZR">
           <p>This branch is an import of the Bazaar branch at
             <tal:is-web-url condition="view/url_is_web">

=== modified file 'lib/lp/code/templates/codeimport-new.pt'
--- lib/lp/code/templates/codeimport-new.pt	2012-03-29 17:37:33 +0000
+++ lib/lp/code/templates/codeimport-new.pt	2012-10-08 03:05:29 +0000
@@ -81,20 +81,6 @@
         <tr>
           <td>
             <label>
-              <input tal:replace="structure view/rcs_type_hg" />
-              Mercurial
-            </label>
-            <table class="importdetails">
-              <tal:widget define="widget nocall:view/widgets/hg_repo_url">
-                <metal:block use-macro="context/@@launchpad_form/widget_row" />
-              </tal:widget>
-            </table>
-          </td>
-        </tr>
-
-        <tr>
-          <td>
-            <label>
               <input tal:replace="structure view/rcs_type_svn" />
               Subversion
             </label>
@@ -145,7 +131,6 @@
                 }
             }
             updateField(form['field.git_repo_url'], rcs_type === 'GIT');
-            updateField(form['field.hg_repo_url'], rcs_type === 'HG');
             updateField(form['field.cvs_root'], rcs_type === 'CVS');
             updateField(form['field.cvs_module'], rcs_type === 'CVS');
             updateField(form['field.svn_branch_url'], rcs_type === 'BZR_SVN');

=== modified file 'lib/lp/codehosting/codeimport/tests/servers.py'
--- lib/lp/codehosting/codeimport/tests/servers.py	2012-06-29 08:40:05 +0000
+++ lib/lp/codehosting/codeimport/tests/servers.py	2012-10-08 03:05:29 +0000
@@ -7,7 +7,6 @@
     'BzrServer',
     'CVSServer',
     'GitServer',
-    'MercurialServer',
     'SubversionServer',
     ]
 
@@ -45,12 +44,6 @@
     DictBackend,
     TCPGitServer,
     )
-from mercurial.hgweb import (
-    hgweb,
-    server as hgweb_server,
-    )
-from mercurial.localrepo import localrepository
-from mercurial.ui import ui as hg_ui
 import subvertpy.ra
 import subvertpy.repos
 
@@ -290,73 +283,6 @@
             message=u'<The commit message>', tree=root_id)
 
 
-class MercurialServerThread(threading.Thread):
-    """A thread which runs a Mercurial http server."""
-
-    def __init__(self, path, address, port=0):
-        super(MercurialServerThread, self).__init__()
-        self.ui = hg_ui()
-        self.ui.setconfig("web", "address", address)
-        self.ui.setconfig("web", "port", port)
-        self.app = hgweb(path, baseui=self.ui)
-        self.httpd = hgweb_server.create_server(self.ui, self.app)
-        # By default the Mercurial server output goes to stdout,
-        # redirect it to prevent a lot of spurious output.
-        self.httpd.errorlog = StringIO()
-        self.httpd.accesslog = StringIO()
-
-    def get_address(self):
-        return (self.httpd.addr, self.httpd.port)
-
-    def run(self):
-        self.httpd.serve_forever()
-
-    def stop(self):
-        self.httpd.shutdown()
-
-
-class MercurialServer(Server):
-
-    def __init__(self, repository_path, use_server=False):
-        super(MercurialServer, self).__init__()
-        self.repository_path = repository_path
-        self._use_server = use_server
-
-    def get_url(self):
-        if self._use_server:
-            return "http://%s:%d/"; % self._hgserver.get_address()
-        else:
-            return local_path_to_url(self.repository_path)
-
-    def start_server(self):
-        super(MercurialServer, self).start_server()
-        self.createRepository(self.repository_path)
-        if self._use_server:
-            self._hgserver = MercurialServerThread(self.repository_path,
-                "localhost")
-            self._hgserver.start()
-
-    def stop_server(self):
-        super(MercurialServer, self).stop_server()
-        if self._use_server:
-            self._hgserver.stop()
-
-    def createRepository(self, path):
-        localrepository(hg_ui(), self.repository_path, create=1)
-
-    def makeRepo(self, tree_contents):
-        repo = localrepository(hg_ui(), self.repository_path)
-        for filename, contents in tree_contents:
-            f = open(os.path.join(self.repository_path, filename), 'w')
-            try:
-                f.write(contents)
-            finally:
-                f.close()
-            repo[None].add([filename])
-        repo.commit(
-            text='<The commit message>', user='jane Foo <joe@xxxxxxx>')
-
-
 class BzrServer(Server):
 
     def __init__(self, repository_path, use_server=False):

=== modified file 'lib/lp/codehosting/codeimport/tests/test_worker.py'
--- lib/lp/codehosting/codeimport/tests/test_worker.py	2012-09-18 19:41:02 +0000
+++ lib/lp/codehosting/codeimport/tests/test_worker.py	2012-10-08 03:05:29 +0000
@@ -62,7 +62,6 @@
     BzrServer,
     CVSServer,
     GitServer,
-    MercurialServer,
     SubversionServer,
     )
 from lp.codehosting.codeimport.worker import (
@@ -76,7 +75,6 @@
     ForeignTreeStore,
     get_default_bazaar_branch_store,
     GitImportWorker,
-    HgImportWorker,
     ImportDataStore,
     ImportWorker,
     )
@@ -1095,8 +1093,7 @@
         self.pushConfig(
             'codeimport',
             git_revisions_import_limit=import_limit,
-            svn_revisions_import_limit=import_limit,
-            hg_revisions_import_limit=import_limit)
+            svn_revisions_import_limit=import_limit)
         self.assertEqual(
             CodeImportWorkerExitCode.SUCCESS_PARTIAL, worker.run())
         self.assertEqual(
@@ -1209,87 +1206,6 @@
         self.assertEquals(lastrev.message, "Message for other")
 
 
-class TestMercurialImport(WorkerTest, TestActualImportMixin,
-                          PullingImportWorkerTests):
-
-    rcstype = 'hg'
-
-    def setUp(self):
-        super(TestMercurialImport, self).setUp()
-        self.setUpImport()
-
-    def tearDown(self):
-        """Clear bzr-hg's cache of sqlite connections.
-
-        This is rather obscure: different test runs tend to re-use the same
-        paths on disk, which confuses bzr-hg as it keeps a cache that maps
-        paths to database connections, which happily returns the connection
-        that corresponds to a path that no longer exists.
-        """
-        from bzrlib.plugins.hg.idmap import mapdbs
-        mapdbs().clear()
-        WorkerTest.tearDown(self)
-
-    def makeImportWorker(self, source_details, opener_policy):
-        """Make a new `ImportWorker`."""
-        return HgImportWorker(
-            source_details, self.get_transport('import_data'),
-            self.bazaar_store, logging.getLogger(),
-            opener_policy=opener_policy)
-
-    def makeForeignCommit(self, source_details, message=None, branch=None):
-        """Change the foreign tree, generating exactly one commit."""
-        from mercurial.ui import ui
-        from mercurial.localrepo import localrepository
-        repo = localrepository(ui(), local_path_from_url(source_details.url))
-        extra = {}
-        if branch is not None:
-            extra = {"branch": branch}
-        if message is None:
-            message = self.factory.getUniqueString()
-        repo.commit(
-            text=message, user="Jane Random Hacker", force=1, extra=extra)
-        self.foreign_commit_count += 1
-
-    def makeSourceDetails(self, branch_name, files, stacked_on_url=None):
-        """Make a Mercurial `CodeImportSourceDetails` pointing at a real repo.
-        """
-        repository_path = self.makeTemporaryDirectory()
-        hg_server = MercurialServer(repository_path)
-        hg_server.start_server()
-        self.addCleanup(hg_server.stop_server)
-
-        hg_server.makeRepo(files)
-        self.foreign_commit_count = 1
-
-        return self.factory.makeCodeImportSourceDetails(
-            rcstype='hg', url=hg_server.get_url(),
-            stacked_on_url=stacked_on_url)
-
-    def test_non_default(self):
-        # non-default branches can be specified in the import URL.
-        source_details = self.makeSourceDetails(
-            'trunk', [('README', 'Original contents')])
-        self.makeForeignCommit(source_details, branch="other",
-            message="Message for other")
-        self.makeForeignCommit(source_details, branch="default",
-            message="Message for default")
-        source_details.url = urlutils.join_segment_parameters(
-                source_details.url, {"branch": "other"})
-        source_transport = get_transport_from_url(source_details.url)
-        self.assertEquals(
-            {"branch": "other"},
-            source_transport.get_segment_parameters())
-        worker = self.makeImportWorker(source_details,
-            opener_policy=AcceptAnythingPolicy())
-        self.assertTrue(self.foreign_commit_count > 1)
-        self.assertEqual(
-            CodeImportWorkerExitCode.SUCCESS, worker.run())
-        branch = worker.getBazaarBranch()
-        lastrev = branch.repository.get_revision(branch.last_revision())
-        self.assertEquals(lastrev.message, "Message for other")
-
-
 class TestBzrSvnImport(WorkerTest, SubversionImportHelpers,
                        TestActualImportMixin, PullingImportWorkerTests):
 
@@ -1500,15 +1416,6 @@
             str(code_import.branch.id), 'bzr', 'http://example.com/foo'],
             arguments)
 
-    def test_hg_arguments(self):
-        code_import = self.factory.makeCodeImport(
-            hg_repo_url="http://example.com/foo";)
-        arguments = CodeImportSourceDetails.fromCodeImport(
-            code_import).asArguments()
-        self.assertEquals([
-            str(code_import.branch.id), 'hg', 'http://example.com/foo'],
-            arguments)
-
     def test_git_arguments(self):
         code_import = self.factory.makeCodeImport(
                 git_repo_url="git://git.example.com/project.git")

=== modified file 'lib/lp/codehosting/codeimport/tests/test_workermonitor.py'
--- lib/lp/codehosting/codeimport/tests/test_workermonitor.py	2012-06-25 15:34:46 +0000
+++ lib/lp/codehosting/codeimport/tests/test_workermonitor.py	2012-10-08 03:05:29 +0000
@@ -46,7 +46,6 @@
     BzrServer,
     CVSServer,
     GitServer,
-    MercurialServer,
     SubversionServer,
     )
 from lp.codehosting.codeimport.tests.test_worker import (
@@ -751,18 +750,6 @@
         return self.factory.makeCodeImport(
             git_repo_url=self.git_server.get_url())
 
-    def makeHgCodeImport(self):
-        """Make a `CodeImport` that points to a real Mercurial repository."""
-        self.hg_server = MercurialServer(self.repo_path, use_server=False)
-        self.hg_server.start_server()
-        self.addCleanup(self.hg_server.stop_server)
-
-        self.hg_server.makeRepo([('README', 'contents')])
-        self.foreign_commit_count = 1
-
-        return self.factory.makeCodeImport(
-            hg_repo_url=self.hg_server.get_url())
-
     def makeBzrCodeImport(self):
         """Make a `CodeImport` that points to a real Bazaar branch."""
         self.bzr_server = BzrServer(self.repo_path)
@@ -874,17 +861,6 @@
         result = self.performImport(job_id)
         return result.addCallback(self.assertImported, code_import_id)
 
-    # XXX 2011-09-09 gary, bug=841556: This test fails
-    # occasionally in buildbot.
-    def DISABLED_test_import_hg(self):
-        # Create a Mercurial CodeImport and import it.
-        job = self.getStartedJobForImport(self.makeHgCodeImport())
-        code_import_id = job.code_import.id
-        job_id = job.id
-        self.layer.txn.commit()
-        result = self.performImport(job_id)
-        return result.addCallback(self.assertImported, code_import_id)
-
     # XXX 2011-09-05 wgrant, bug=841556: This test fails
     # occasionally in buildbot.
     def DISABLED_test_import_bzr(self):

=== modified file 'lib/lp/codehosting/codeimport/worker.py'
--- lib/lp/codehosting/codeimport/worker.py	2012-06-29 08:40:05 +0000
+++ lib/lp/codehosting/codeimport/worker.py	2012-10-08 03:05:29 +0000
@@ -330,10 +330,6 @@
             return cls(
                 branch.id, 'git', str(code_import.url),
                 stacked_on_url=stacked_on_url)
-        elif code_import.rcs_type == RevisionControlSystems.HG:
-            return cls(
-                branch.id, 'hg', str(code_import.url),
-                stacked_on_url=stacked_on_url)
         elif code_import.rcs_type == RevisionControlSystems.BZR:
             return cls(
                 branch.id, 'bzr', str(code_import.url),
@@ -850,79 +846,6 @@
         return non_trivial
 
 
-class HgImportWorker(PullingImportWorker):
-    """An import worker for Mercurial imports.
-
-    The only behaviour we add is preserving the id-sha map between runs.
-    """
-
-    @property
-    def invalid_branch_exceptions(self):
-        return [
-            NoRepositoryPresent,
-            NotBranchError,
-            ConnectionError,
-        ]
-
-    @property
-    def unsupported_feature_exceptions(self):
-        return [
-            InvalidEntryName,
-        ]
-
-    @property
-    def broken_remote_exceptions(self):
-        return []
-
-    @property
-    def probers(self):
-        """See `PullingImportWorker.probers`."""
-        from bzrlib.plugins.hg import HgProber
-        return [HgProber]
-
-    def getRevisionLimit(self):
-        """See `PullingImportWorker.getRevisionLimit`."""
-        return config.codeimport.hg_revisions_import_limit
-
-    def getBazaarBranch(self):
-        """See `ImportWorker.getBazaarBranch`.
-
-        In addition to the superclass' behaviour, we retrieve the bzr-hg's
-        caches, both legacy and current and put them where bzr-hg will find
-        them in the Bazaar tree, that is at '.bzr/repository/hg-v2.db' and
-        '.bzr/repository/hg'.
-        """
-        branch = PullingImportWorker.getBazaarBranch(self)
-        # Fetch the legacy cache from the store, if present.
-        self.import_data_store.fetch(
-            'hg-v2.db', branch.repository._transport)
-        # The cache dir from newer bzr-hgs is stored as a tarball.
-        local_name = 'hg-cache.tar.gz'
-        if self.import_data_store.fetch(local_name):
-            repo_transport = branch.repository._transport
-            repo_transport.mkdir('hg')
-            hg_db_dir = os.path.join(
-                local_path_from_url(repo_transport.base), 'hg')
-            extract_tarball(local_name, hg_db_dir)
-        return branch
-
-    def pushBazaarBranch(self, bazaar_branch):
-        """See `ImportWorker.pushBazaarBranch`.
-
-        In addition to the superclass' behaviour, we store the hg cache
-        that bzr-hg will have created at .bzr/repository/hg into
-        the import data store.
-        """
-        non_trivial = PullingImportWorker.pushBazaarBranch(
-            self, bazaar_branch)
-        repo_base = bazaar_branch.repository._transport.base
-        hg_db_dir = os.path.join(local_path_from_url(repo_base), 'hg')
-        local_name = 'hg-cache.tar.gz'
-        create_tarball(hg_db_dir, local_name)
-        self.import_data_store.put(local_name)
-        return non_trivial
-
-
 class BzrSvnImportWorker(PullingImportWorker):
     """An import worker for importing Subversion via bzr-svn."""
 

=== modified file 'lib/lp/registry/browser/productseries.py'
--- lib/lp/registry/browser/productseries.py	2012-10-05 07:10:15 +0000
+++ lib/lp/registry/browser/productseries.py	2012-10-08 03:05:29 +0000
@@ -909,8 +909,6 @@
             widget, vocab.BZR_SVN, current_value, 'SVN')
         self.rcs_type_git = render_radio_widget_part(
             widget, vocab.GIT, current_value)
-        self.rcs_type_hg = render_radio_widget_part(
-            widget, vocab.HG, current_value)
         self.rcs_type_bzr = render_radio_widget_part(
             widget, vocab.BZR, current_value)
         self.rcs_type_emptymarker = widget._emptyMarker()

=== modified file 'lib/lp/registry/browser/tests/productseries-setbranch-view.txt'
--- lib/lp/registry/browser/tests/productseries-setbranch-view.txt	2012-10-05 07:29:54 +0000
+++ lib/lp/registry/browser/tests/productseries-setbranch-view.txt	2012-10-08 03:05:29 +0000
@@ -97,7 +97,7 @@
 --------------------------------
 
 Importing an externally hosted branch can either be a mirror, if a
-Bazaar branch, or an import, if a git, hg, cvs, or svn branch.
+Bazaar branch, or an import, if a git, cvs, or svn branch.
 
 Lots of data are required to create an import.
 
@@ -245,28 +245,6 @@
     >>> print series.branch.name
     suburban-branch
 
-Mercurial branches must use http or https as the scheme.
-
-    >>> series = factory.makeProductSeries(name="malibu", product=product)
-    >>> transaction.commit()
-    >>> form = {
-    ...     'field.branch_type': 'import-external',
-    ...     'field.rcs_type': 'HG',
-    ...     'field.branch_name': 'malibu-branch',
-    ...     'field.branch_owner': team.name,
-    ...     'field.repo_url': 'https://mercurial.com/branch',
-    ...     'field.actions.update': 'Update',
-    ...     }
-    >>> view = create_initialized_view(
-    ...     series, name='+setbranch', principal=driver, form=form)
-    >>> for error in view.errors:
-    ...     print error
-    >>> for notification in view.request.response.notifications:
-    ...     print notification.message
-    Code import created and branch linked to the series.
-    >>> print series.branch.name
-    malibu-branch
-
 CVS branches must use http or https as the scheme and must have the
 CVS module field specified.
 

=== modified file 'lib/lp/registry/stories/productseries/xx-productseries-link-branch.txt'
--- lib/lp/registry/stories/productseries/xx-productseries-link-branch.txt	2012-06-20 17:17:58 +0000
+++ lib/lp/registry/stories/productseries/xx-productseries-link-branch.txt	2012-10-08 03:05:29 +0000
@@ -16,7 +16,7 @@
 
     >>> external_code = find_tag_by_id(sample_browser.contents, 'external-code')
     >>> print extract_text(external_code)
-    If the code is in Git, Mercurial, CVS or Subversion you can
+    If the code is in Git, CVS or Subversion you can
     request that the branch be imported to Bazaar.
 
 This link is only shown to those that have edit permissions on the

=== modified file 'lib/lp/registry/stories/productseries/xx-productseries-set-branch.txt'
--- lib/lp/registry/stories/productseries/xx-productseries-set-branch.txt	2012-03-08 19:35:12 +0000
+++ lib/lp/registry/stories/productseries/xx-productseries-set-branch.txt	2012-10-08 03:05:29 +0000
@@ -3,9 +3,9 @@
 
 A product series should have a branch set for it.  The branch can be
 hosted on Launchpad or somewhere else.  Foreign branches can be in
-Bazaar, Git, Mercurial, Subversion, or CVS.  Though internally
-Launchpad treats those scenarios differently we provide a single page
-to the user to set up the branch.
+Bazaar, Git, Subversion, or CVS.  Though internally Launchpad treats those
+scenarios differently we provide a single page to the user to set up the
+branch.
 
 At present, the unified page for setting up the branch is not linked
 from anywhere, so it must be navigated to directly.
@@ -49,7 +49,7 @@
 -----------------------------
 
 An external branch can be linked.  The branch can be a Bazaar branch
-or be a Git, Mercurial, Subversion, or CVS branch.
+or be a Git, Subversion, or CVS branch.
 
 Each of these types must provide the URL of the external repository,
 the branch name to use in Launchpad, and the branch owner.
@@ -102,10 +102,10 @@
 
     >>> browser.open('http://launchpad.dev/firefox/trunk/+setbranch')
     >>> browser.getControl('Import a branch hosted somewhere else').click()
-    >>> browser.getControl('Branch name').value = 'hg-firefox-branch'
-    >>> browser.getControl('Mercurial').click()
+    >>> browser.getControl('Branch name').value = 'git-firefox-branch'
+    >>> browser.getControl('Git').click()
     >>> browser.getControl('Branch URL').value = (
-    ...     'http://hg.example.com/branch')
+    ...     'http://git.example.com/branch')
     >>> browser.getControl('Branch owner').value = ['hwdb-team']
     >>> browser.getControl('Update').click()
     >>> for message in get_feedback_messages(browser.contents):
@@ -116,7 +116,7 @@
     >>> login('test@xxxxxxxxxxxxx')
     >>> firefox_trunk = firefox.getSeries('trunk')
     >>> print firefox_trunk.branch.unique_name
-    ~hwdb-team/firefox/hg-firefox-branch
+    ~hwdb-team/firefox/git-firefox-branch
     >>> print firefox_trunk.branch.owner.name
     hwdb-team
     >>> logout()

=== modified file 'lib/lp/registry/templates/productseries-codesummary.pt'
--- lib/lp/registry/templates/productseries-codesummary.pt	2012-06-19 18:27:50 +0000
+++ lib/lp/registry/templates/productseries-codesummary.pt	2012-10-08 03:05:29 +0000
@@ -41,7 +41,7 @@
         </li>
 
         <li>
-          If the code is in Git, Mercurial, CVS, Subversion or an external Bazaar branch you can
+          If the code is in Git, CVS, Subversion or an external Bazaar branch you can
           <a tal:attributes="href view/request_import_link">request that the branch be imported to Bazaar</a>.
         </li>
       </ul>

=== modified file 'lib/lp/registry/templates/productseries-linkbranch.pt'
--- lib/lp/registry/templates/productseries-linkbranch.pt	2012-03-10 13:11:43 +0000
+++ lib/lp/registry/templates/productseries-linkbranch.pt	2012-10-08 03:05:29 +0000
@@ -30,7 +30,7 @@
         </li>
 
         <li id="external-code">
-          If the code is in Git, Mercurial, CVS or Subversion you can
+          If the code is in Git, CVS or Subversion you can
           <a tal:attributes="href view/request_import_link">request that the branch be imported to Bazaar</a>.
         </li>
       </ul>

=== modified file 'lib/lp/registry/templates/productseries-setbranch.pt'
--- lib/lp/registry/templates/productseries-setbranch.pt	2012-03-10 13:11:43 +0000
+++ lib/lp/registry/templates/productseries-setbranch.pt	2012-10-08 03:05:29 +0000
@@ -86,14 +86,6 @@
 
               <tr>
                 <td>
-                  <label tal:replace="structure view/rcs_type_hg">
-                    Mercurial
-                  </label>
-                </td>
-              </tr>
-
-              <tr>
-                <td>
                   <label tal:replace="structure view/rcs_type_cvs">
                     CVS
                   </label>

=== modified file 'lib/lp/services/config/schema-lazr.conf'
--- lib/lp/services/config/schema-lazr.conf	2012-10-01 05:29:04 +0000
+++ lib/lp/services/config/schema-lazr.conf	2012-10-08 03:05:29 +0000
@@ -355,11 +355,6 @@
 default_interval_git: 21600
 
 # The default value of the update interval of a code import from
-# Mercurial, in seconds.
-# datatype: integer
-default_interval_hg: 21600
-
-# The default value of the update interval of a code import from
 # CVS, in seconds.
 # datatype: integer
 default_interval_cvs: 43200

=== modified file 'lib/lp/testing/factory.py'
--- lib/lp/testing/factory.py	2012-10-04 17:37:33 +0000
+++ lib/lp/testing/factory.py	2012-10-08 03:05:29 +0000
@@ -2251,7 +2251,7 @@
 
     def makeCodeImport(self, svn_branch_url=None, cvs_root=None,
                        cvs_module=None, target=None, branch_name=None,
-                       git_repo_url=None, hg_repo_url=None,
+                       git_repo_url=None, 
                        bzr_branch_url=None, registrant=None,
                        rcs_type=None, review_status=None):
         """Create and return a new, arbitrary code import.
@@ -2260,8 +2260,7 @@
         passed in, but defaults to a Subversion import from an arbitrary
         unique URL.
         """
-        if (svn_branch_url is cvs_root is cvs_module is git_repo_url is
-            hg_repo_url is bzr_branch_url is None):
+        if svn_branch_url is cvs_root is cvs_module is git_repo_url is None:
             svn_branch_url = self.getUniqueURL()
 
         if target is None:
@@ -2287,11 +2286,6 @@
                 registrant, target, branch_name,
                 rcs_type=RevisionControlSystems.GIT,
                 url=git_repo_url, review_status=review_status)
-        elif hg_repo_url is not None:
-            return code_import_set.new(
-                registrant, target, branch_name,
-                rcs_type=RevisionControlSystems.HG,
-                url=hg_repo_url, review_status=review_status)
         elif bzr_branch_url is not None:
             return code_import_set.new(
                 registrant, target, branch_name,

=== modified file 'scripts/code-import-worker.py'
--- scripts/code-import-worker.py	2012-01-01 03:13:08 +0000
+++ scripts/code-import-worker.py	2012-10-08 03:05:29 +0000
@@ -31,7 +31,6 @@
     CSCVSImportWorker,
     get_default_bazaar_branch_store,
     GitImportWorker,
-    HgImportWorker,
     )
 from lp.codehosting.safe_open import AcceptAnythingPolicy
 from lp.services import scripts
@@ -77,8 +76,6 @@
             import_worker_cls = GitImportWorker
         elif source_details.rcstype == 'bzr-svn':
             import_worker_cls = BzrSvnImportWorker
-        elif source_details.rcstype == 'hg':
-            import_worker_cls = HgImportWorker
         elif source_details.rcstype == 'bzr':
             import_worker_cls = BzrImportWorker
         elif source_details.rcstype in ['cvs', 'svn']:

=== modified file 'setup.py'
--- setup.py	2012-08-15 05:24:35 +0000
+++ setup.py	2012-10-08 03:05:29 +0000
@@ -61,7 +61,6 @@
         'Markdown',
         'mechanize',
         'meliae',
-        'mercurial',
         'mocker',
         'oauth',
         'oops',

=== modified file 'utilities/sourcedeps.conf'
--- utilities/sourcedeps.conf	2012-08-30 09:09:21 +0000
+++ utilities/sourcedeps.conf	2012-10-08 03:05:29 +0000
@@ -9,7 +9,6 @@
 
 bzr-builder lp:~launchpad-pqm/bzr-builder/trunk;revno=70
 bzr-git lp:~launchpad-pqm/bzr-git/devel;revno=276
-bzr-hg lp:~launchpad-pqm/bzr-hg/devel;revno=295
 bzr-loom lp:~launchpad-pqm/bzr-loom/trunk;revno=55
 bzr-svn lp:~launchpad-pqm/bzr-svn/devel;revno=2724
 cscvs lp:~launchpad-pqm/launchpad-cscvs/devel;revno=432

=== modified file 'versions.cfg'
--- versions.cfg	2012-10-02 01:25:48 +0000
+++ versions.cfg	2012-10-08 03:05:29 +0000
@@ -60,7 +60,6 @@
 martian = 0.11
 mechanize = 0.1.11
 meliae = 0.2.0.final.0
-mercurial = 1.6.2
 mocker = 0.10.1
 mozrunner = 1.3.4
 oauth = 1.0


Follow ups