6 ms·
Also known as workspace views in P4. It's interesting to see the wheel reinvented. We used to run a 500gb art sync/200gb code sync with ~2tb back end repo back
by vvanders 7y ago
Also known as workspace views in P4.
It's interesting to see the wheel reinvented. We used to run a 500gb art sync/200gb code sync with ~2tb back end repo back when I was in gamedev. P4 also has proper locking, it is really the is right tool if you've got large assets that need to be coordinated and versioned.
Only downside of course is that it isn't free.
- jasondclinton 7y agoThis kind of comment isn't helpful. Of course, there have been ways to copy large files around since there were networks. What's new in this protocol enhancement is that this works within the context of a Merkle tree-based technology (upon which all DVCS's are based). To use your analogy, yes this is a wheel but it's built with rubber instead of wood and iron.
- vvanders 7y agoI guess I should have expanded more. DVCS is in direct opposition of workflows that include binary files(yes I'm aware that git lfs has locking, it's also centrally orchestrated) because you can't merge almost every binary format. We were using P4 ~15 years ago for these workflows and rather than understanding what made them work people are just rediscovering the same problems that have already been solved. My guess is that we'll next see a solution that dynamically caches most downloaded files in a geographic friendly way, heck we may even call it "P4Proxy". I've seen so much FUD around how git is the "one true workflow" because other solutions "don't scale" when they don't understand the constraints that certain workflows impose. Git/DVCS is great for a lot of things but sometimes you should use the right tool for the job rather than hack something together. [Edit] These reasons are exactly why you see Unreal supporting P4/SVN out of the box[1] and no mention of git. [1] https://docs.unrealengine.com/en-US/Engine/UI/SourceControl/index.html https://docs.unrealengine.com/en-US/Engine/UI/SourceControl/...
- dagmx 7y agoI think this is a very p4 centric view of the world. Locking helps with preventing collisions, but honestly the issue is still always communication. Why are people even touching files they shouldn't be touching? Meanwhile perforce is a pain for code heavy projects and requiring a central perforce server. Git works great there. The issue is neither is a silver bullet for the others workflow and needs, and they both suck horribly for mixed code and binary asset workflows. That's not even considering cost. Meanwhile film studios generally prefer keeping the considerations separate and using symlinks or URI to their data store and that works really well. But that doesn't work great for remote workflows. So again, I think you're applying a very p4, game centric view to this. There are lots of different use cases and team structures that none of these version control systems are able to address in their entirety.
- vvanders 7y agoIf by P4 centric you also mean SVN as well then sure. I will say however that if you think locking is optional then you already don't understand these workflows and why they're so critical. Art/design/animation doesn't care that "they should not have been touching the file" they just care that they have to throw away two days of work because someone made multiple edits to the same package file. I've literally seen multiple teams almost come to blows when this happens. You can separate code from art/assets. That comes at an integration and iteration cost, it'll drive your designers mad. There are workflows out there where code is not the first class citizen, in those cases I've seen git shoehorned in and untold pain follows.
- dagmx 7y agoI've worked as a pipeline supervisor at one of the biggest VFX studios. I very much understand these workflows. I've worked as an artist and a tech artist in perforce and SVN workflows too. I've had to support the workflows of a 1000+ workforce across multiple locations. I don't think attributing my disagreement with you to not understanding workflows is a fair characterization. I still think locking , while useful, is only mandatory for work cultures with poor communication. Otherwise, many companies get by with very large workforces who don't hit these issues without having locking. Separation of code and art assets also don't need to be painful. It's very doable but does require some amount of architectural consideration. And I very much acknowledge there are projects where code isn't the majority makeup, which is why I say that none of the VCS systems cover mixed projects well or cover all the needs of the others well.
- jfkebwjsbx 7y agoP4 was great for its time if you could pay for it, but it is definitely not a competitor anymore. Git LFS has been just fine for multiterabyte repositories for years.
- w0m 7y agop4 is still great, that there are workarounds to be usable on similar workloads on git doesn't takeaway p4s inherent advantages. they're two very different tools.
- vvanders 7y agoThank you, that phrases it much better than I could. They are very different tools(although I hear good stuff about P4 Fusion). Now if someone wanted to make an open source P4 replacement that would be a neat thing.
- jayd16 7y agoP4 is fine on paper. I just wish the the client didn't crash and the server didn't lock up as often as it does. P4V is a mess.
- 01100011 7y agoI love P4 for just working, but I absolutely can't stand the limited shelving ability. I ended up writing a helper program that lets me shuffle local changes off to a git repo just so I could manage working on several overlapping changelists. Perforce would be so much more usable if they would include this sort of basic functionality right out of the box. The thing git gets right is that you often need to juggle several threads of change at the same time, and those threads may have complex branching as you try out different approaches and combine the best pieces at the end.
- dijit 7y ago> Only downside of course is that it isn't free. Another downside is that it consumes insane resources (our servers are in the dozens of TiB of ram, with huge NVMe based storage arrays directly attached) Another downside is that you have to maintain connection to p4 to do any VCS operations (stashing included). Another downside is that branches are very "expensive" (often taking days) and are impossible to reconcile. We never re-merge to MAIN.