Subject: [boost] Line endings in Git (was: [git] conversion stalled)
From: Dave Abrahams (dave_at_[hidden])
Date: 2013-10-27 13:38:21
Beman Dawes <bdawes_at_[hidden]> writes:
> 3) As a library maintainer, I want all line endings in my libraries to
> be faithfully preserved by Git, both at conversion and into the
> future. I see it as quite a black eye for Git if that can't happen.
Git is a "stupid content tracker," so at its lowest levels it doesn't
know anything about text or line endings, and therefore they're
preserved just like any other bits stored by Git. The only
interesting question for Git is what happens to those line endings when
a given file is checked out on a given system with a given set of user
preferences and a given .gitattributes file.
Subversion, on the other hand, has "smarts" about line endings that
affect not only how they're checked out, but how they're stored on the
server. It tries to remember whether a file is a text file (its whole
MIME-type actually) and what kind of line endings it was stored with.
So the question of what it means to "preserve" line endings stored in
Subversion is a bit more complicated.
Right now our translation pulls the bytes out of Subversion and stores
them literally in Git, so by definition there's no lost information
/except/ what may be given by SVN attributes like svn:mime-type and
I dont' remember exactly what problem we're trying to solve here; I read
which documents the initial evolution of the issue. We may have
concluded eventually that people were trying to correct mistakes in SVN
history, like checking in files with the wrong attributes, and if that
were the case, I would surely have decided that this should not be the
role of the conversion tool.