[ 
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)

Reply via email to