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.
That sounds very useful. I may give it a try.
ReplyDeleteMylyn 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.
ReplyDeleteMylyn 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.
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"
ReplyDeleteWe 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.
ReplyDeleteYeah, IJ support for version control and JSP/CSS editing are two things I sorely missed when I tried Eclipse for a while.
ReplyDeleteAnother cool feature, if you haven't already tried it, is Adding imports on the fly.
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.
ReplyDeleteIt's a great feature, yes, but it should be provided by the source control system.
ReplyDeleteSubversion doesn't provide it, many others do.
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.
ReplyDeleteWith all due respect for the different opinion, the point is that IJ does this out of the box.
ReplyDeleteSpeaking 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.
Hehe. You need to start retagging these posts, Howard. Tag them 'finding features in eclipse and intellij'.
ReplyDeleteIt 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. ;)
@all
ReplyDeleteYes, 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.
There's already a plugin that will archive all files in the changeset into a handy .ZIP file.
ReplyDeletePersonally, 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.