Home - Search - Site Map - Site Graph   |  Contact  

( Last Modified: 2008 October 16th 01:54 PM)

Why Perforce Sucks

There seem to be a number of these "Why Perforce Sucks" compositions on the net, here is my contribution.

Must declare intention to edit files

The paradigm of "In perforce you tell the server you are going to make a change." before you make it, rather than make changes first.

I find this makes developmeny much slower than with other SCMs that don't use this paradigm.

One workaround is to open everything for edit and set the SubmitOptions clientspec variable to "leaveunchanged+reopen". Rather then open one file at a time for edit as needed.

Possible to use P4Win > File > More > Check Consistency, with allwrite, so you don't have to tell perforce what files you have changed, but working around all perforce speed/efficiency.

This is intended to serve a purpose though. Because edits must be told to perforce to make files writable. You can see who has what files open, and share status between developers.

Very Hard To Find Files to Add

It currently seems the best way to do this if to drag and drop an entire folder into a changelist P4win and see what appears and revert the rest.

This assumes you have all client spec up to date to ignore all the temporary files in you workspace, or you'll have to sift though them each time.

No ignore locations in the repository.

- You can ignore locations in client specs, but cannot check these into the repository
- .p4ignore only works for p4wsad?
- Related to "No easy way to find files to add." because if you get perforce to search for new files you need to ignore locations that will always have new files that you aren't interested in.

Read only status of files makes working copy less usable

Possible work around allwrite option can cause data loss (clobbering).

"What I have seen is that if you check out with allwrite and even if you have
noclobber option set p4 will overwrite your files."
- http://maillist.perforce.com/pipermail/perforce-user/2003-March/010679.html

No tracking empty folders

A common shortfall of SCMs

No LineEnd "None" option:

And set for all files in client, can exclude makefiles etc...

Specifies which line-ending convention is used when a file is synced to the client workspace.

http://smithii.com/perforce_bugs

There is a "nocrlf" option for the client spec to ignore this option, or you can treat files as binary but:

   "this configuration also disables all other Perforce text-specific features for that file, including RCS reverse-delta storage and three-way merging capability."

reference: http://kb.perforce.com/P4dServerReference/CrlfIssuesAn..LineEndings