[BUG]DVS breaks FileContentsBrowser diffing

Daniel Vainsencher danielv at netvision.net.il
Fri Jun 27 15:04:54 UTC 2003


Looking from the outside in, with the usual caveats that implies, I
wonder whether you would'nt be done about as fast and be doing more fun
and widely usable work if you focused on dumping the CVS dependency
instead of trying to loosen Squeak up enough that it will swallow this
frog....

Thinking about this another way, I'm sure XML files deal with line ends
somehow, I'm sure it is platform invariant, and I'm sure people get
along storing XML files in CVS or similar repositories somehow. Maybe
you could be doing whatever they're doing? maybe the monticello should
be SIF?

Daniel

Avi Bryant <avi at beta4.com> wrote:
> 
> On Fri, 27 Jun 2003, Tim Rowledge wrote:
> 
> > Looks to me as if DVS needs a lineend rework somewhere.
> 
> <big sigh>
> 
> If I ever find the person responsible for the whole notion of incompatible
> line ending conventions, I will present them with a very large invoice for
> lost time...
> 
> The good news is that I spent a chunk of today doing line ending work on
> Monticello.  After having quashed line ending bug after line ending bug
> and having them keep on popping up, I'm pretty sure that we've driven a
> stake through the whole issue and cut off its head for good.
> 
> For those that are interested, this is what Julian, Colin and I came up
> with:
> 
> - All Monticello packages are loaded using CrLfFileStream, to ensure that
> everything in the image is using CR
> - When filing out a package over an already existing file, the new version
> will use the same convention as that existing file
> - If there is no pre-existing file, the fileout will use the same
> conventions as the last file for that package that was filed in
> - If the package has never been filed in, the fileout will use the native
> line endings for the current OS
> 
> So, *if* you were using Monticello (and I've just updated SM with a new
> snapshot) line-endings should finally Just Work.
> 
> Now, one could try to update DVS to use the same strategy.  There
> are two problems with this:
> 
> 1. One nice thing about DVS is it uses normal chunk format for its
> fileouts.  This means you can file it in without using DVS.  This also
> means that people *are going to* file in DVS packages without DVS, and
> those packages *are going to* have line-endings other than CR.  That means
> you will end up with LFs inside your source, which I assume was at the
> root of Tim's problem.
> 
> Ultimately (and this is the bad news), the line ending issues in DVS are a
> result of a fundamentally flawed goal - to be compatible both with CVS and
> with Squeak chunk format.  It's flawed because part of the definition of
> Squeak chunk format is that it uses CRs for line ending, and part of being
> compatible with CVS is to use the appropiate line ending convention for
> your host OS.  So you *can't* really have one format that does both, and
> you end up not being fully compatible with either.  Better to define an
> entire new format, as Monticello does, which brings me to:
> 
> 2. At this point Monticello does everything DVS does and much more, and it
> doesn't have line-ending problems (fingers crossed).  There's no excuse
> not to use it, except possibly for a lack of documentation (and if you
> can't figure it out, I will write detailed emails until you can).  So use
> it, please.  The only thing I currently use DVS for is for Monticello
> itself, and when I find another couple of hours I'll come up with a
> bootstrap strategy so that I can get rid of that dependency as well...
> 
> Ok, that was an excessively long and emphatic email, but it's been a
> frustrating few days in line-ending land.
> 
> Cheers,
> Avi



More information about the Squeak-dev mailing list