Between two consecutive versions, some systems tend to use a massive
package rename. This tends to happen when they change organizations, or
project names or when to move from Version 2 to Version 3 (for example).
Being able to pick this up, will resolve some of the inconsistencies in our
current data collection method.
Potential solution approach:
1. We know that deletes are not very high in most cases.
2. If a class has been deleted, then assume package rename first.
3. If not a package rename, then it may be a class rename or an actual delete.
4. Class renames are much harder to detect:
- Scan for a delete
- Scan for new classes in the next version
- See if deletes match any of the new classes in terms of their similarity
(i.e. number of metrics that match). The higher, the more likely it is that
it is a clone.
- Weakness is that we are still not sure of the types of refactoring that
tend to happen to classes -- if this is known then a more clever
guesstimate can be made for classes that do tend to change.
Original issue reported on code.google.com by rajesh.v...@gmail.com on 16 Jul 2007 at 7:32
Original issue reported on code.google.com by
rajesh.v...@gmail.com
on 16 Jul 2007 at 7:32