I’ve been using IntelliJ IDEA for the past 7 years and anyone who knows me will tell you that I’m an IDE snob. However, over the past 7 years I have been using the exact same configuration for IntelliJ IDEA and all of my project files have rarely changed. Over those 7 years I would merrily install the new version of IntelliJ IDEA and when it asked me to import the configuration from an old version, I would. Likewise, when new versions of IntelliJ IDEA tried to open an older project file it would often ask me if I wanted to upgrade the file format to the new version and I would.
Over the years my IDE configuration files and project files seemed to becoming less and less stable. I assumed that even though I was upgrading consistently, IntelliJ IDEA was managing all that complexity behind the scenes without any problems. This is not the case. But let me be clear, this is NOT an issue with the IDE, but the user.
In order to innovate things must change. Often that change is not backwards compatible or backwards compatibility is not always perfect. If you really want to innovate, you should just toss backwards compatibility out the door and charge forward (but that’s a topic for another post). The folks over at JetBrains have been innovating on the world’s best IDE for years. They have also tried and mostly succeeded at providing working upgrade paths between versions because often they break backwards compatibility. However, nothing is perfect and there comes a point when you must wipe the slate clean and start fresh.
I decided it was time to start fresh with IntelliJ IDEA. Here’s what I did:
- Un-installed IntelliJ IDEA completely
- Deleted all the preferences, caches and logs
- Deleted all my IDE project files
- Re-installed IntelliJ IDEA fresh
- Re-configured IntelliJ from scratch
- Re-created all my IDE projects files by hand
At first I was really annoyed at having to do this process. But now that I’m mostly finished, I’m glad I did. I noticed that a number of files I had been using (i.e. .eml files) were no longer needed and IntelliJ was probably just dealing with them since they were there, even though it really preferred to use a different structure. I’d much rather use the new methodology instead of an older one, which might not have the same level of support and integration, and could unexpectedly break at any time.
I think I’ll be doing this refresh again each time IntelliJ releases a new major version. Might as well keep things clean and charging forward.