comparison hg_delta_editor.py @ 39:b3c7b844b782

Some more fixes of cases discovered in the melange repo. If anyone knows how I can reproduce a "replaced" state in Subversion, I'd love to be able to make a real test case for this code.
author Augie Fackler <durin42@gmail.com>
date Sun, 26 Oct 2008 22:06:13 -0500
parents 9ee7ce0505eb
children 496c0354019c
comparison
equal deleted inserted replaced
38:9ee7ce0505eb 39:b3c7b844b782
466 if br_path not in ctx: 466 if br_path not in ctx:
467 br_path2 = '' 467 br_path2 = ''
468 if br_path != '': 468 if br_path != '':
469 br_path2 = br_path + '/' 469 br_path2 = br_path + '/'
470 # assuming it is a directory 470 # assuming it is a directory
471 for f in ctx: 471 def delete_x(x):
472 if f.startswith(br_path2): 472 self.deleted_files[x] = True
473 f_p = '%s/%s' % (path, f[len(br_path2):]) 473 map(delete_x, [pat for pat in self.current_files.iterkeys()
474 if pat.startswith(path)])
475 for f in ctx.walk(our_util.PrefixMatch(br_path2)):
476 f_p = '%s/%s' % (path, f[len(br_path2):])
477 if f_p not in self.current_files:
474 self.deleted_files[f_p] = True 478 self.deleted_files[f_p] = True
475 self.current_files[f_p] = '' 479 self.current_files[f_p] = ''
476 self.ui.status('D %s\n' % f_p) 480 self.ui.status('D %s\n' % f_p)
477 self.deleted_files[path] = True 481 self.deleted_files[path] = True
478 self.current_files[path] = '' 482 self.current_files[path] = ''
548 fctx = cp_f_ctx.filectx(f) 552 fctx = cp_f_ctx.filectx(f)
549 fp_c = path + '/' + f2 553 fp_c = path + '/' + f2
550 self.current_files[fp_c] = fctx.data() 554 self.current_files[fp_c] = fctx.data()
551 self.current_files_exec[fp_c] = 'x' in fctx.flags() 555 self.current_files_exec[fp_c] = 'x' in fctx.flags()
552 self.current_files_symlink[fp_c] = 'l' in fctx.flags() 556 self.current_files_symlink[fp_c] = 'l' in fctx.flags()
557 if fp_c in self.deleted_files:
558 del self.deleted_files[fp_c]
553 # TODO(augie) tag copies from files 559 # TODO(augie) tag copies from files
554 560
555 @stash_exception_on_self 561 @stash_exception_on_self
556 def change_file_prop(self, file_baton, name, value, pool=None): 562 def change_file_prop(self, file_baton, name, value, pool=None):
557 if name == 'svn:executable': 563 if name == 'svn:executable':