Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 332663

Summary: Subtree operations (refactoring) broken
Product: [Technology] Subversive Reporter: Marcin Wisnicki <mwisnicki>
Component: CoreAssignee: Igor Burilo <igor.burilo>
Status: RESOLVED DUPLICATE QA Contact:
Severity: major    
Priority: P3 CC: a.gurov
Version: unspecified   
Target Milestone: ---   
Hardware: PC   
OS: Windows 7   
Whiteboard:

Description Marcin Wisnicki CLA 2010-12-15 12:30:41 EST
Build Identifier: 20100917-0705

I'm using Subversive 2.2.2.I20101203-1700 with JavaHL 1.6.12 connector.

Moving package with subpackages between projects (stored in same repository) results in move(cp+rm) for each individual file with new directories created.

Instead a single move(cp+rm) operation should be recorded for topmost directory.

There are many years-old bugs that sound somewhat related to this where it is pointed that it's a result of Eclipse API limitations. Specifically I'm thinking about bug 251168.

If it is the case and there will be no fix or at least workaround any time soon then please show a big warning (with a 'do not show again' option) before doing something that user would not expect.
Otherwise the user will find it the hard way when trying to perform merge sometime later :(

Reproducible: Always

Steps to Reproduce:
1. Create two projects: Pa and Pb
2. Share the in the same SVN repository
3. In project Pa create package pa.x and pa.x.y with class Ca in each of them
4. Move Pa/pa.x.* to Pb
5. See svn status it will show operations on individual files instead of dirs
Comment 1 Alexander Gurov CLA 2010-12-15 13:12:04 EST
You are right, seems like it. But it is more not like an API limitation, but just JDT implementation limitation. After all the Navigator view and the Package Explorer view, both of them, interacts with the Subversive plug-in through the same API, but for Navigator it works just fine, when Package explorer wracks everything down with all its might (actually, I think it is JDT refactoring algorythm issue). :)

But unfortunately there will never be any place for warnings because Subversive code will always be called in order to do the actual work when all UI interaction is done already. :(

*** This bug has been marked as a duplicate of bug 251168 ***