Wednesday, November 21, 2007

IntelliJ Watch: Change Sets

I've started using IntelliJ change sets, another great feature. A change set is very intuitive: a set of related changes. Typically the changes are related to a bug.

IntelliJ tracks those changes as a group: all the changed, added and deleted files. You can then commit those changes as a group, without checking in anything else.

This is just perfect for checking in a quick bug fix in the middle of a larger body of work.

Nice features: You create a comment when you first create the change set, this comment is the default check-in comment when you do commit changes. Further, they didn't skimp ... you can move a change between change sets.

The pattern I'm seeing is that IntellJ has features that cover specific things I've had to do manually and awkwardly in Eclipse. I can definitely remember times I've fixed a small bug and had to carefully pick and choose which files to check in, because I had many unfinished outstanding changes waiting to go. IntelliJ just picks up the slack and does it for me.

I'm not sure how you handle this situation in Mylyn, Eclipse's super-invasive ... tool? Framework? Filter? Nanny? Whatever it is, I guess it can do it, but I doubt it accomplishes the same goal as simply and comprehensibly.

12 comments:

  1. That sounds very useful. I may give it a try.

    ReplyDelete
  2. Mylyn handles change sets fine, I use the Subversive/Mylyn integration myself. Change sets are definitely a great feature but they do exist in Eclipse too.

    Mylyn also connects to Jira, keeps track of which issue you're currently working on and generates commit comments for the current Jira issue/change set.

    I personally find Mylyn invaluable, can't belive you despise it so much.

    ReplyDelete
  3. Actually it is just as simple in Eclipse. I've been using it for about 4 months since I found it, and love it in eclipse as well. I created a couple of local change sets for things that are just for my local development and wouldn't get checked in. Google "eclipse change set"

    ReplyDelete
  4. We have a 50/50 split of IntelliJ/Eclipse at my client. I find it interesting, that of the features we use, I don't think I've found something that IntelliJ doesn't have, AND the reverse. Except Eclipse is free.

    ReplyDelete
  5. Yeah, IJ support for version control and JSP/CSS editing are two things I sorely missed when I tried Eclipse for a while.

    Another cool feature, if you haven't already tried it, is Adding imports on the fly.

    ReplyDelete
  6. sonny_gill, that's a pretty nice feature. in eclipse, i hit ctrl+space after the class name and it adds the import if it's unambiguous.

    ReplyDelete
  7. It's a great feature, yes, but it should be provided by the source control system.

    Subversion doesn't provide it, many others do.

    ReplyDelete
  8. Howard, this change set support in IJ is actually a copy of what Eclipse had for ages. Platform had the incoming and outgoing changesets for CVS and Subclipse been supporting those for over a year. Mylyn adds automatic changeset management, but things can be moved around manually. That all is available in Synchronize view.

    ReplyDelete
  9. With all due respect for the different opinion, the point is that IJ does this out of the box.
    Speaking of which, IJ 7 has a couple more neat additions to VCS integration - the changes tab now shows the repository activity and incoming changes. Not revolutionary, but convenient none the less.

    ReplyDelete
  10. Hehe. You need to start retagging these posts, Howard. Tag them 'finding features in eclipse and intellij'.

    It sounds like IntelliJ can do more than I gave it credit for. I might ditch Eclipse for a while.

    Oh, and we also have a 50/50 split at work. Everyone's pretty happy with their particular IDE. ;)

    ReplyDelete
  11. @all

    Yes, eclipse probably does have a similar feature set to intellij. What sets one apart from the other is that anything eclipse can do intellij can do better.

    ReplyDelete
  12. There's already a plugin that will archive all files in the changeset into a handy .ZIP file.

    Personally, I can't live without the built-in HQL querying capabilities. Complex HQL queries are now a cinch to test. I held on to my aging copy of IntelliJ 5.1.2 just because version 6+ didn't work with the Hibero plugin. Now v7 comes bundled with it. Aaah... IntelliJ.

    ReplyDelete

Please note that this is not a support forum for Tapestry. Requests for help will be deleted. Please subscribe to the Tapestry user mailing list if you are in need of support, or contact me directly for professional (for pay) support.

Spammers: Don't bother. I delete your comments and it's a waste of time for both of us. 垃圾邮件发送者:不要打扰。我删除您的评论和它的时间对我们双方的浪费