[
https://issues.apache.org/jira/browse/SVN-4680?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Andrey updated SVN-4680:
------------------------
Attachment: test_update_issue.bat
the reporoduction script
> obstructing working copy after clean update to a revision
> ---------------------------------------------------------
>
> Key: SVN-4680
> URL: https://issues.apache.org/jira/browse/SVN-4680
> Project: Subversion
> Issue Type: Bug
> Affects Versions: 1.9.5
> Environment: windows 7 x64, tortoise svn tools
> Reporter: Andrey
> Labels: obstructing
> Attachments: test_update_issue.bat
>
>
> If try to move some directory into new place and make external on the old
> place of the moved directory with the same name, then the svn stops update
> this external properly if execute backward update into revision below the
> commit with new external.
> See the windows batch script for reproduction:
> {quote}
> @echo off
> set REPODIR=test_repo
> set "REPOROOT=%~dp0%REPODIR%"
> set "REPOURL=file:///%REPOROOT:\=/%"
> set WCROOT=%REPODIR%_root
> if exist "%REPOROOT%\" ( rmdir /S /Q "%REPOROOT%" || goto :EOF )
> if exist "%WCROOT%\" ( rmdir /S /Q "%WCROOT%" || goto :EOF )
> mkdir "%REPOROOT%"
> svnadmin create "%REPOROOT%" || goto :EOF
> mkdir "%WCROOT%"
> svn co "%REPOURL%" "%WCROOT%" || goto :EOF
> rem creating tree w/o externals
> mkdir "%WCROOT%/dir1" || goto :EOF
> type nul > "%WCROOT%/dir1/file1.txt" || goto :EOF
> mkdir "%WCROOT%/dir2" || goto :EOF
> type nul > "%WCROOT%/dir2/file2.txt" || goto :EOF
> svn add "%WCROOT%/*.*" || goto :EOF
> svn ci "%WCROOT%" -m "rev1" || goto :EOF
> rem update to the head
> svn up "%WCROOT%"
> rem move /dir2 into /ext
> mkdir "%WCROOT%/ext" || goto :EOF
> svn add "%WCROOT%/ext" || goto :EOF
> svn mv "%WCROOT%/dir2" "%WCROOT%/ext" || goto :EOF
> svn pset svn:externals "^/ext/dir2 dir2" "%WCROOT%"
> svn ci "%WCROOT%" -m "rev2" || goto :EOF
> rem update to the head
> svn up "%WCROOT%"
> rem conflict: 'test_repo_root\dir2' -- An obstructing working copy was found
> svn up -r 1 "%WCROOT%"
> rem dir2 is not properly updated after this point
> exit /b
> {quote}
> The output is:
> {quote}
> Checked out revision 0.
> svn: Skipping argument: E200025: 'test_repo_root/.svn' ends in a reserved name
> A test_repo_root\dir1
> A test_repo_root\dir1\file1.txt
> A test_repo_root\dir2
> A test_repo_root\dir2\file2.txt
> Adding test_repo_root\dir1
> Adding test_repo_root\dir1\file1.txt
> Adding test_repo_root\dir2
> Adding test_repo_root\dir2\file2.txt
> Transmitting file data ..done
> Committing transaction...
> Committed revision 1.
> Updating 'test_repo_root':
> At revision 1.
> A test_repo_root\ext
> A test_repo_root\ext\dir2
> D test_repo_root\dir2
> D test_repo_root\dir2\file2.txt
> property 'svn:externals' set on 'test_repo_root'
> Sending test_repo_root
> Deleting test_repo_root\dir2
> Adding test_repo_root\ext
> Adding test_repo_root\ext\dir2
> Committing transaction...
> Committed revision 2.
> Updating 'test_repo_root':
> Fetching external item into 'test_repo_root\dir2':
> A test_repo_root\dir2\file2.txt
> Updated external to revision 2.
> At revision 2.
> Updating 'test_repo_root':
> D test_repo_root\ext
> Skipped 'test_repo_root\dir2' -- An obstructing working copy was found
> U test_repo_root
> Removed external 'test_repo_root\dir2'
> Updated to revision 1.
> Summary of conflicts:
> Skipped paths: 1
> {quote}
> I know this is old issue, but why a clean copy could not be so as clean
> updated?
> Why the externals does not process for remove before the update to a
> revision? If you do so this error would not happen.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)