5 ms·
What you’re looking for is called Perforce.
by satya71 5y ago
What you’re looking for is called Perforce.
- dijit 5y agoPerforce for assets? Sure. Perforce for code? It tries.. but, no thank you. Even if the client was good (it's really not, and will spin a CPU core when it detects a network hiccup) -- it still has a frustrating workflow paradigm, p4ignore is configured per-client, everything is read-only (leading to ugly context switches unless your editor directly integrates with p4) and the command line is so terrible that I think it was actually a joke that someone ran with. No, perforce is not what you want, without even going into the "decentralised vs centralised" aspect of it.
- andromeduck 5y agoIt's not p4 but Google3 + Hg CLI was way more fluent than I expected. I wish the third party portion were available as a service outside.
- dijit 5y agoWell, piper is "perforce that doesn't suck (and costs a heck of a lot less)" I wish it were public.
- secondcoming 5y agoLast time I used Perforce was around ~2006 in a mobile OS company of approx 3000 devs. Boy was that thing slow. Still though, P4Merge is my go-to diffing tool.
- icedchai 5y agoI worked at a company that used Perforce. It took 2 weeks to get a branch created. No thank you.
- dijit 5y agoReally not defending perforce, but "branches" are not how you usually work, a branch is basically a fork of the repo, it's almost impossible to reconcile. "Branches", the way we use them in git are more like perforce Shelved CLs.
- icedchai 5y agoYes, I remember using "shelves" a lot. The branch was created for a major refactor of the code base, and the team I was on moved to that branch. Not sure what happened to it. I hated that company and left after a few months.
- koenigdavidmj 5y agoI wonder if it’s a workplace I worked at. We ended up having a bunch of generic branch names (one org had colors, another had star-related things), and when a project was done, they just used that branch for something else.
- Jochim 5y agoIt's worth pointing out that shelved changes don't have any history though, so cross your fingers to make sure you don't accidentally delete/overwrite something. Fwiw the only major issue I've had with branching is the fact its a full fat copy of your source which can end up taking up a load of space depending on how large your application is post build and how many binaries you dump into perforce. They seem to be pushing towards "streams" now, but I've heard they make it easier to create development branches but haven't worked with them to find out.
- jayd16 5y agoNah, shelves have no history. They're more like a patch. P4 streams are the closest to git branches.
- m463 5y agop4 branch <name> (fill out the mapping) p4 integrate -b branch //...
- icedchai 5y agoI wonder what took the "IT department" so long then...
- TheRealDunkirk 5y agoI'm sure that using commercial source control software doesn't HAVE to suck, per se, but the kind of companies that can afford Perforce are usually so bloated and political that you can't avoid that kind of bureaucracy.
- jaaron 5y agoYep. There are reasons Perforce is so prevalent in game development, even if we gripe about it: - Large binary asset support. - Exclusive locks for binary assets. - Speed. When configured properly, it's very fast, particularly for large repositories. - Tooling support. It's nearly ubiquitous in gaming. I'm working on repositories that are 100+ GB and need to support both programmers and artists. Git just isn't the right tool. We do use git for backend server-side projects. Having to support two different version control systems is a pain, but, again, it's useful to have the right tool for the job.
- satya71 5y agoPerforce has a product called Helix4Git, which apparently allows you to use Git with Perforce. Is it something you tried?
- jayd16 5y agoIts still pretty fragile but it does work. I wouldn't recommend it for daily usage though. Too many things in p4 show up as impossible breaking changes to the git repo.
- traviscj 5y agoI really love the pragmatism behind saying: yes, X sucks, but it’s still useful.
- jayd16 5y agoGit LFS is really robust these days. Personally I think its faster then Perforce now. Reconciles can hang and there's just so much more that can be done in git without hitting the network. GitLFS supports locking too.
- m463 5y agoI like that a changelist is one atomic unit in time across everything. Don't underestimate the number of footshoots this avoids. and you can build your tooling on top of it.
- deleted 5y ago[deleted]
- jayd16 5y agoP4 is ok even if I find it buggy and slow. Ironically, what files count for p4ignore isn't even centrally configurable. You can't configure diff tools or merge strategies centrally either. Because every commit has to hit central, receive hooks are actually useful and you can do big branch remappings in a more seamless way than adding a git submodule. I forget where line ending configs live. P4 solves some of these things but not everything and adds its own headaches.