line endings redux (was: 0.15 is)

John Whitley whitley at acm.org
Tue Mar 6 04:18:49 GMT 2007


Martin Pool wrote:
> Did you check out the spec here?
>
> https://blueprints.beta.launchpad.net/bzr/+spec/line-endings

That should be: https://launchpad.net/bzr/+spec/line-endings

(we lowly masses can't get into the launchpad beta site  ;-)

> Maybe you can add something to it or help people get get to  
> consensus on
> how it should work.

There was some (relatively) recent discussion here along those lines  
(Jan 16,17,31 and Feb 1st).  For convenience, I'll summarize the last  
state of the discussion as I read it here:

* A .bzrignore-like file (proposed: .bzreol) with globs stores the  
defaults
   for line ending conventions.
* File properties are used to persist the per-file line-ending  
convention
   information.
* A working tree format bump is required to ensure that the eol  
conventions are
   never ignored.

I believe that the second item (eol as a file property) should  
satisfy concerns raised by Alexander w.r.t. commit/checkout ordering  
regarding .bzreol, as well as partial commit issues with .bzreol.

Some open questions to spark discussion and/or further spec writing:
* What command(s) are needed to manipulate the EOL property on  
existing files?

* What values of the EOL property are supported?  What are the  
semantics of each?
   (Jan Hudec gives a nice enumeration of the possibilities in the  
current spec.)

* Are there any issues to consider when upgrading an existing branch?

* When a user upgrades a branch to the new working tree format, how  
do they set
   the appropriate eol properties on existing files in the tree?

* Binary file detection/handling.  EOL conversion can corrupt files,  
so care
   is needed here.

* How/where to manifest EOL settings in the UI (status, etc. )?  This  
dovetails
   with the above item -- e.g. can an alert user see when an added  
file doesn't
   have the correct EOL setting?

I'm up for helping drive the spec to closure.  Depending on the  
timeframe, I may also be able to spend some cycles on implementation.

-- John





More information about the bazaar mailing list