[
https://issues.apache.org/jira/browse/SVN-4680?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Andrey updated SVN-4680:
------------------------
Description:
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 in the attachment for reproduction.
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.
was:
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.
> 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 in the attachment for reproduction.
> 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)