This is more of a bug report than a question.
We are using CVI/LabWindows together with Perforce as the Source Code Control provider and have noticed a couple of problems in the integration. Versions used (tools/platforms):
* Win7 (x86, x64)
* Perforce P4V 2010.2
* Perforce SCC plugin 2010.2
* LabWindows 2010
Problem 1 (bug)
Having a P4 workspace root in the workspace/client specification that differs only in casing from the actual path is causing the problems, even as we are working under Windows. Description:
- We can associated a CVI workspace with a Perforce workspace using "Edit/Project/Source Code Control" etc (we do get some initial warnings when we do this for the first time, but after reopening the project all is well).
- If the P4 workspace root path has the wrong casing compared to the actual local path, the project can be successfully opened and operations are available under "Tools/Source Code Control", but the files in the project (which do exist in Perforce) does not show any SCC overlay icons.
This makes it impossible to check out/work with the files contained in the project. As an example, it is e.g. possible to add a new file to the project and get the "add to source code control" dialog opened and select OK to add the file to the project/SCC. After this the file is still not indicated as under source control (opening e.g. P4V correctly shows the file as being opened for add, though). Similar for other operations.
We have reported this to Perforce software as well, but as we haven't seen the same problems for other software using the P4 SCC Plugin, it's likely to be a problem with the CVI SCC integration.
The problem is easy to fix once you recognize it, but diagnosing this took the better part of two working days.
Problem 2 (bug)
This one is easy enough to work around, but annoying. When performing SCC operations on the project file, the overlay icon isn't updated to reflect the new status automatically. An example:
If you right-click the project file and select "Check out", the file is checked out from Perforce and made writable, but the overlay still indicates that the file is not checked out. This makes it "impossible" to check in the file again. Same goes when opening a project with the project file checked out and the checking it in.
To get the correct status for the project file, one needs to either restart CVI or select "Tools/Source Code Control/Refresh Status". Highly annoying.
Problem 3 (bug/usability)
There is no simple way to check in all files currently checked out, when one these files is the project file.
It is possible to multi-select files and include the project file in the selection (using ctrl + left mouse), but when then right-clicking one of the selected files to perform "Check in" the other previously selected files lose their selection. This is only the case when the project file is included in the selection.
The same behavior is shown when selecting as above, but attempting to use the "Tools/Source Code Control/" menu.
The problem seems to boil down to that when several files are selected in the project, and one of them is the project file itself, only one of the files remain selected when opening a menu (any menu).
I was hoping that someone from NI support would be able to confirm this to be a problem, or at least having taken part of the problem (even if posted through the forums I'd expect NI to be interested in finding out about potential problems with their products).
Sorry, I didn't see this until today.
Your first two issues definitely sound like bugs, or at the very least poor behavior. My guess is that #1 is probably our fault, but I'm not completely sure on that. I'm filing a bug report on this to make sure it gets investigated. #2 will also be looked at.
While your third issue is a little annoying in this use case, there's a reason for it. When you right click on an item in the project tree, we have to determine what type of object it is, and then display the approriate context menu accordingly. Projects and Source files have completely different context menus, and most of the operations you can perform on the two are different. For simplicity and a better user experience we only display the context menu for the item that was right-clicked on, and we deselect other files of that type. We won't be changing this.
Thanks for reporting these issues.
many thanks for your reply.
Even if #3 won't get fixed as it is by design, I believe it would make lots of sense to have an easy way of checking in all currently checked out files (only within the CVI workspace, of course) as the current edits are likely to be dependent on each other.
Using the Perforce SCC provider this is possible, by choosing whatever file to check in from CVI, and in the second step select all files to check in from the Perforce submit dialog. Doing it this way, however relies on a "side effect" of the Perforce SCC provider implementation (the submit dialog) and also requires a manual refresh of the SCC status from CVI afterwards as the IDE is unaware of the other files being checked in.
Perhaps a reasonable enhancement request, unless I've missed something and the feature is already available somewhere?
I'll take a look at adding something that might make this a little easier, but I'm hoping to keep things as simple as possible. Would it be acceptable if the SCC status of the files in the project was updated after a submission, thereby updating the status of any files that were selected in the Perforce submission dialog?
even if not perfect, yes, that would be acceptable. I'd rather see a fix implemented sometime soon than waiting for a new feature.
Caveat: This doesn't mean that I believe this should the final solution, only an interim solution while waiting for the real "cure". Keep in mind that there might be other SCC providers that have no "private" submit dialog that allows this (as I said earlier, IIUC this relies on an implementation detail in the Perforce SCC provider).
Would you dare to provide a time frame for when fixes for these issues might be available?
Thanks / Johan
They should be available in the next major CVI release. I can't be more specific than that unfortunately because we haven't announced a release date yet.