comparison mercurial/cmdutil.py @ 11303:a1aad8333864

move working dir/dirstate methods from localrepo to workingctx
author Dirkjan Ochtman <dirkjan@ochtman.nl>
date Mon, 07 Jun 2010 20:03:32 +0200
parents 8c6c7f6347a3
children bf5d88c466e0
comparison
equal deleted inserted replaced
11302:e1dde7363601 11303:a1aad8333864
309 '(%d%% similar)\n') % 309 '(%d%% similar)\n') %
310 (m.rel(old), m.rel(new), score * 100)) 310 (m.rel(old), m.rel(new), score * 100))
311 copies[new] = old 311 copies[new] = old
312 312
313 if not dry_run: 313 if not dry_run:
314 wctx = repo[None]
314 wlock = repo.wlock() 315 wlock = repo.wlock()
315 try: 316 try:
316 repo.remove(deleted) 317 wctx.remove(deleted)
317 repo.add(unknown) 318 wctx.add(unknown)
318 for new, old in copies.iteritems(): 319 for new, old in copies.iteritems():
319 repo.copy(old, new) 320 wctx.copy(old, new)
320 finally: 321 finally:
321 wlock.release() 322 wlock.release()
322 323
323 def copy(ui, repo, pats, opts, rename=False): 324 def copy(ui, repo, pats, opts, rename=False):
324 # called with the repo lock held 325 # called with the repo lock held
327 # ossep => pathname that uses os.sep to separate directories 328 # ossep => pathname that uses os.sep to separate directories
328 cwd = repo.getcwd() 329 cwd = repo.getcwd()
329 targets = {} 330 targets = {}
330 after = opts.get("after") 331 after = opts.get("after")
331 dryrun = opts.get("dry_run") 332 dryrun = opts.get("dry_run")
333 wctx = repo[None]
332 334
333 def walkpat(pat): 335 def walkpat(pat):
334 srcs = [] 336 srcs = []
335 badstates = after and '?' or '?r' 337 badstates = after and '?' or '?r'
336 m = match(repo, [pat], opts, globbed=True) 338 m = match(repo, [pat], opts, globbed=True)
419 if not ui.quiet: 421 if not ui.quiet:
420 ui.warn(_("%s has not been committed yet, so no copy " 422 ui.warn(_("%s has not been committed yet, so no copy "
421 "data will be stored for %s.\n") 423 "data will be stored for %s.\n")
422 % (repo.pathto(origsrc, cwd), reltarget)) 424 % (repo.pathto(origsrc, cwd), reltarget))
423 if repo.dirstate[abstarget] in '?r' and not dryrun: 425 if repo.dirstate[abstarget] in '?r' and not dryrun:
424 repo.add([abstarget]) 426 wctx.add([abstarget])
425 elif not dryrun: 427 elif not dryrun:
426 repo.copy(origsrc, abstarget) 428 wctx.copy(origsrc, abstarget)
427 429
428 if rename and not dryrun: 430 if rename and not dryrun:
429 repo.remove([abssrc], not after) 431 wctx.remove([abssrc], not after)
430 432
431 # pat: ossep 433 # pat: ossep
432 # dest ossep 434 # dest ossep
433 # srcs: list of (hgsep, hgsep, ossep, bool) 435 # srcs: list of (hgsep, hgsep, ossep, bool)
434 # return: function that takes hgsep and returns ossep 436 # return: function that takes hgsep and returns ossep