comparison fetch_command.py @ 119:ea65fe2b0856

hg_delta_editor: fix update of stray files in branches/ Ensure that self.current_file is a non-empty path in a branch.
author Patrick Mezard <pmezard@gmail.com>
date Sat, 29 Nov 2008 11:25:01 -0600
parents a0401f6e14dd
children 7e45bcf52b64
comparison
equal deleted inserted replaced
118:a0401f6e14dd 119:ea65fe2b0856
421 421
422 Return a tuple (files, filectxfn) where 'files' is the list of all files 422 Return a tuple (files, filectxfn) where 'files' is the list of all files
423 in the branch at the given revision, and 'filectxfn' is a memctx compatible 423 in the branch at the given revision, and 'filectxfn' is a memctx compatible
424 callable to retrieve individual file information. 424 callable to retrieve individual file information.
425 """ 425 """
426 kind = svn.checkpath(branchpath, r.revnum)
427 if kind != 'd':
428 # Branch does not exist at this revision. Get parent revision and
429 # remove everything.
430 files = parentctx.manifest().keys()
431 def filectxfn_rm(repo, memctx, path):
432 raise IOError()
433 return files, filectxfn_rm
434
435 files = [] 426 files = []
436 if parentctx.node() == revlog.nullid: 427 if parentctx.node() == revlog.nullid:
437 # Initial revision, fetch all files 428 # Initial revision, fetch all files
438 for path, kind in svn.list_files(branchpath, r.revnum): 429 for path, kind in svn.list_files(branchpath, r.revnum):
439 if kind == 'f': 430 if kind == 'f':
483 if not os.path.exists(temp_location): 474 if not os.path.exists(temp_location):
484 os.makedirs(temp_location) 475 os.makedirs(temp_location)
485 for b in branches: 476 for b in branches:
486 our_tempdir = tempfile.mkdtemp('svn_fetch_temp', dir=temp_location) 477 our_tempdir = tempfile.mkdtemp('svn_fetch_temp', dir=temp_location)
487 parentctx = hg_editor.repo[hg_editor.get_parent_revision(r.revnum, b)] 478 parentctx = hg_editor.repo[hg_editor.get_parent_revision(r.revnum, b)]
488 try: 479 kind = svn.checkpath(branches[b], r.revnum)
489 files_touched, filectxfn = stupid_diff_branchrev( 480 if kind != 'd':
490 ui, svn, hg_editor, b, r, parentctx, our_tempdir) 481 # Branch does not exist at this revision. Get parent revision and
491 except BadPatchApply, e: 482 # remove everything.
492 # Either this revision or the previous one does not exist. 483 files_touched = parentctx.manifest().keys()
493 ui.status("fetching entire rev: %s.\n" % e.message) 484 def filectxfn(repo, memctx, path):
494 files_touched, filectxfn = stupid_fetch_branchrev( 485 raise IOError()
495 svn, hg_editor, b, branches[b], r, parentctx) 486 else:
487 try:
488 files_touched, filectxfn = stupid_diff_branchrev(
489 ui, svn, hg_editor, b, r, parentctx, our_tempdir)
490 except BadPatchApply, e:
491 # Either this revision or the previous one does not exist.
492 ui.status("fetching entire rev: %s.\n" % e.message)
493 files_touched, filectxfn = stupid_fetch_branchrev(
494 svn, hg_editor, b, branches[b], r, parentctx)
496 495
497 date = r.date.replace('T', ' ').replace('Z', '').split('.')[0] 496 date = r.date.replace('T', ' ').replace('Z', '').split('.')[0]
498 date += ' -0000' 497 date += ' -0000'
499 extra = {} 498 extra = {}
500 if b: 499 if b: