Mercurial > public > mercurial-scm > hg
comparison mercurial/patch.py @ 14564:65f4512e40e4
patch: turn patch() touched files dict into a set
author | Patrick Mezard <pmezard@gmail.com> |
---|---|
date | Sat, 11 Jun 2011 14:14:11 +0200 |
parents | e597ef52a7c2 |
children | 3cacc232f27f |
comparison
equal
deleted
inserted
replaced
14563:81fc9678b018 | 14564:65f4512e40e4 |
---|---|
1221 if state == 'hunk': | 1221 if state == 'hunk': |
1222 if not current_file: | 1222 if not current_file: |
1223 continue | 1223 continue |
1224 ret = current_file.apply(values) | 1224 ret = current_file.apply(values) |
1225 if ret >= 0: | 1225 if ret >= 0: |
1226 changed.setdefault(current_file.fname, None) | 1226 changed.add(current_file.fname) |
1227 if ret > 0: | 1227 if ret > 0: |
1228 err = 1 | 1228 err = 1 |
1229 elif state == 'file': | 1229 elif state == 'file': |
1230 if current_file: | 1230 if current_file: |
1231 rejects += current_file.close() | 1231 rejects += current_file.close() |
1234 copysource = None | 1234 copysource = None |
1235 if gp: | 1235 if gp: |
1236 path = pstrip(gp.path) | 1236 path = pstrip(gp.path) |
1237 if gp.oldpath: | 1237 if gp.oldpath: |
1238 copysource = pstrip(gp.oldpath) | 1238 copysource = pstrip(gp.oldpath) |
1239 changed[path] = gp | 1239 changed.add(path) |
1240 if gp.op == 'RENAME': | 1240 if gp.op == 'RENAME': |
1241 backend.unlink(copysource) | 1241 backend.unlink(copysource) |
1242 if not first_hunk: | 1242 if not first_hunk: |
1243 if gp.op == 'DELETE': | 1243 if gp.op == 'DELETE': |
1244 backend.unlink(path) | 1244 backend.unlink(path) |
1304 line = line.rstrip() | 1304 line = line.rstrip() |
1305 ui.note(line + '\n') | 1305 ui.note(line + '\n') |
1306 if line.startswith('patching file '): | 1306 if line.startswith('patching file '): |
1307 pf = util.parsepatchoutput(line) | 1307 pf = util.parsepatchoutput(line) |
1308 printed_file = False | 1308 printed_file = False |
1309 files.setdefault(pf, None) | 1309 files.add(pf) |
1310 elif line.find('with fuzz') >= 0: | 1310 elif line.find('with fuzz') >= 0: |
1311 fuzz = True | 1311 fuzz = True |
1312 if not printed_file: | 1312 if not printed_file: |
1313 ui.warn(pf + '\n') | 1313 ui.warn(pf + '\n') |
1314 printed_file = True | 1314 printed_file = True |
1338 similarity=0): | 1338 similarity=0): |
1339 """use builtin patch to apply <patchobj> to the working directory. | 1339 """use builtin patch to apply <patchobj> to the working directory. |
1340 returns whether patch was applied with fuzz factor.""" | 1340 returns whether patch was applied with fuzz factor.""" |
1341 | 1341 |
1342 if files is None: | 1342 if files is None: |
1343 files = {} | 1343 files = set() |
1344 if eolmode is None: | 1344 if eolmode is None: |
1345 eolmode = ui.config('patch', 'eol', 'strict') | 1345 eolmode = ui.config('patch', 'eol', 'strict') |
1346 if eolmode.lower() not in eolmodes: | 1346 if eolmode.lower() not in eolmodes: |
1347 raise util.Abort(_('unsupported line endings type: %s') % eolmode) | 1347 raise util.Abort(_('unsupported line endings type: %s') % eolmode) |
1348 eolmode = eolmode.lower() | 1348 eolmode = eolmode.lower() |
1357 ret = applydiff(ui, fp, files, backend, store, strip=strip, | 1357 ret = applydiff(ui, fp, files, backend, store, strip=strip, |
1358 eolmode=eolmode) | 1358 eolmode=eolmode) |
1359 finally: | 1359 finally: |
1360 if fp != patchobj: | 1360 if fp != patchobj: |
1361 fp.close() | 1361 fp.close() |
1362 files.update(dict.fromkeys(backend.close())) | 1362 files.update(backend.close()) |
1363 store.close() | 1363 store.close() |
1364 if ret < 0: | 1364 if ret < 0: |
1365 raise PatchError(_('patch failed to apply')) | 1365 raise PatchError(_('patch failed to apply')) |
1366 return ret > 0 | 1366 return ret > 0 |
1367 | 1367 |
1378 | 1378 |
1379 Returns whether patch was applied with fuzz factor. | 1379 Returns whether patch was applied with fuzz factor. |
1380 """ | 1380 """ |
1381 patcher = ui.config('ui', 'patch') | 1381 patcher = ui.config('ui', 'patch') |
1382 if files is None: | 1382 if files is None: |
1383 files = {} | 1383 files = set() |
1384 try: | 1384 try: |
1385 if patcher: | 1385 if patcher: |
1386 return _externalpatch(ui, repo, patcher, patchname, strip, | 1386 return _externalpatch(ui, repo, patcher, patchname, strip, |
1387 files, similarity) | 1387 files, similarity) |
1388 return internalpatch(ui, repo, patchname, strip, files, eolmode, | 1388 return internalpatch(ui, repo, patchname, strip, files, eolmode, |