diff mercurial/statichttprepo.py @ 7178:98b6c3dde237

Fix Debian bug #494889 (fetching from static-http://... broken) Changeset 6605a03cbf87 which fixed issue965 (hg clone static-http does not work for empty repos) broke cloning of repos with old layout (without store) via static-http. This fix makes cloning from old-style repositories possible again, but will not allow cloning of empty old-style repositories as this can not be detected reliably.
author Thomas Arendsen Hein <thomas@intevation.de>
date Sun, 19 Oct 2008 19:49:56 +0200
parents 08800489257e
children 3d080733a339
line wrap: on
line diff
--- a/mercurial/statichttprepo.py	Sat Oct 11 16:40:59 2008 +0200
+++ b/mercurial/statichttprepo.py	Sun Oct 19 19:49:56 2008 +0200
@@ -42,11 +42,18 @@
         try:
             requirements = self.opener("requires").read().splitlines()
         except IOError, inst:
-            if inst.errno == errno.ENOENT:
+            if inst.errno != errno.ENOENT:
+                raise
+            # check if it is a non-empty old-style repository
+            try:
+                self.opener("00changelog.i").read(1)
+            except IOError, inst:
+                if inst.errno != errno.ENOENT:
+                    raise
+                # we do not care about empty old-style repositories here
                 msg = _("'%s' does not appear to be an hg repository") % path
                 raise repo.RepoError(msg)
-            else:
-                requirements = []
+            requirements = []
 
         # check them
         for r in requirements: