I don’t know exactly when we hit a Google Summer of Code 2010 midterm date … time runs so fast, few weeks ago I was writing that I’ve got accepted in this year’s program edition, and now we hit a midterm evaluations. This is a quite good time to sum up this short period of time.
Starting from the begging … estimating a project; now I know that initially I was very, very (and even more very, very ;)) optimistic about project time line. According to my initial estimation I should now start working on stashing support in JGit … but for now I’m “stuck” in synchronize view. Even more because now I see that I’ll need two or more weeks to make it ready for 0.9.0 release, now it has two major issues that I would like to solve before upcoming release. I even don’t want to think where I would be right now if Remy didn’t made initial contribution …
OK, so what is project current status? Well we had an synchronize action and it works quite well. It shows upcoming, outgoing and conflicting changes … but there are few issues in current implementation. First of all common ancestor isn’t calculated properly (according to bug: 317371). Next issue is that we always use HEAD as a ‘local’ in three-way-compare, to be honest this seams to be an Team Framework limitation because ‘local’ is always instance of IResource .. btw. I should raise an issue for this ;). Last thing (for now) that in my humble opinion should be included in 0.9.0 is support for change set’s (bug: 3318473) because Git works on repository state changes not on file changes. Additionally there is one small feature that also should be included in 0.9.0: merging support from synchronization view, but (for now) it seams to be a simple thing to achieve.
What are my plans? Fix for bug 317371 currently wait for approvement in Gerrit, so I thing that this is rather a closed thing. For now I’ll focus on change set support. In case of popper handling of source branch setup I’ll wait for any hints on eclipse forum thread, then I thin that I’ll try to implement it somehow. If I fail in this task, I thing that we should disable source branch selecting and set it by default to HEAD.
Some statistics and numbers:
- Add preliminary synchronization support within Eclipse for branches. – based on Remy Suen work
32 files changed, 2902 insertions(+), 10 deletions(-)
- Refactored UI tests
15 files changed, 434 insertions(+), 393 deletions(-)
- Fixes strange result set in Synchronize view on Windows
1 files changed, 26 insertions(+), 19 deletions(-)
- Fix NPE when deleting project used in Synchronize View
1 files changed, 14 insertions(+), 8 deletions(-)
- Show repository path in Synchronize View
4 files changed, 14 insertions(+), 6 deletions(-)
- Simplify API of GitSynchronizeData class.
5 files changed, 33 insertions(+), 72 deletions(-)
- Prevent from NullPointerException’s
2 files changed, 24 insertions(+), 8 deletions(-)
- Add tests for integration with Synchronize view
13 files changed, 2249 insertions(+), 12 deletions(-)
- Fixes obtaining common ancestor in Synchronize view – wait for code review
22 files changed, 1499 insertions(+), 1329 deletions(-)
In my humble opinion this is quite good result for around 7 weeks of work 😉