Friday, June 22, 2007

Synchronizing with CVS in JDeveloper

Whatever your mechanism for working with CVS during development one of the things that we all like to avoid is unresolveable conflicts. But when working in a team environment it's an ever present evil.

Using the Incoming Changes tab of JDeveloper's Pending Changes window can help in pre-empting conflicts and managing them.

Here is a very simple example. I have an application under CVS source control that contains a number of classes. I'm working with a team who are also working on these files. In the Pending Changes window I can see that 2 of the files have been modified and checked in since I checked out my copy. This is shown in the Incoming Changes tab:

My local change is reflected in the Outgoing pane (I haven't bothered to insert an image of the outgoing pane here, but in this view I can quickly see that there is only outgoing change - and I know this is the only file I am working on). has been updated and checked-in by someone else but doesn't cause a conflict with my version. appears to have an unresolveable conflict. Double-clicking on the file in the Incoming Changes window returns me to the file in the code editor (or opens it), moves the focus to the History Tab, selects the Head revision to compare my local version of the file with and highlights the first change.

From here I have a number of options. Knowing that there is a conflict I could make changes to my code. Or perhaps I want to run Update and then use JDeveloper's Merge feature to resolve the conflict or perhaps I just carry on with my coding and choose to deal with the conflict at some later date, whilst keeping it in the back of my mind (and in my Incoming Changes window!) Whatever route I take, I'm able to keep my local copy and the repository synchronized and view/act on any conflicts as I choose.

I've kept my example very simple and have used JDeveloper In a future post I'll give you a taste of enhancements we've made to Pending Changes for the JDeveloper 11g

From Seoul to Shanghai with ODC

I can hardly believe it's been 8 months since I last posted here. In that time I've taken up a new role within the JDeveloper Produce Management Group and have been focused on different areas of the product than my previous SOA focus. I now work very closely with our development groups coming up with requirements for JDeveloper and support development.

This doesn't mean I don't get to meet with users any more, an important part of requirements gathering is to listen to what our customers are saying! This year I've been very lucky to have been involved with the Oracle Develop Conferences. I've 'done' Seoul and if you're in London next Tuesday and Wednesday be sure to get over to the Excel Centre for the London run of this conference designed specifically for developers. I'll be there talking web services, ADF and Fusion and would also love to talk to you about your complete application development lifecycle experiences - the what, why and how of your approach. I have a special interest in Source Control systems - so come and tell me how JDeveloper stacks up.

And Shanghai? Well that's where this year's ODC run closes at Oracle OpenWorld in Shanghai - and I'll be there too, maybe I'll see you?