Mercurial > hg
comparison mercurial/patch.py @ 13701:bc38ff7cb919
patch: move closefile() into patchfile.close()
author | Patrick Mezard <pmezard@gmail.com> |
---|---|
date | Sun, 20 Mar 2011 00:22:47 +0100 |
parents | 63307feb59dd |
children | 85d74f6babf6 |
comparison
equal
deleted
inserted
replaced
13700:63307feb59dd | 13701:bc38ff7cb919 |
---|---|
607 return fuzzlen | 607 return fuzzlen |
608 self.printfile(True) | 608 self.printfile(True) |
609 self.ui.warn(_("Hunk #%d FAILED at %d\n") % (h.number, orig_start)) | 609 self.ui.warn(_("Hunk #%d FAILED at %d\n") % (h.number, orig_start)) |
610 self.rej.append(horig) | 610 self.rej.append(horig) |
611 return -1 | 611 return -1 |
612 | |
613 def close(self): | |
614 if self.dirty: | |
615 self.writelines(self.fname, self.lines) | |
616 self.write_rej() | |
617 return len(self.rej) | |
612 | 618 |
613 class hunk(object): | 619 class hunk(object): |
614 def __init__(self, desc, num, lr, context, create=False, remove=False): | 620 def __init__(self, desc, num, lr, context, create=False, remove=False): |
615 self.number = num | 621 self.number = num |
616 self.desc = desc | 622 self.desc = desc |
1105 err = 0 | 1111 err = 0 |
1106 current_file = None | 1112 current_file = None |
1107 cwd = os.getcwd() | 1113 cwd = os.getcwd() |
1108 opener = util.opener(cwd) | 1114 opener = util.opener(cwd) |
1109 | 1115 |
1110 def closefile(): | |
1111 if not current_file: | |
1112 return 0 | |
1113 if current_file.dirty: | |
1114 current_file.writelines(current_file.fname, current_file.lines) | |
1115 current_file.write_rej() | |
1116 return len(current_file.rej) | |
1117 | |
1118 for state, values in iterhunks(ui, fp): | 1116 for state, values in iterhunks(ui, fp): |
1119 if state == 'hunk': | 1117 if state == 'hunk': |
1120 if not current_file: | 1118 if not current_file: |
1121 continue | 1119 continue |
1122 ret = current_file.apply(values) | 1120 ret = current_file.apply(values) |
1123 if ret >= 0: | 1121 if ret >= 0: |
1124 changed.setdefault(current_file.fname, None) | 1122 changed.setdefault(current_file.fname, None) |
1125 if ret > 0: | 1123 if ret > 0: |
1126 err = 1 | 1124 err = 1 |
1127 elif state == 'file': | 1125 elif state == 'file': |
1128 rejects += closefile() | 1126 if current_file: |
1127 rejects += current_file.close() | |
1129 afile, bfile, first_hunk = values | 1128 afile, bfile, first_hunk = values |
1130 try: | 1129 try: |
1131 current_file, missing = selectfile(afile, bfile, | 1130 current_file, missing = selectfile(afile, bfile, |
1132 first_hunk, strip) | 1131 first_hunk, strip) |
1133 current_file = patcher(ui, current_file, opener, | 1132 current_file = patcher(ui, current_file, opener, |
1148 copyfn(gp.oldpath, gp.path, cwd) | 1147 copyfn(gp.oldpath, gp.path, cwd) |
1149 changed[gp.path] = gp | 1148 changed[gp.path] = gp |
1150 else: | 1149 else: |
1151 raise util.Abort(_('unsupported parser state: %s') % state) | 1150 raise util.Abort(_('unsupported parser state: %s') % state) |
1152 | 1151 |
1153 rejects += closefile() | 1152 if current_file: |
1153 rejects += current_file.close() | |
1154 | 1154 |
1155 if rejects: | 1155 if rejects: |
1156 return -1 | 1156 return -1 |
1157 return err | 1157 return err |
1158 | 1158 |