Speaking as a Windows developer, let me pitch in with a couple thoughts:
- Casual Windows users may not have software that copes with
varying line endings, but all the programmer's editors deal with it no
problem. Still, it'd be nice if monotone helped to mitigate the
problem.
- Personally I'd prefer it if monotone stored text files in some
canonical format, and converted to/from local format on sync / commit.
Normalizing eols to just LFs seems fine to me, as would stripping out
the payload from $Foo:$ tags (not that monotone handles those yet, I
gather). Two people checking in the "same" file, where they differ
only by the local eol convention, should result in generating the same
hash.
- How should it normalize text files with inconsistent eols? If
I'm on Windows, and I check in a file with CR LF LF, what should it
do? I suggest monotone use the following heuristic, regardless of the
local platform: when you first see either CR or LF, store an LF. If
the next character is the other eol character, ignore it.
Cheers,
larry
|