Launchpad logo and name.


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index ][Thread Index ]

Re: [Launchpad-users] Line Ending Problems



Thanks for the help so far... it's taken a while to get it implemented
and now we have another blockage... 

After upgrading bazaar and our repository format, I set up a rules
file similar to what you describe. I did a commit from a linux
machine with the rules in place and then did a pull from a
windows machine. All the text files had LF only endings.

I experimented and found that for a standalone tree or a shared 
repository with trees, it worked OK but for a lightweight checkout 
of a local shared repository I end up with the wrong line endings
if I merely pull. I have to recreate the shared checkout.

Is this a bug? A known bug?

Charlie

> -----Original Message-----
> From: 
> launchpad-users-bounces+charlie=nunit.com@xxxxxxxxxxxxxxxxxxx 
> [mailto:launchpad-users-bounces+charlie=nunit.com@xxxxxxxxxxxx
> pad.net] On Behalf Of Richard Wilbur
> Sent: Monday, October 12, 2009 9:20 AM
> To: launchpad-users@xxxxxxxxxxxxxxxxxxx
> Subject: Re: [Launchpad-users] Line Ending Problems
> 
> On Sun, 2009-09-27 at 18:37 -0700, Charlie Poole wrote: 
> > Hi All,
> > 
> > Several of my projects (e.g.: nunitv2, nunit-3.0, nunit-summary) 
> > started out on windows and have crlf line endings. Now that 
> I've got a 
> > few people working in linux, we are starting to see issues with our 
> > diffs, with the real changes buried in the midst of a bunch of line 
> > ending changes.
> > 
> > I've looked at using the eol setting in the rules file, but 
> I have a 
> > 'few' questions...
> > 
> The best documentation I have seen on the subject of bzr 
> rules for eol handling appear in the bzr user reference[1].
> 
> > 1) Will using this filter require updating each dev's repo
> >    format? What about the format on Launchpad?
> > 
> Only if the repo format version is less than "1.14", bzr info 
> -v will show the format even for remote repositories as long 
> as the access method is sftp or http, not bzr+ssh!  To enable 
> this you'll need bzr version >= 1.14 on everyone's machine 
> who'll be contributing (this will be a natural outgrowth of 
> upgrading the repository format at least to "1.14").
> 
> > 2) How can I ensure that everybody uses the proper eol value?
> > 
> Set the rule for everything that isn't platform-specific to 
> "native" or "native-with-crlf-in-repo".  DOS- or Win-specific 
> files like batch files
> (*.bat) can have a rule "crlf" while *nix-specific files like 
> shell scripts (*.sh) can have a rule "lf".
> 
> > 3) How can I initially force all the stored line endings to
> >    the selected value? Or do I have to do that? 
> > 
> No need to initially force all stored line endings to a 
> particular value because after you upgrade the repository and 
> set up the rules the next commit of each file will change the 
> line-endings of that file to conform to the rules you have set up.
> 
> > 4) If I do make such a change, will it mess up the history?
> > 
> The automatic change at the next commit should not mess up 
> the history.
> The diff will merely show unannounced line ending changes if 
> the rules specify a change.
> 
> > 5) Am I better off using native or native-with-crlf-in-repo
> >    in this situation?
> > 
> I would suggest native for a new project but 
> native-with-crlf-in-repo for this situation as this will not 
> introduce any superfluous line-ending changes in the history.
> > 6) Is this likely to get easier in the future and - if so -
> >    am I better off doing something temporary for now and
> >    planning on a major change later?
> > 
> I doubt the situation is going to become simpler.  I suspect 
> this is a case of irreducible complexity.  On the other hand, 
> a reasonably simple set of rules will allow you to avoid a 
> lot of grief as bzr will just make sure your file abides by 
> the line-endings you specified in the rules configuration 
> when it commits changes to a file!
> 
> Recommended rules file:  $BZR_HOME/.bazaar/rules
> -------------------------------------------------------
> [name *.png]
> eol = exact
> 
> [name *.bat]
> eol = crlf
> 
> [name *.sh]
> eol = lf-with-crlf-in-repo
> 
> [name *]
> eol = native-with-crlf-in-repo
> -------------------------------------------------------
> Commentary:
> The first rule is for binary files that may not have a null 
> byte--bzr won't even try to change their line endings.
> 
> Next is for a file that is native to CRLF environment 
> (MS-DOS, Windows).
> 
> Then we have a rule to avoid unnecessary line-ending changes 
> in an already CRLF repository for a file whose native 
> environment uses LF line-endings (Linux, *nix).
> 
> Finally, for everything else, leave the repository in CRLF 
> but use the native format for working trees.  This avoids 
> further unnecessary line-ending changes.
> 
> 
> Let me know if you have more questions about bzr or if any of 
> these answers miss the mark or bring up other questions.
> 
> Richard
> 
> References:
> [1]
> http://doc.bazaar-vcs.org/bzr.dev/en/user-reference/bzr_man.ht
> ml#end-of-line-conversion 
> 
> --
> PGP public key at
> http://keyserver.ubuntu.com:11371/pks/lookup?op=get&search=0xA
> 7CEB3C711AFF0B0
> 
> 
> _______________________________________________
> Mailing list: https://launchpad.net/~launchpad-users
> Post to     : launchpad-users@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~launchpad-users
> More help   : https://help.launchpad.net/ListHelp
> 






This is the launchpad-users mailing list archive — see also the general help for Launchpad.net mailing lists.

(Formatted by MHonArc.)