You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@subversion.apache.org by "Andrey (JIRA)" <ji...@apache.org> on 2017/05/07 21:57:04 UTC

[jira] [Created] (SVN-4680) obstructing working copy after clean update to a revision

Andrey created SVN-4680:
---------------------------

             Summary: 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


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)