[squeak-dev] Re: New trunk server
Andreas Raab
andreas.raab at gmx.de
Mon Jan 11 01:42:21 UTC 2010
Levente Uzonyi wrote:
> On Sun, 10 Jan 2010, Levente Uzonyi wrote:
>
>> On Sun, 10 Jan 2010, Andreas Raab wrote:
>>
>>> Levente Uzonyi wrote:
>>>> It works, but there's a new (minor) issue: the diff contains double
>>>> line endings. And the old green image was better than the current
>>>> blue on the web interface, because other style elements are for the
>>>> green image.
>>>
>>> Both should be fixed now.
>>
>> There are (at least) three ways to fix the extra empty lines issue:
>> 1. restore the original behavior in TextDiffBuilder >> #split: by using
>> endWithoutSeparators instead of end.
>> 2. update TextDiffBuilder >> #printTextPatchSequence:on: to add cr if and
>> only if the line doesn't end with cr or crlf.
>> 3. create a subclass of TextDiffBuilder that overrides #split: and throws
>> away line endings. and use that from MCDiffyTextWriter. The extension
>> methods could be moved there too.
>
> I finally fixed it in a fourth way by making #buildPatchSequence more
> backwards compatible by ignoring crs (System-ul.230). A fifth solution
> would be to change #buildTextPatch to use
> #patchSequenceDoIfMatch:ifInsert:ifRemove: directly, like:
>
> TextDiffBuilder >> #buildTextPatch
>
> ^String streamContents: [ :stream |
> self
> patchSequenceDoIfMatch: [ :string |
> stream space: 2.
> self print: string withAttributes: nil on: stream ]
> ifInsert: [ :string |
> stream nextPutAll: '+ '.
> self print: string withAttributes: nil on: stream ]
> ifRemove: [ :string |
> stream nextPutAll: '- '.
> self print: string withAttributes: nil on: stream ] ]
>
> This would also allow us to remove #stringForAttributes: and
> #printTextPatchSequence:on:.
I think I'll leave that decision to you, you seem to have a good handle
on this part of the system. FWIW, I had implemented option #2 for our
SqueakSource installation realizing that it would be robust even if we
decided to leave out the CRs from the diff.
Cheers,
- Andreas
More information about the Squeak-dev
mailing list
|