comparison hgext/histedit.py @ 22296:650b5b6e75ed

convert: use None value for missing files instead of overloading IOError The internal API used IOError to indicate that a file should be marked as removed. There is some correlation between IOError (especially with ENOENT) and files that should be removed, but using IOErrors to represent file removal internally required some hacks. Instead, use the value None to indicate that the file not is present. Before, spurious IO errors could cause commits that silently removed files. They will now be reported like all other IO errors so the root cause can be fixed.
author Mads Kiilerich <madski@unity3d.com>
date Tue, 26 Aug 2014 22:03:32 +0200
parents 7eef5a87ce3f
children 897041f6b025
comparison
equal deleted inserted replaced
22295:926bc0d3b595 22296:650b5b6e75ed
281 fctx.path(), fctx.data(), 281 fctx.path(), fctx.data(),
282 islink='l' in flags, 282 islink='l' in flags,
283 isexec='x' in flags, 283 isexec='x' in flags,
284 copied=copied.get(path)) 284 copied=copied.get(path))
285 return mctx 285 return mctx
286 raise IOError() 286 return None
287 287
288 if commitopts.get('message'): 288 if commitopts.get('message'):
289 message = commitopts['message'] 289 message = commitopts['message']
290 else: 290 else:
291 message = first.description() 291 message = first.description()