weblog.masukomi.org

mah-soo-koh-me

 

Responses your comments on the “Dear Perforce” post September 9, 2007

Filed under: Uncategorized — masukomi @ 5:00 am

Please note that I wasn’t just bitching about Perforce. No, I don’t like it, but I’ve done something about it. I’ve written a tool called SSCM to enable people experiencing my frustrations to work with tools we do appreciate and still keep our work synced with tools like Perforce for the benefit of our coworkers.

My
Dear
Perforce: fuck you
post made the front page of
Reddit
Programming
, which generated a lot of comments so rather than address them
individually I’m going to address them here.

The comments could basically be broken into three categories but before I go
into any of them I must point you to
the
best damn response anyone had to that post
. Thanks keithb.



I’ve used it for n years and it’s never screwed up a file / been unstable
/gone down comments:

I’ve been using it for 4 years on my own project, never once running into any
of the problems you talk about. -Michael G

I only ranted about one thing that was broken (my weird rollback issue)
everything else was an issue I had with something intentionally coded by
Perforce’s developers.



Perforce is not breaking for me. It’s behaving as designed, and that’s almost
as bad.



To be totally clear: Perforce has recorded everything correctly, except for
the fact that it will change line-endings on you, and yes I realize there is
something you can config to control this, however I’m of the opinion that your
version control system should never be second-guessing what you meant to stick
in it. No files were corrupted or lost, and I don’t expect that it will do so
at any point in the future.


I’d have to say that whatever its faults, it’s stable and reliable and
does what it says on the box. -Jeremy O’Donoghue



Perforce has been rock-solid for our group of ~10 developers and a
codebase of 10,000+ files (text and binary), used from Linux and Windows
and OS X. -Mike McNally

I can’t argue with these statements even a little bit. I believe that the
Perforce server is exactly as Jeremy describes it. I give the Perforce server
every benefit of the doubt, because to-date, I have seen nothing to make me
believe that it isn’t a solid, and reliable, repository for your code. My
complaints lie entirely with its end user tools.


You just don’t know how to use it / haven’t given it a chance / are forcing
it comments:



I have been able to get up and running with no notable difficulty with Bazaar,
CVS, Darcs, Git, Mercurial (Hg), and Subversion, each in under an hour using
only things I could google. I have given Perforce over two months. I have
talked with a number of developers around me who have been using it for years.
When I talk with experienced people the responses are either that they have no
clue how to do some operation from the command line but they can in the gui,
they have a clue how to do it on the command line or gui but have absolutely
no explanation for why the whack results we see. You are entirely
correct when you suggest that I don’t know how to use it
, but my
point is that it shouldn’t take 2 months to figure out how to do basic Source
Control Management operations (including branching and merging)
, and
there’s no excuse for the fact that after using it for years the people around
me still can’t explain why it does some of the whack crap it does and / or
don’t know how to do some of the similar operations. I would suggest to you
that Perforce’s user interaction is fundamentally flawed when using it is so
unintuitive that after years of using it daily many people still don’t really
understand how it works or the best way to use it.


The only people who ever have any problems with it are the ones who don’t
understand it and randomly try things to get it to work instead of asking
for help. — Bill Napier

I don’t doubt this statement in the least. But instead of taking this as an
indication of failure on the user’s part couldn’t it just as easily be
considered a failure on the part of Perforce to provide its users with an
intuitive interface? Perforce does not employ a paradigm that is significantly
different from any other centralized Source Control Manager. As such,
shouldn’t it’s general usage be fairly similar and fairly intuitive to
anyone who is familiar with using them?


It sounds to me like you’re trying to use Perforce as if it were a
distributed system, when it’s the opposite. I suspect many of the problems
you’re having with it are a result of your attempt to use it like svn, git,
or darcs. You should use a system the way it was designed to be used, and if
its architecture doesn’t benefit you or help your process in any way, then
you shouldn’t be using it at all. -MCS

Well, first off SVN isn’t a distributed system. With that noted, I consider
Distributed Source Control Managers to be a very very recent blink in the
history of computing. My first version control experiences were with CVS years
ago, and later with SVN. I’m not coming to this from the perspective of some
kid whose first experience with version control was with a distributed system
and trying to shoehorn those ideas into a centralized system. I am very aware
of the differences between them and while I was never thrilled with CVS or SVN
I have no problem in using either of them. If anything Perforce should be
easier for me to get my head around than any of these new-fangled
distributed dodads.


I think you’re being completely unfair on Perforce. The reliability
must be a configuration issue. The model is highly centralized, which
sounds like it’s not what you want. -Jeremy O’Donoghue

Actually, I really don’t mind centralized systems. I just don’t prefer them. I
also think that there are some great arguments to be made for using a
centralized system in combination with distributed systems. Do the major
branches in the central system, and do thousands of micro-branches in the
distributed systems… one for each non-trivial bug fix and one for every new
feature, then merge back with the distributed tools which tend to handle
merging much better than any of the centralized ones I’ve seen. Also,
reliability should never be a configuration issue. I should never be
able to misconfigure a version control system in such a way as to make it
unreliable. Break it sure, but if it works at all it should work reliably. If
you can’t rely on your version control system then there is something horribly
wrong with the system.

I find the command-line tools to be very powerful and useful. -Mark
Adams

They are. I can’t deny that the command line tools are both powerful and
useful. Heck, it seems as if the GUI is just running those same command-line
commands under the covers for almost every operation.  I also believe
that the
F-16
Fighter
plane is a very powerful and useful but that doesn’t mean that it
even remotely approaches something that is actually usable without some
serious training. Unfortunately, I think the same can be said about Perforce’s
command line tools (although not as much training… I hope).


So Perforce takes a different approach - try getting the hang of it before
ranting so aggressively. I found it awkward too when we started using it.
-i_soar

Why do I feel like I’m the only one who sees the inherent problem with “I
found it awkward too when we started using it”… No. NO NO NO. This should
NEVER be uttered. Perforce has been around for years, and people have been
getting familiar with Source Control Managers for even longer. There is
absolutely no excuse for the basic version control operations being anything
other than easy at this point. Perforce has had plenty of time to refine their
interface, to do crazy things like add an effing “move” command (Yes I know
about the integrate command. It’s not the same thing). It’s fine to say some
new, fresh out of beta tool is awkward. It’s fine to say that some tool that
uses an entirely different paradigm than you’re used to is awkward. It is
unacceptable for an app as old as Perforce in a paradigm as old as centralized
source control management.


I agree with Perforce suckage comments:

Thanks. It’s nice to know that I’m not the only one.
 

Leave a Reply