p4win for the win
My definition of an expert in any field is a person who knows enough about what's really going on to be scared.
-- P. J. Plauger
What perforce is doing wrong with their clients
Perforce have had a strange development over the last couple of years with their UI clients. Perhaps not so strange from a manager's perspective or even a marketing perspective - to consolidate and unify their clients seems on paper a admirable idea. However it's fundamentally flawed. All window systems have their own little quirks and touches that are unique to them, how they work is how the users expect them to work. Learning a UI system is much like learning to ride a bike, at one point you're not really thinking about it, but if someone changes the rules then all sorts of weird things start to happen.
The java unified interface that Perforce is trying to ram down everybody's throats is an abomination. Sure it saves them time and effort to develop, but I bet nobody wants to actually use it if they step back and think. If there was a native look and feel alternative, who would go for the java app? Crazy people, that's who.
The visual studio project properties dialog is one of my most hated dialogs, mainly since whoever developed it felt the need to not follow the standard windows rules how a dialog should work! Switching back and forth between the dialog causes the focus to change. The keyboard shortcuts work differently. In short, it's cumbersome and even though I kind of know how it works, my muscle memory from the rest of the 99% of windows work I do overrules my brain and I keep doing the fricking wrong thing!
This is quite the same thing with the p4v client that perforce makes. I've gotten used to the p4win application (the red one) over the years, mind you that it has it's own flaws and tricks but they are known evils. Trying to teach someone the ins and outs of perforce with the p4v client is not a fate I would wish on my worst enemy (well, perhaps Captain Hammer). It is simply wrong, feeling and look. Now I'm sure that someone at perforce sits and think, it's not that important. Well, one of the main points about a source control system is how easy it is to use and how the client looks and feels. Look at Alienbrain[1]! As a source control system it absolutely blows. But it got a nice client. So they sold lots of copies.
Perforce is trying to move windows user from the p4win application and onto the p4v one. Don't fall for it, it's a trap! Seriously, the day that I can't use p4win is the day that I start looking for a new source control system. Although I do a lot of things through the command line, and all of my scripts use the command line as well, the client is really the thing that sold me. Now, the client isn't really that great, but it beats most other clients, including the one from perforce - p4v.
Oh, yeah, they've been blowing the whole legacy component for years now. I'm hoping that they won't dare to discontinue it...
Resources
- Practical Perforce, a pragmatic take on how to manage and do common operations in perforce the way it was intended. Go with the flow and read it!
- p4win
- p4v
- Some discussion about the p4win as legacy
[1] Alienbrain. What a complete miserable and utter failure. Anyone considering to moving to this must first know that it's completely unscriptable. Yes, there is a command line interface. That is completely broken! The only way to do scripting is to do it through their COM interface. Oh joy, where is that pen so I can poke myself in the eye...
Hmm... p4v is not that bad once you get used to it. There are a few features of p4win that I still miss, but overall I'm quite happy with it.
I generally work from three different operating systems, and I actually like using the same client in each of them. BTW, I think p4v is a C++ application using Qt. It has nothing to do with java.
Their developers are also quite responsive, they have added all the features that I've requested. So, if there's anything in particular that bugs you, I'd recommend contacting them.
Have you ever used p4win on large depots with large number of users? The fact that p4v can issue commands asynchronously alone makes it worth switching. I'm sick of the legged P4 animated cursor, and I'm glad I don't have to see it anymore.
I totally agree about the VS project properties dialog. Super frustrating on a weekly basis.
P4Win vs. P4V: Sounds like a religious war to me.
You declare that P4V sucks, but you provide no specific cases. What is it about the feeling and look that you find wrong? What expectations does P4V break?
At Flying Lab we let everyone choose which GUI they prefer, and as the resident Perforce expert/go-to-guy I get to support both. As Ignacio says, the asynchronous operation is definitely a big differentiator: p4win feels snappier for short-running commands; p4v feels snappier for long-running commands.
Personally I prefer P4V to P4Win also because of the extra features and better (IMO) usability. Better usability is especially important in the game industry since we hire lots of mostly non-technical artistic types.
Here are some specific reasons why I find P4V to be more usable than P4Win:
* Tab panes are a more familiar navigation mechanism than toolbar buttons
* The address bar makes it much easier to navigate to a particular file in a deep directory tree
* The integration dialog does not bury important options in the non-default pane of a second Options dialog
* Filters are way easier to use in the submitted changelist pane, and available to use in the pending pane (though the behavior of the filespec filter is quite unintuitive)
* Keyboard shortcuts are discoverable by inclusion in context menus
* I can sync files (and do many other useful operations) from their context menu in the pending changelist pane.
* The resolve dialog gives you more information (like the base revision) and more options (like file history and time-lapse view).
* Though I do most administrative tasks on the command line, I at least have the option to use a GUI for them. The P4V Admin GUI is great for looking up info, not so much for changing it.
* I have to manually refresh (F5) much less often
* The command log provides a nice transition into command-line work and is a big help in debugging performance/responsiveness issues.
I could go on.
Right now there are only a couple minor things that I think P4Win does better:
* Command results don't get buried in a flood of background tasks. In p4v, you need to keep about 8 lines of the log pane visible in order to see how your just-submitted changelist got renumbered.
* Bookmarks can have hotkeys
Ignacio,
I can see your point of view, with multiple platforms it's sure nice to have one tool that you're familiar with on all of them. Myself having left the UNIX world behind long ago, the only OS I really work on is Windows, my priorities are different. I really just care about one client on windows that works and feels right.
The whole async issue of commands, is that really something that you feel is useful? I can see it's charms, but usually I do things that I need to get the result from immediately before continuing.
And for the errors messages in the log, doesn't it become very much like the multithreaded parallel build in Visual Studio, once that goes wrong, it's very hard to decipher what went wrong from the log output since it's all interleaved.
I have used p4win on very large sites using perforce. At one company we had all our code for several projects as well as artist data for the projects in perforce. With some clever use of the client views and smart layout of your repository it all works fine.
Timbojones,
I guess it's a little bit of a holy crusade :) But it's more of a windows native look and feel and also the fact that perforce seems to have done a "Netscape", as far as tossing the code and starting all over again. Which seems like a bad sign to me.
I posted again with some points why I think p4win is the better client, but at this point I can perhaps draw parallels to a war between vi and vim?
Async issue of commands was the only reason why I moved to p4v on windows in the first place. Wait times with p4win were unbearable. This is possibly a server issue, but given that perforce is a centralized system and that NVIDIA is a large growing company it happens more often than I'd like.
If you work through VPN latency is also much higher than when working locally, and p4win in these circumstances is simply unusable.
That said, they could have added that feature to p4win and I'd probably have been happy with it ever after.
I'm going to jump in here with my uninformed non-programmer view...
We switched from SVN (with the ToirtoiseSVN client) at work to Perforce & P4V. I've tried to use it for 3 months now but every day is a struggle.
For somebody who just wants to update and check in files, the interface is massively over-complicated. I have about 6 different panes open...2 repositories, a command line output, a menu and multiple toolbars, and all I want to do is submit a a file. ToirtoiseSVN lets me do that with on button click through Explorer (which I have open already)...simple.
Hi Mark,
I agree completely for you that it's overcomplicated for non-programmers. Even for most programmers :) and their day to day tasks. I seriously think you should ask whatever tech people you have at your company to provide a simplified interface (check in/check out) for non-tech people. Preferably integrated into whatever content tool you have and if possible automatic. Given the plethora of programming API:s or just the plain command line interface, it should be a really easy thing to do, and the benefits are enormous.