[PATCH 5 of 6] patch: add mempatching support
Augie Fackler
durin42 at gmail.com
Mon Apr 19 20:25:54 CDT 2010
On Apr 19, 2010, at 7:26 PM, Bill Barry wrote:
> Awesome!!!
> /me looks forward to hg 1.6
>
> Augie Fackler wrote:
>> + def readlines(self, fname):
>> + if fname not in self.parentctx:
>> + raise IOError(errno.ENOENT, 'Cannot find %r to patch'
>> % fname)
>> + # TODO(durin42): refactor so we can skip StringIO here
>> + lr =
>> linereader(cStringIO.StringIO(self.parentctx[fname].data()),
>> + self.eolmode != 'strict')
>> + self.eol = lr.eol
>> + return list(lr)
> What do you mean with this TODO (perhaps I am not understanding bits
> of the code here)? I am trying to understand what can be refactored
> so that the instantiation can be skipped
> (self.parentctx[fname].data() is a byte array isn't it?).
Yes, it's a byte array, but there are other things depending on it
being file-like right now (as far as I could tell). I wanted to get
these patches done so I could try and do some cleanup in patch.py later.
>> +def memapplydiff(ui, fp, ctx, strip=1, eolmode='strict'):
>> + """Apply a diff in memory to ctx.
>> +
>> + If the diff doesn't apply cleanly, this will raise a PatchError,
>> + since reject files can't be sanely written.
>> + """
>>
> What affect would this have on some potential future integration
> with a wiggle type program?
Not sure what you mean by a "wiggle" type program.
More information about the Mercurial-devel
mailing list