First of all, right now, we are using the EAP versions only and don't own any licenses for PHPStorm. We really like the product and intend on buying 4 commercial licenses after the 1st of the year (budget.) Currently, we are using Netbeans and ZendStudio (see my article for more details http://laurinkeithdavis.com/wordpress/?p=115.) I would like to use only one IDE, but our main reason for using two (and probably now three) IDE's is not one of them provides all the functionality we need for CVS. So, here we go (I will probably file a feature request for part of this, but maybe I just need some help understanding how it's supposed to work):
The main issues we have center around how the different IDE's work with CVS branching. I will admit that our use of branching is not standard (I suppose, never really surveyed that), but it is necessary because of the environment we work in. I will give you an example.
My team all works in one project. It's a huge intranet site that has several hundred files and probably half a million lines of code. A lot of this code is inter-dependent and we all work on various projects within this larger project. To keep work separate at times, and to allow for having a "gatekeeper" for our less experienced developers, we have what is called the TEAM1 branch. New files will be introduced into that branch, and I have yet to find a way to pull those files into the main project, without pulling all of the code (at least for a directory) into that branch. That is not acceptable...and the same thing can happen with deleted files. ZendStudio is the only one of the these three products that I can use to do this effectively. The reason is, that ZS has a feature called Compare and that allows me to Compare files, folders or the entire project to any CVS tag (including branch tags.) That way I can see globally, what is different about the two branches. So, if a file is added to the branch TEAM1 and I am ready to "merge" it with the Trunk, I just select it and click Replace. This process adds to the trunk correctly and then I can add it to CVS (which is really just adding to the branch, and I can do this part from PHPStorm.)
FYI, I tried to do this with PHPStorm, and I actually had two problems. The first was as I described, it merged other items in that directory that I did not want. I can discard those, so I can live with that (it's painstaking though.) The biggest problem was that after I merged the new file I was trying to bring over from TEAM1 into the trunk, CVS would not play well in the way that this occurred - cvs-check-update-failed. I had to delete it and use my Zend Studio process.
Thoughts? I'm open to ideas, and this is not a show stopper for us in purchasing PHPStorm. However, it does mean that we will have to maintain at least one license for ZendStudio.