?

Log in

No account? Create an account
Evil, but cute & gay about it
...ramblings of the imperfectly innocent
Worst. CM tool. Ever. 
27th-Jun-2007 03:33 pm
matrix, system failure
Hate Perforce. Fucking hate it.
Comments 
27th-Jun-2007 10:49 pm (UTC)
So sorry to hear it. Anything I can help with here? Feel free to IM me, too.
28th-Jun-2007 07:08 pm (UTC)
Thanks, but I don't think there is. This particular rant was about the utterly craptacular 3-way merge that perforce does. Gah!

So, there's this huge, huge C function that got refactored in a branch. But, of course, it got changed in the main branch. So, when the merge happened, conflicts arose. During 'p4 resolve', there were lots of things like where a C function would end, and just after that would be... the middle of another C function! Where's the beginning? It's just gone! NO, WAIT! It's 200 lines down! Of course! *HATE*

This is on top of the usual everything-takes-3-more-commands-than-CVS rage.
29th-Jun-2007 05:17 am (UTC)
Merges take some getting used to, but after a while they get easier. Promise.
(Deleted comment)
28th-Jun-2007 07:09 pm (UTC)
Thanks, dude. What do you have to fight with use it for?

It's been too long since we talked.
28th-Jun-2007 02:21 am (UTC) - Perforce Bad? Synergy Worse...
I remember a little of the Perforce nastiness.

Praise whatever god you believe in that you are not using Synergy. Those people have "overloaded" the word "TASK" to mean both a "change set" and an "assignment", you can not make any one TASK _require_ another but you can make one task "fix" exactly one other. There are two modes Zero Collaboration and Total Collaboration, in the first nobody can see your change sets, in the other your change sets are automatically part of the global production build. (and it just gets worse from there).

Synergy is required if you are using "Doors" which is supposed to be "requirements tracking" but actually provides little more than applying arbitrary numbers to every sentence in a document and then being able to remember when the sentence was changed or deleted. (You actually have to mark comment text, and headers, and qualifying text, and external references, and everything in the document that isn't a "requirement bullet item" as "not a requirement"). The resulting document has each sentence numbered and printed with whitespace above and below it... /sigh...

So you are simply lucky.

8-)
28th-Jun-2007 07:11 pm (UTC) - Re: Perforce Bad? Synergy Worse...
That does sound horrible, but p4 was a huge step down from CVS. If this is good luck, I'd hate to see what bad brings. Oh, wait, you already described it. :)

We should have dinner or something soon. It's been too long since I've seen you, too.
28th-Jun-2007 05:21 am (UTC)
Really? Baffling. I love it. What are you using it for?
28th-Jun-2007 07:15 pm (UTC)
Just the usual maintenance development. p4 drives me fucking batty sometimes. *Every* single thing takes more commands and work than CVS ever did, but, hey!, at least we get atomic commits/changesets! And, uh, that's worth it! Right? See this comment for the particular things I was venting about. I should do a side-by-side comparison of cvs/p4, but that would just fuel my frustration.
28th-Jun-2007 07:24 pm (UTC)
Ah, see, when I've done a lot of branched development, I love it, and I didn't actually find typing "p4 edit" increased my burden at all once it was part of my workflow. Getting it there took a while, but I think it *was* worth it for atomic changesets. I found it really worthwhile, but that's only with heavily-branched development. Even minor branched development was orders of magnitude less painful than CVS - One gets really sick of having to add a new tag for that integration to be run off, update to that tag, resolve conflicts by hand, check in, etc. That said, I ran into people at, uh, a company I recently worked for, who didn't know thing one about version control and branches, and as a result I think everyone probably suffered unduly, but I shouldn't go in to that :) Actually, that's true of two companies I recently worked for.

You know about the different flags to p4 resolve, I hope?
29th-Jun-2007 04:08 am (UTC)
Nothing I say here diminishes the unabashed suckitude of having to specify files I'm editing before editing them (which defeats 50% of the purpose of *having* a repository management system, but whatever). But. The really, really nasty bits are the workspace setup. For CVS, it's just "cd product/version ; cvs update" and I'm ready to start my day with the latest code in the repository merged with my uncommitted changes. With p4, oh no, it's:
  1. cd product/version
  2. vi $P4CONFIG (to select my clientspec)
  3. p4 client (to make sure I'm in the right directory, 'cause it won't work otherwise, and to edit the hostname since they can't be shared across boxes...)
  4. WHOOPS! My ticket expired! "p4 login"
  5. enter my password
  6. p4 client (as above, for real this time)
  7. p4 sync ...
and even after all that, my open files still aren't synced! Then repeat that for the other 5 or so branches I work on. Fun, fun, fun.

The only pain I had with CVS (as a user and as an administrator) with heavily-branched code was having to do multiple checkins. p4 (at least the way it's used at work) hasn't solved that problem: it's still multiple checkins everywhere. Except it's not "cvs diff | patch", no, it's "p4 integrate" which I have never, ever gotten to work on the first try. Oh, and of course, even "p4 describe -du" doesn't produce diffs usable with patch! Yay! Oh, and "p4 annotate" requires a wrapper script and multiple p4 commands just to get the same info as "cvs annotate"! Bonus! I need to stop now to spare my keyboard from additional rage. :-/ The only "p4 resolve" switch I've been introduced to is "-n", so at least I no longer get those surprise! merge conflict face-fucks as part of a large submit.

A lot of this could be the fact that, uh, that company sucks at CM in general, and the utter lack of p4 training, but p4 still makes my life hell. It's harder to use than CVS and gets in the way at every turn, all for little to no visible benefit.
29th-Jun-2007 05:22 am (UTC)
I set P4USER, P4PASSWD, and P4CLIENT in my environment and never have to worry about them again (unless I need to change clients for particular tasks). It works out OK for me.

O'Reilly makes a decent p4 book, and the p4 help info is actually pretty decent. Perforce.com has pretty good docs, too (including some neat stuff on RE best practices and such).
This page was loaded Jul 22nd 2019, 8:22 pm GMT.