mercurial/localrepo.py
changeset 1787 e431344e604c
parent 1782 b9671b41e360
child 1788 750b9cd83965
--- a/mercurial/localrepo.py
+++ b/mercurial/localrepo.py
@@ -261,7 +261,14 @@ class localrepository(object):
             if not wait:
                 raise inst
             self.ui.warn(_("waiting for lock held by %s\n") % inst.args[0])
-            l = lock.lock(self.join(lockname), wait, releasefn)
+            try:
+                # default to 1024 seconds timeout
+                l = lock.lock(self.join(lockname),
+                              int(self.ui.config("ui", "timeout") or 1024),
+                              releasefn)
+            except lock.LockHeld, inst:
+                raise util.Abort(_("timeout while waiting for "
+                                   "lock held by %s") % inst.args[0])
         if acquirefn:
             acquirefn()
         return l