comparison fetch_command.py @ 90:4c419603d41b

fetch_command: create branch temporary directory when we need it
author Patrick Mezard <pmezard@gmail.com>
date Fri, 14 Nov 2008 16:18:24 -0600
parents edeec6829d80
children 0d3a2a7cefa3
comparison
equal deleted inserted replaced
89:edeec6829d80 90:4c419603d41b
358 branches = hg_editor.branches_in_paths(r.paths) 358 branches = hg_editor.branches_in_paths(r.paths)
359 temp_location = os.path.join(hg_editor.path, '.hg', 'svn', 'temp') 359 temp_location = os.path.join(hg_editor.path, '.hg', 'svn', 'temp')
360 if not os.path.exists(temp_location): 360 if not os.path.exists(temp_location):
361 os.makedirs(temp_location) 361 os.makedirs(temp_location)
362 for b in branches: 362 for b in branches:
363 our_tempdir = tempfile.mkdtemp('svn_fetch_temp', dir=temp_location) 363 our_tempdir = None
364 diff_path = make_diff_path(b) 364 diff_path = make_diff_path(b)
365 parent_rev, br_p = hg_editor.get_parent_svn_branch_and_rev(r.revnum, b) 365 parent_rev, br_p = hg_editor.get_parent_svn_branch_and_rev(r.revnum, b)
366 parent_ha = hg_editor.get_parent_revision(r.revnum, b) 366 parent_ha = hg_editor.get_parent_revision(r.revnum, b)
367 files_touched = set() 367 files_touched = set()
368 link_files = {} 368 link_files = {}
380 deleted=True, ignore_type=True) 380 deleted=True, ignore_type=True)
381 if d: 381 if d:
382 ui.status('Branch creation with mods, pulling full rev.\n') 382 ui.status('Branch creation with mods, pulling full rev.\n')
383 raise BadPatchApply() 383 raise BadPatchApply()
384 384
385 our_tempdir = tempfile.mkdtemp('svn_fetch_temp', dir=temp_location)
385 for m in binary_file_re.findall(d): 386 for m in binary_file_re.findall(d):
386 # we have to pull each binary file by hand as a fulltext, 387 # we have to pull each binary file by hand as a fulltext,
387 # which sucks but we've got no choice 388 # which sucks but we've got no choice
388 file_path = os.path.join(our_tempdir, m) 389 file_path = os.path.join(our_tempdir, m)
389 files_touched.add(m) 390 files_touched.add(m)
580 ha = hg_editor.repo.commitctx(current_ctx) 581 ha = hg_editor.repo.commitctx(current_ctx)
581 hg_editor.add_to_revmap(r.revnum, b, ha) 582 hg_editor.add_to_revmap(r.revnum, b, ha)
582 hg_editor._save_metadata() 583 hg_editor._save_metadata()
583 ui.status('committed as %s on branch %s\n' % 584 ui.status('committed as %s on branch %s\n' %
584 (node.hex(ha), b or 'default')) 585 (node.hex(ha), b or 'default'))
585 shutil.rmtree(our_tempdir) 586 if our_tempdir is not None:
587 shutil.rmtree(our_tempdir)
586 588
587 589
588 class BadPatchApply(Exception): 590 class BadPatchApply(Exception):
589 pass 591 pass