Hi folks. I faced the following problem. The command svn merge -r 3:4 -r 4:5 ^^/trunk works smoothly while command svn merge -r 3:5 ^^/trunk results in a text conflict. This seems like a buggy behavior (since the two merges are equivalent).
I reproduced it in a simple situation when trunk contains only a single file. Here is a list of revisions: r1. Initial directory structure (trunk and branches). r2. Add file trunk/foo. r3. Create branch branches/test from trunk. r4. Set svn:eol-style to native on trunk/foo. r5. Modify text in trunk/foo. After that I checkout branches/test and try to perform the merge (which only sets svn:eol-style on trunk/foo and modifies its content). Then I get the aforementioned conflict. I performed the test with the following Subversion version: svn, version 1.9.0 (r1692801) compiled Aug 3 2015, 21:00:08 on x86-microsoft-windows I attach the script (cmd batch file) which creates local repository and performs all the preparation to demonstrate the problem (please remove the .txt extension to run it). My guess is that svn:eol-style change is the root of the problem. Could please somebody explain the behavior or confirm that this is a bug?
@echo off cd %~dp0% if exist test_svn ( echo ERROR: test_svn already exists. Please remove it first exit /b 1 ) echo *** Creating directory test_svn mkdir test_svn cd test_svn echo *** Creating repo svnadmin create repo rem A trick to get normal svn URL with forward slashes set repo_path=file://%~p0%/test_svn/repo set repo_path=%repo_path:\=/% echo *** Repository address is %repo_path% echo *** Creating initial directory structure (trunk and branches) svn co %repo_path% full_repo cd full_repo md trunk md branches svn add trunk branches svn ci -m "initial tree" cd .. echo *** Checking out trunk and creating simple file foo svn co %repo_path%/trunk trunk cd trunk echo Simple file > foo svn add foo svn ci -m "added foo" echo *** Creating branch test svn copy . ^^/branches/test -m "create branch" echo *** Setting svn:eol-style=native on trunk/foo svn propset svn:eol-style native foo svn ci -m "set property" echo *** Modifying trunk/foo echo Modification >> foo svn ci -m "modified foo" echo *** Checking out branches/test cd .. svn co %repo_path%/branches/test cd test echo. echo. echo Now while in test_svn/test directory: echo. echo 1. Try echo ^> svn merge -r 3:5 ^^/trunk echo and you get a conflict echo 2. Revert (svn revert -R .) and try echo ^> svn merge -r 3:4 -r 4:5 ^^/trunk echo and you do not get any conflicts