Mercurial > hg > mercurial-crew-with-dirclash
comparison mercurial/localrepo.py @ 2020:00925397236c
merge with crew.
author | Vadim Gelfer <vadim.gelfer@gmail.com> |
---|---|
date | Wed, 29 Mar 2006 10:31:58 -0800 |
parents | ced2d3620f95 ff5c9a92f556 |
children | fc22ed56afe3 |
comparison
equal
deleted
inserted
replaced
2019:ced2d3620f95 | 2020:00925397236c |
---|---|
29 | 29 |
30 if not create and not os.path.isdir(self.path): | 30 if not create and not os.path.isdir(self.path): |
31 raise repo.RepoError(_("repository %s not found") % path) | 31 raise repo.RepoError(_("repository %s not found") % path) |
32 | 32 |
33 self.root = os.path.abspath(path) | 33 self.root = os.path.abspath(path) |
34 self.origroot = path | |
34 self.ui = ui.ui(parentui=parentui) | 35 self.ui = ui.ui(parentui=parentui) |
35 self.opener = util.opener(self.path) | 36 self.opener = util.opener(self.path) |
36 self.wopener = util.opener(self.root) | 37 self.wopener = util.opener(self.root) |
37 self.manifest = manifest.manifest(self.opener) | 38 self.manifest = manifest.manifest(self.opener) |
38 self.changelog = changelog.changelog(self.opener) | 39 self.changelog = changelog.changelog(self.opener) |
259 self.changelog.load() | 260 self.changelog.load() |
260 self.manifest.load() | 261 self.manifest.load() |
261 self.tagscache = None | 262 self.tagscache = None |
262 self.nodetagscache = None | 263 self.nodetagscache = None |
263 | 264 |
264 def do_lock(self, lockname, wait, releasefn=None, acquirefn=None): | 265 def do_lock(self, lockname, wait, releasefn=None, acquirefn=None, |
266 desc=None): | |
265 try: | 267 try: |
266 l = lock.lock(self.join(lockname), 0, releasefn) | 268 l = lock.lock(self.join(lockname), 0, releasefn, desc=desc) |
267 except lock.LockHeld, inst: | 269 except lock.LockHeld, inst: |
268 if not wait: | 270 if not wait: |
269 raise inst | 271 raise |
270 self.ui.warn(_("waiting for lock held by %s\n") % inst.args[0]) | 272 self.ui.warn(_("waiting for lock on %s held by %s\n") % |
271 try: | 273 (desc, inst.args[0])) |
272 # default to 600 seconds timeout | 274 # default to 600 seconds timeout |
273 l = lock.lock(self.join(lockname), | 275 l = lock.lock(self.join(lockname), |
274 int(self.ui.config("ui", "timeout") or 600), | 276 int(self.ui.config("ui", "timeout") or 600), |
275 releasefn) | 277 releasefn, desc=desc) |
276 except lock.LockHeld, inst: | |
277 raise util.Abort(_("timeout while waiting for " | |
278 "lock held by %s") % inst.args[0]) | |
279 if acquirefn: | 278 if acquirefn: |
280 acquirefn() | 279 acquirefn() |
281 return l | 280 return l |
282 | 281 |
283 def lock(self, wait=1): | 282 def lock(self, wait=1): |
284 return self.do_lock("lock", wait, acquirefn=self.reload) | 283 return self.do_lock("lock", wait, acquirefn=self.reload, |
284 desc=_('repository %s') % self.origroot) | |
285 | 285 |
286 def wlock(self, wait=1): | 286 def wlock(self, wait=1): |
287 return self.do_lock("wlock", wait, | 287 return self.do_lock("wlock", wait, self.dirstate.write, |
288 self.dirstate.write, | 288 self.wreload, |
289 self.wreload) | 289 desc=_('working directory of %s') % self.origroot) |
290 | 290 |
291 def checkfilemerge(self, filename, text, filelog, manifest1, manifest2): | 291 def checkfilemerge(self, filename, text, filelog, manifest1, manifest2): |
292 "determine whether a new filenode is needed" | 292 "determine whether a new filenode is needed" |
293 fp1 = manifest1.get(filename, nullid) | 293 fp1 = manifest1.get(filename, nullid) |
294 fp2 = manifest2.get(filename, nullid) | 294 fp2 = manifest2.get(filename, nullid) |