P4Mylyn: Bringing focus to Perforce
I am pleased to announce that P4Mylyn, the Perforce Mylyn connector, has been released and is now available as part of the 2009.3 Perforce Eclipse Plug-in suite. Perforce Jobs and Changelists now become first class citizens in the Mylyn task-focused interface. The main goal of P4Mylyn was to bring focus to how developers work with Perforce, primarily involving how they view jobs (or other Mylyn tasks) and changelists and how they can more easily navigate between the two. The rest of this post will discuss and show some of the features added in P4Mylyn that try to accomplish this goal. You can read more about the announcement over on the tasktop.com blog as well as in the latest edition of the Perforce Newsletter.
The new improvements to changelist viewing include a new language-aware submitted changelist viewer. When viewing a submitted changelist you can now expand files to get a high-level diff of what was modified. This is initially supported for Java and C/C++ source files as well as Zip and Jar files and can be extended via a new diffing extension point. Shown below is a screenshot that shows specifically what methods were modified in the changelist as well as the Java imports that were added.
Context-aware Submitted Changelist Viewer
P4Mylyn builds on Mylyn's support for automated changeset management. When you activate a task to work on, a new pending changelist is created, the job is added to that changelist, and all files modified within Eclipse while that task is activated will be opened in that pending changelist. Switching between tasks updates the active pending changelist so the files you edit will go into the correct changelist for the task you are currently working on. Mylyn will generate an initial changelist description message based on the task the changelist is associated with. This message can be further modified to include further descriptions of the changes made. Content assist, a feature well-loved by Eclipse users, is now available from the submit dialog to include all the file names in the changelist as well as any submit templates contributed via a new extension point. The submit dialog now also includes the ability to expand files to see the exact Java or C/C++ methods and fields that were added, modified, or removed and are about to be submitted.
Submit dialog content assist
With P4Mylyn you can now link P4 Connections to Mylyn task repositories allowing you to hyperlink between Perforce history, submitted changelists, time-lapse view, etc. to any Mylyn supported task repository such as Bugzilla, Jira, Trac, etc. Changelists mentioned explicitly in task descriptions or comments will now be presented as hyperlinks that when clicked will open the submitted changelist viewer in Eclipse.
Link from Job to Changelist
Also, P4Mylyn now directly integrates with the Perforce spec depot to provide a custom Job time-lapse view. Now you can jump to a historical view of a Job and be able to see which fields of a Job have changed and when. This Time-lapse view will tell you exactly how many times each field has been modified and selecting a field from the Outline view will decorate the time-lapse slider with each revision that the selected field changed.
P4Mylyn Job Time-lapse view
P4Mylyn's support for Perforce Jobs include multiple extension points to configure how jobs are displayed as Mylyn tasks depending on the fields you add to your job spec. Since jobs, out of the box, have a minimal amount of fields, it is often necessary to add standard defect tracking fields such as priority, severity, comments, etc. The extension points for P4Mylyn allow you to map the core Mylyn task fields to your specific job spec fields to get the robust decorations and field editors that the Mylyn project provides. Please contact email@example.com for more information on how you can plug in your specific job spec into P4Mylyn to improve the overall look and feel.
P4Mylyn is a certified Mylyn connector and requires Mylyn 3.3 and either Eclipse 3.4 or 3.5.
This is the first release of P4Mylyn so feedback is greatly appreciated as we plan for future releases. Please contact firstname.lastname@example.org with feature requests or any issues you may have.