- Opening the files you were working on
- Changing the perspective, if necessary
- Limiting the navigator to show just the files falling inside the context of the task
That's a short overview of some of the handy features of Mylyn that I use. As I've used it over the last few months, I have discovered two issues that I would like to detail.
First off, the task context will absorb any files that are touched by a SVN snychronize or SVN Update. When working in a team development environment, it's best to update your local working copies frequently to receive the latest code updates from the rest of the team to avoid any integration issues. Eclipse makes this easy by allowing you to schedule a refresh of the synchronize view, which will alert you to any incoming changes. However, any file identified to have incoming changes during a refresh of the scynchronize view will be added to the context of the active task. Additionally, if you perform a SVN update while a task is active, any files updated will also be added to the context of that task. I consider this to simply be a bug in Mylyn; it is needlessly adding files to the context of the task, to the point where the context becomes so bloated it is useless. There are really only two options for maintaining your task context:
- Deactivate the task before any SVN operations (which is hard to do if you are using the scheduled refresh of the synchronize view).
- Constanly remove extra files from the context.
The problem comes when a developer uses this template to completely formulate their commit message and fails to provide any additional information about the specifc changes they are committing. If a ticket ends up with several revisions, and you ever have to review those reivisions, you end up looking at a list of revisions with exactly the same comment. Not very helpful. This is purely a case of developers being too lazy to properly document their revisions (the infamous "lack of documentation" problem), but I would nevertheless categorize it as a potential pitfall of using Mylyn. It is not a reason to avoid using Mylyn in of itself, but it is something to be aware of and instruct your team to avoid.
3 comments:
Nate,
There's good news about the bug you point out where Mylyn is adding files to the task context when updating from SVN or CVS. This bug has been fixed and the fix will be available in the next version of Mylyn. You can also access this fix now by downloading the latest Mylyn weekly build. For reference, here is the bug report: https://bugs.eclipse.org/bugs/show_bug.cgi?id=120499.
Regarding the commit templates, what Mylyn is trying to do is address the frequent case where developers would not write any commit message at all. However, the commit message dialog is deliberately left there so that the developer can always add a note with no additional action on their part, before doing the commit. Interestingly, thanks to the Team Annotation and History view linking of tasks, the Mylyn project itself has found that in practice the comment on the task is more useful than the commit message, so they have standardized on relying fully on the automatic messages. The formatted hyperlinks are left there so that tools like Fisheye can navigate to the corresponding task as well.
Wesley Coelho
Tasktop Technologies
http://tasktop.com
Wesley,
I briefly searched the Mylyn bug database for something similar, but didn't locate anything. I'll be anxious to see how it works.
I'm not sure if I understand how the Team Annotation and History views would help in our situation. We are using SVN and Trac with the post-commit hook on the SVN server that applies the commit message to the Trac ticket as a comment. Thus the ticket comments are pretty much the same as the commit messages. So no matter where you look, in the revision logs in SVN or in the Trac ticket, the information is the same unless the developer takes the time to add additional information to the commit message.
Nate, I was just pointing out that the automatic commit messages in those views can be helpful because they link back to the task, which will likely have some information that help determine the intent of the commit. It sounds like you're already making use of this. Of course, it's even better if developers add detailed comments for each commit, but it isn't a limitation of Mylyn that it can't enforce this.
If you'd like to try the fix for the "context pollution on update" bug, you can update Mylyn from one of the following update sites:
For Eclipse 3.4:
download.eclipse.org/tools/mylyn/update/weekly/e3.4
For Eclipse 3.3:
download.eclipse.org/tools/mylyn/update/weekly/e3.3
Thanks for the great post!
Wesley Coelho
Tasktop Technologies
http://tasktop.com
Post a Comment