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
Received on Mon Oct 24 02:59:24 2005