[ 
https://issues.apache.org/jira/browse/SVN-4680?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16002767#comment-16002767
 ] 

Bert Huijben commented on SVN-4680:
-----------------------------------

The current RA protocol/delta editor only has the final set of properties 
*after* changes to a directory and everything inside are handled, so we only 
know if an external is deleted when it is too late to do any workarounds. 
(There is another issue: the update is handled on the working copy layer, while 
externals are a libsvn_client feature... Changing things here would involve a 
layering change)

The current code should add a not-present node in the parent working copy to 
allow a second update to handle adding a directory/file when there used to be 
an external in the first invocation. I haven't checked why this doesn't work 
this way here (nor any of this issue's specifics).

> 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
>            Priority: Minor
>              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)

Reply via email to