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