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...
signature.asc
Description: This is a digitally signed message part