comparison hgext/eol.py @ 14862:abf915f537be stable

eol: ignore IOError from deleted files in commitctx A Mercurial repo signals a file is deleted by raising IOError when the file's data is requested. This IOError is normally caught by localrepository.commitctx. With the eol extension enabled and EOL mappings in place, the eolrepo subclass should ignore IOError because a deleted file has no line endings to process. This issue exhibited itself when performing an incremental hg convert of a revision with deleted files to a repo with an existing .hgeol file.
author Nicholas Riley <njriley@illinois.edu>
date Tue, 12 Jul 2011 12:06:11 -0400
parents 56e71e7d2ba2
children ad6a58581ecd
comparison
equal deleted inserted replaced
14861:6ed2a449cb5b 14862:abf915f537be
316 316
317 def commitctx(self, ctx, error=False): 317 def commitctx(self, ctx, error=False):
318 for f in sorted(ctx.added() + ctx.modified()): 318 for f in sorted(ctx.added() + ctx.modified()):
319 if not self._eolfile(f): 319 if not self._eolfile(f):
320 continue 320 continue
321 data = ctx[f].data() 321 try:
322 data = ctx[f].data()
323 except IOError:
324 continue
322 if util.binary(data): 325 if util.binary(data):
323 # We should not abort here, since the user should 326 # We should not abort here, since the user should
324 # be able to say "** = native" to automatically 327 # be able to say "** = native" to automatically
325 # have all non-binary files taken care of. 328 # have all non-binary files taken care of.
326 continue 329 continue