comparison hg_delta_editor.py @ 181:e37f9d3fd5e7

remove decorators (compat with python2.3)
author Benoit Boissinot <benoit.boissinot@ens-lyon.org>
date Tue, 13 Jan 2009 13:59:50 +0100
parents a336e3e82648
children 6266ba36ee15
comparison
equal deleted inserted replaced
180:3f1e8a5ec9dd 181:e37f9d3fd5e7
630 self.ui.warn( 630 self.ui.warn(
631 ('Ignoring bad line in filemap %s: %s\n') 631 ('Ignoring bad line in filemap %s: %s\n')
632 % (filemapfile, line.rstrip())) 632 % (filemapfile, line.rstrip()))
633 f.close() 633 f.close()
634 634
635 @property
636 def meta_data_dir(self): 635 def meta_data_dir(self):
637 return os.path.join(self.path, '.hg', 'svn') 636 return os.path.join(self.path, '.hg', 'svn')
637 meta_data_dir = property(meta_data_dir)
638 638
639 def meta_file_named(self, name): 639 def meta_file_named(self, name):
640 return os.path.join(self.meta_data_dir, name) 640 return os.path.join(self.meta_data_dir, name)
641 641
642 @property
643 def revmap_file(self): 642 def revmap_file(self):
644 return self.meta_file_named('rev_map') 643 return self.meta_file_named('rev_map')
645 644 revmap_file = property(revmap_file)
646 @property 645
647 def svn_url_file(self): 646 def svn_url_file(self):
648 return self.meta_file_named('url') 647 return self.meta_file_named('url')
649 648 svn_url_file = property(svn_url_file)
650 @property 649
651 def uuid_file(self): 650 def uuid_file(self):
652 return self.meta_file_named('uuid') 651 return self.meta_file_named('uuid')
653 652 uuid_file = property(uuid_file)
654 @property 653
655 def last_revision_handled_file(self): 654 def last_revision_handled_file(self):
656 return self.meta_file_named('last_rev') 655 return self.meta_file_named('last_rev')
657 656 last_revision_handled_file = property(last_revision_handled_file)
658 @property 657
659 def branch_info_file(self): 658 def branch_info_file(self):
660 return self.meta_file_named('branch_info') 659 return self.meta_file_named('branch_info')
661 660 branch_info_file = property(branch_info_file)
662 @property 661
663 def tag_info_file(self): 662 def tag_info_file(self):
664 return self.meta_file_named('tag_info') 663 return self.meta_file_named('tag_info')
665 664 tag_info_file = property(tag_info_file)
666 @property 665
667 def tag_locations_file(self): 666 def tag_locations_file(self):
668 return self.meta_file_named('tag_locations') 667 return self.meta_file_named('tag_locations')
669 668 tag_locations_file = property(tag_locations_file)
670 @property 669
671 def url(self): 670 def url(self):
672 return open(self.svn_url_file).read() 671 return open(self.svn_url_file).read()
673 672 url = property(url)
674 @property 673
675 def authors_file(self): 674 def authors_file(self):
676 return self.meta_file_named('authors') 675 return self.meta_file_named('authors')
677 676 authors_file = property(authors_file)
678 @stash_exception_on_self 677
679 def delete_entry(self, path, revision_bogus, parent_baton, pool=None): 678 def delete_entry(self, path, revision_bogus, parent_baton, pool=None):
680 br_path, branch = self._path_and_branch_for_path(path) 679 br_path, branch = self._path_and_branch_for_path(path)
681 if br_path == '': 680 if br_path == '':
682 self.branches_to_delete.add(branch) 681 self.branches_to_delete.add(branch)
683 if br_path is not None: 682 if br_path is not None:
698 for f in ctx.walk(our_util.PrefixMatch(br_path2)): 697 for f in ctx.walk(our_util.PrefixMatch(br_path2)):
699 f_p = '%s/%s' % (path, f[len(br_path2):]) 698 f_p = '%s/%s' % (path, f[len(br_path2):])
700 if f_p not in self.current_files: 699 if f_p not in self.current_files:
701 self.delete_file(f_p) 700 self.delete_file(f_p)
702 self.delete_file(path) 701 self.delete_file(path)
703 702 delete_entry = stash_exception_on_self(delete_entry)
704 @stash_exception_on_self 703
705 def open_file(self, path, parent_baton, base_revision, p=None): 704 def open_file(self, path, parent_baton, base_revision, p=None):
706 self.current_file = 'foobaz' 705 self.current_file = 'foobaz'
707 fpath, branch = self._path_and_branch_for_path(path) 706 fpath, branch = self._path_and_branch_for_path(path)
708 if fpath: 707 if fpath:
709 self.current_file = path 708 self.current_file = path
711 if base_revision != -1: 710 if base_revision != -1:
712 self.base_revision = base_revision 711 self.base_revision = base_revision
713 else: 712 else:
714 self.base_revision = None 713 self.base_revision = None
715 self.should_edit_most_recent_plaintext = True 714 self.should_edit_most_recent_plaintext = True
715 open_file = stash_exception_on_self(open_file)
716 716
717 def aresamefiles(self, parentctx, childctx, files): 717 def aresamefiles(self, parentctx, childctx, files):
718 """Assuming all files exist in childctx and parentctx, return True 718 """Assuming all files exist in childctx and parentctx, return True
719 if none of them was changed in-between. 719 if none of them was changed in-between.
720 """ 720 """
736 if f in files: 736 if f in files:
737 return False 737 return False
738 # parentctx is not an ancestor of childctx, files are unrelated 738 # parentctx is not an ancestor of childctx, files are unrelated
739 return False 739 return False
740 740
741 @stash_exception_on_self
742 def add_file(self, path, parent_baton, copyfrom_path, 741 def add_file(self, path, parent_baton, copyfrom_path,
743 copyfrom_revision, file_pool=None): 742 copyfrom_revision, file_pool=None):
744 self.current_file = 'foobaz' 743 self.current_file = 'foobaz'
745 self.base_revision = None 744 self.base_revision = None
746 if path in self.deleted_files: 745 if path in self.deleted_files:
772 branch) 771 branch)
773 if parentid != revlog.nullid: 772 if parentid != revlog.nullid:
774 parentctx = self.repo.changectx(parentid) 773 parentctx = self.repo.changectx(parentid)
775 if self.aresamefiles(parentctx, ctx, [from_file]): 774 if self.aresamefiles(parentctx, ctx, [from_file]):
776 self.copies[path] = from_file 775 self.copies[path] = from_file
777 776 add_file = stash_exception_on_self(add_file)
778 @stash_exception_on_self 777
779 def add_directory(self, path, parent_baton, copyfrom_path, 778 def add_directory(self, path, parent_baton, copyfrom_path,
780 copyfrom_revision, dir_pool=None): 779 copyfrom_revision, dir_pool=None):
781 self.dir_batons[path] = path 780 self.dir_batons[path] = path
782 br_path, branch = self._path_and_branch_for_path(path) 781 br_path, branch = self._path_and_branch_for_path(path)
783 if br_path is not None: 782 if br_path is not None:
830 if parentid != revlog.nullid: 829 if parentid != revlog.nullid:
831 parentctx = self.repo.changectx(parentid) 830 parentctx = self.repo.changectx(parentid)
832 if self.aresamefiles(parentctx, cp_f_ctx, copies.values()): 831 if self.aresamefiles(parentctx, cp_f_ctx, copies.values()):
833 self.copies.update(copies) 832 self.copies.update(copies)
834 return path 833 return path
835 834 add_directory = stash_exception_on_self(add_directory)
836 @stash_exception_on_self 835
837 def change_file_prop(self, file_baton, name, value, pool=None): 836 def change_file_prop(self, file_baton, name, value, pool=None):
838 if name == 'svn:executable': 837 if name == 'svn:executable':
839 self.current_files_exec[self.current_file] = bool(value is not None) 838 self.current_files_exec[self.current_file] = bool(value is not None)
840 elif name == 'svn:special': 839 elif name == 'svn:special':
841 self.current_files_symlink[self.current_file] = bool(value is not None) 840 self.current_files_symlink[self.current_file] = bool(value is not None)
842 841 change_file_prop = stash_exception_on_self(change_file_prop)
843 @stash_exception_on_self 842
844 def change_dir_prop(self, dir_baton, name, value, pool=None): 843 def change_dir_prop(self, dir_baton, name, value, pool=None):
845 if dir_baton is None: 844 if dir_baton is None:
846 return 845 return
847 path = self.dir_batons[dir_baton] 846 path = self.dir_batons[dir_baton]
848 if name == 'svn:externals': 847 if name == 'svn:externals':
849 self.externals[path] = value 848 self.externals[path] = value
850 849 change_dir_prop = stash_exception_on_self(change_dir_prop)
851 @stash_exception_on_self 850
852 def open_directory(self, path, parent_baton, base_revision, dir_pool=None): 851 def open_directory(self, path, parent_baton, base_revision, dir_pool=None):
853 self.dir_batons[path] = path 852 self.dir_batons[path] = path
854 p_, branch = self._path_and_branch_for_path(path) 853 p_, branch = self._path_and_branch_for_path(path)
855 if p_ == '': 854 if p_ == '':
856 self.commit_branches_empty[branch] = False 855 self.commit_branches_empty[branch] = False
857 return path 856 return path
858 857 open_directory = stash_exception_on_self(open_directory)
859 @stash_exception_on_self 858
860 def close_directory(self, dir_baton, dir_pool=None): 859 def close_directory(self, dir_baton, dir_pool=None):
861 if dir_baton is not None: 860 if dir_baton is not None:
862 del self.dir_batons[dir_baton] 861 del self.dir_batons[dir_baton]
863 862 close_directory = stash_exception_on_self(close_directory)
864 @stash_exception_on_self 863
865 def apply_textdelta(self, file_baton, base_checksum, pool=None): 864 def apply_textdelta(self, file_baton, base_checksum, pool=None):
866 base = '' 865 base = ''
867 if not self._is_path_valid(self.current_file): 866 if not self._is_path_valid(self.current_file):
868 return lambda x: None 867 return lambda x: None
869 if (self.current_file in self.current_files 868 if (self.current_file in self.current_files
911 except: #pragma: no cover 910 except: #pragma: no cover
912 print len(base), self.current_file 911 print len(base), self.current_file
913 self._exception_info = sys.exc_info() 912 self._exception_info = sys.exc_info()
914 raise 913 raise
915 return txdelt_window 914 return txdelt_window
915 apply_textdelta = stash_exception_on_self(apply_textdelta)
916 916
917 class MissingPlainTextError(Exception): 917 class MissingPlainTextError(Exception):
918 """Exception raised when the repo lacks a source file required for replaying 918 """Exception raised when the repo lacks a source file required for replaying
919 a txdelta. 919 a txdelta.
920 """ 920 """