Does it only happen with empty repositories?
If so, here is a patch (not forwarded upstream yet, as I honestly don't
understand how their bug tracker work).
Description: Don't crash/close when exploring an empty repository
Author: Thibaut Girka <t...@sitedethib.com>
Bug: http://www.logilab.org/ticket/20996
Forwarded: No


diff -r d43754c8e5b5 hgviewlib/qt4/hgrepomodel.py
--- a/hgviewlib/qt4/hgrepomodel.py	Fri Jun 10 11:26:08 2011 +0200
+++ b/hgviewlib/qt4/hgrepomodel.py	Sun Jun 26 13:02:45 2011 +0200
@@ -109,7 +109,8 @@
              'Tags': lambda self, r: sorted(r.tags().keys(),
                                             key=lambda x: len(x))[-1][:10],
              'Branch': lambda self, r: sorted(r.branchtags().keys(),
-                                              key=lambda x: len(x))[-1],
+                                              key=lambda x: len(x))[-1]
+                                              if r.branchtags().keys() else None,
              'Author': lambda self, r: 'author name',
              'Filename': lambda self, r: self.filename,
              }
diff -r d43754c8e5b5 hgviewlib/qt4/hgrepoviewer.py
--- a/hgviewlib/qt4/hgrepoviewer.py	Fri Jun 10 11:26:08 2011 +0200
+++ b/hgviewlib/qt4/hgrepoviewer.py	Sun Jun 26 13:02:45 2011 +0200
@@ -458,11 +458,12 @@
 
     def _getrepomtime(self):
         """Return the last modification time for the repo"""
-        watchedfiles = [(self.repo.root, ".hg", "store", "00changelog.i"),
+        watchedfiles = [(self.repo.root, ".hg", "store"),
+                        (self.repo.root, ".hg", "store", "00changelog.i"),
                         (self.repo.root, ".hg", "dirstate")]
         watchedfiles = [os.path.join(*wf) for wf in watchedfiles]
         mtime = [os.path.getmtime(wf) for wf in watchedfiles \
-                 if os.path.isfile(wf)]
+                 if os.path.exists(wf)]
         if mtime:
             return max(mtime)
         # humm, directory has probably been deleted, exiting...

Attachment: signature.asc
Description: This is a digitally signed message part

Reply via email to