John Szakmeister <john@szakmeister.net> writes:
> I don't know if anyone else looked at this, but ghudson mentioned that
> when he did a 'cp -r' of his WC, all of a sudden some of the files in
> subversion/ bindings/com started showing up as being modified. I took
> a closer look, and saw that the files that exhibit this property have
> their eol-style set to CRLF. What I found out was that the text-base
> copy of the file didn't have CRLF line endings... they were just plain
> LF. Just to double check, I create a temp repository, shoved a few
> files in it, and toyed with changing the eol-style, and every time
> after a commit, the text-base's line ending were changed to match that
> of eol-style. I tried this using both ra_local and ra_dav and got the
> same results. Simply touching SVN.rgs in subversion/ bindings/com
> causes 'svn st' to state that the file is modified... at least on my
> Linux box.
Yeepers. Thanks for posting this...
Okay, so to summarize: your experiment with the temp repository seems
to show correct behavior -- the text bases should change, for
hardcoded eol styles. On the other hand, touching 'SVN.rgs' in our
tree shouldn't cause it to show up as modified. (And I just checked
mine by hand: the working file has CRLF line endings, the
svn:eol-style property is set to "CRLF", yet the text base is just LF
endings. That's wrong.)
This bug could be an old one that caused some working copy bogosity
and then got fixed, or it could still be present in Subversion. Or,
even if it doesn't show up in the committing working copy, it could be
happening in working copies that receive eol-style changes via update.
> So it seems we have a bit of a problem here (as ghudson eluded to on
> IRC). I just wanted to post my finding just in case someone knew what
> the problem is off the top of their head, or in case someone else was
> trying to track this down.
I'm trying to reproduce it, but so far this script doesn't reveal any
bad behavior:
#!/bin/sh
# Run this on a Unix (LF) system.
rm -rf repos wc wc2
svnadmin create repos
svn co file://`pwd`/repos wc
cd wc
echo "fish" > fish.txt
svn add fish.txt
svn ci -m "Adding fish.txt."
echo ""
echo "These ls's should report 5 bytes for each file:"
ls -l fish.txt .svn/text-base/fish.txt.svn-base
echo ""
cd ..
svn co file://`pwd`/repos wc2
cd wc2
echo ""
echo "These ls's should also report 5 bytes for each file:"
ls -l fish.txt .svn/text-base/fish.txt.svn-base
echo ""
cd ../wc
svn propset svn:eol-style CRLF fish.txt
svn ci -m "Committing CRLF eol-style for fish.txt."
echo ""
echo "These ls's should report 6 bytes for each file:"
ls -l fish.txt .svn/text-base/fish.txt.svn-base
echo ""
cd ../wc2
svn update
echo ""
echo "These ls's should also report 6 bytes for each file:"
ls -l fish.txt .svn/text-base/fish.txt.svn-base
echo ""
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Tue Dec 30 06:06:21 2003