[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Monotone-devel] line endings
From: |
Howard Spindel |
Subject: |
[Monotone-devel] line endings |
Date: |
Wed, 01 Feb 2006 18:59:12 -0800 |
It seems to me that to be completely general monotone needs a
per-file certificate specifying the permissible
transformations. Examples of the settings available in that certificate:
1. Never transform anything
2. Database file is LF line terminated, transform LFs to platform
specific in/out
3. Database file is CR/LF line terminated, transform CR/LFs to
platform specific in/out
4. Whatever additional combinations are possible (does monotone have
to worry about big-endian vs little-endian ever?)
"Platform specific" could be determined by system call, overrideable by hook.
Monotone would request the correct setting on initial file
check-in. For backwards compatibility, if the certificate does not
exist monotone does whatever it does now but requests the correct
setting on next file check-in.
The problem I see in the discussions so far is not in knowing what to
do on the platform you're on, but in knowing what's stored in the
database. Monotone could use heuristics to determine that, but if
the heuristics fail the user gets a big, maybe nasty surprise.
In a project development environment where everyone uses the same OS,
"never transform anything" should work well for all files and perhaps
there should be a way to tell monotone that this case exists.
Since I know nothing of monotone internals, I acknowledge that I
could be way off-base on something here.
Howard