[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: EOL problems with "svn import"

From: C. Michael Pilato <cmpilato_at_collab.net>
Date: 2005-11-03 15:53:52 CET

Jim, I can confirm this behavior (and will annotate the issue with as
much).

Jim Paris <jim@jtan.com> writes:

> I'm having issues with EOLs when dealing with vendor branches, and I
> suspect it's due to a bug in "svn import". This is all being run on a
> Linux system, subversion 1.2.3 (r15833).
>
> First, I have the following auto-prop in my ~/.subversion/config:
>
> [auto-props]
> *.dsp = svn:eol-style=CRLF
>
> Now create a new repository:
>
> $ svnadmin create repo
>
> Create two files with CRLF line endings:
>
> $ echo -ne 'test1\r\n' > test1.dsp
> $ echo -ne 'test2\r\n' > test2.dsp
> $ file test1.dsp test2.dsp
> test1.dsp: ASCII text, with CRLF line terminators
> test2.dsp: ASCII text, with CRLF line terminators
>
> For the first, use "svn import":
>
> $ svn import test1.dsp file://`pwd`/repo -m 'import test1'
> Adding test1.dsp
>
> Committed revision 1.
>
> For the second, use "svn add":
>
> $ svn co file://`pwd`/repo wc
> A wc/test1.dsp
> Checked out revision 1.
> $ cd wc
> $ cp ../test2.dsp .
> $ svn add test2.dsp
> A test2.dsp
> $ svn commit -m 'add test2'
> Adding test2.dsp
> Transmitting file data .
> Committed revision 2.
>
> Now the two files appear similar:
>
> $ svn up
> At revision 2.
> $ file test1 test2
> test1.dsp: ASCII text, with CRLF line terminators
> test2.dsp: ASCII text, with CRLF line terminators
> $ svn propget svn:eol-style test1.dsp test2.dsp
> test1.dsp - CRLF
> test2.dsp - CRLF
>
> But they're stored differently in the repository:
>
> $ file .svn/text-base/*
> .svn/text-base/test1.dsp.svn-base: ASCII text
> .svn/text-base/test2.dsp.svn-base: ASCII text, with CRLF line terminators
>
> If I make any changes to test1.dsp and commit them, the entire file changes:
>
> $ echo -ne 'more\r\n' >> test1.dsp
> $ svn st
> M test1.dsp
> $ svn diff
> Index: test1.dsp
> ===================================================================
> --- test1.dsp (revision 2)
> +++ test1.dsp (working copy)
> @@ -1 +1,2 @@
> -test1
> +test1
> +more
>
> If I commit it, it now looks just like test2.dsp:
>
> $ svn commit -m 'change test1'
> Sending test1.dsp
> Transmitting file data .
> Committed revision 3.
> $ file .svn/text-base/*
> .svn/text-base/test1.dsp.svn-base: ASCII text, with CRLF line terminators
> .svn/text-base/test2.dsp.svn-base: ASCII text, with CRLF line terminators
>
> The problem I'm hitting is that merges get confused:
>
> $ cd ..
> $ svn co -r 2 file://`pwd`/repo wc-rev2
> A wc-rev2/test1.dsp
> A wc-rev2/test2.dsp
> Checked out revision 2.
> $ svn merge -r2:3 file://`pwd`/repo wc-rev2/
> C wc-rev2/test1.dsp
>
> when there really should have been no conflicts on that merge.
>
> Sorry for the long mail. Let me know if you need any more info.
>
> -jim
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
> For additional commands, e-mail: dev-help@subversion.tigris.org
>

-- 
C. Michael Pilato <cmpilato@collab.net>
CollabNet   <>   www.collab.net   <>   Distributed Development On Demand
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Thu Nov 3 15:55:50 2005

This is an archived mail posted to the Subversion Dev mailing list.