comparison mercurial/fileset.py @ 38420:235d0bc11e1d

fileset: use filectx.isbinary() to filter out binaries in eol() Since LFS stores the binary attribute in the pointer file, this means that the file doesn't need to be downloaded in order to be skipped. This function also catches an IOError if the data can't be loaded in the non-LFS case. I wonder if it's worth storing the unix/dos attributes in the pointer file as well, though I'd expect LFS files to be binary most of the time.
author Matt Harbison <matt_harbison@yahoo.com>
date Thu, 21 Jun 2018 00:05:26 -0400
parents 8783f128048e
children d046bf37f1ba
comparison
equal deleted inserted replaced
38419:96871ca32270 38420:235d0bc11e1d
446 # i18n: "eol" is a keyword 446 # i18n: "eol" is a keyword
447 enc = getstring(x, _("eol requires a style name")) 447 enc = getstring(x, _("eol requires a style name"))
448 448
449 s = [] 449 s = []
450 for f in mctx.existing(): 450 for f in mctx.existing():
451 d = mctx.ctx[f].data() 451 fctx = mctx.ctx[f]
452 if stringutil.binary(d): 452 if fctx.isbinary():
453 continue 453 continue
454 d = fctx.data()
454 if (enc == 'dos' or enc == 'win') and '\r\n' in d: 455 if (enc == 'dos' or enc == 'win') and '\r\n' in d:
455 s.append(f) 456 s.append(f)
456 elif enc == 'unix' and re.search('(?<!\r)\n', d): 457 elif enc == 'unix' and re.search('(?<!\r)\n', d):
457 s.append(f) 458 s.append(f)
458 elif enc == 'mac' and re.search('\r(?!\n)', d): 459 elif enc == 'mac' and re.search('\r(?!\n)', d):