Alternatively, Perforce is used extensively in the gaming industry, really good integration with Unreal Engine.
Yesterday, I finally understood why: in their previous team, someone who didn’t understand Git at all, brought it in, and they ended up commiting directly to master and using spreadsheets to track who was editing what (no gitflow, no PRs) - just baffling, of course it didn’t went well, and of course they hate it.
How do I get them to trust the Git system again is an interesting challenge, but Perforce works, and basically wanted to share this amazing story.
Instead of showing you a graph and letting you change it.
It's mainly used by people who would say they're writing software, not manipulating graphs.
It also doesn't tell you this is happening, so people coming from another VCS don't even know there's this whole other part they should know. They memorize commands that seem to work, it goes ok, and then one day they ruin everything. Silly, that command means something different in the context you had no idea you were in. Duh.
Their experience with Git is that it's hard to make it work and then it randomly blows up. It's not because they're stupid or lazy. They're normal people dealing with a system that from their perspective is almost cartoonishly hostile.
They might wonder why they need to care about some underlying data model just to save their work instead of what they're doing now. If you have an answer that will make them want to switch, I suggest you spend a good while showing them pictures of history trees and ways you can change them. Name things slowly: this node is a "commit," this state change is a "reset," this transformation is a "rebase." If you have a workflow on top, draw more pictures of its states and changes using those terms. Then (re)introduce Git, a tool that does what you've shown them. Then set them up with a client where they have that flow with those terms and a graph they can look at, if not manipulate directly.
I truly detest Perforce with a passion but I understand this use case.
The answer to that question gives you what you need, bit could allow you consider whether the trade is worth it.
I have convinced gitophobes in the past, but the team was mostly on board, it was the minority that needed coaxing. That is much easier, because you can suggest trying it by working with those open to it. Generally people will cave to FOMO as others are learning together.
I would also keep in mind that there is a upper limit to how much 'selling' you can do to someone, so make sure this fight is worth it before using up the political capital needed to get them there.
If you're making a game perforce is the only legitimate option. Unless you hate your developers, then try alienbrain.
To answer some of the questions:
- Perforce isn’t going way, Git would just there for projects that will benefit from it (generic tools, less overhead setting up a repo)
- Git will need to bring value for the people using it (it’s just a tool), so something to think about
- Git graphical ui is definitely a good idea, I think it will also show better what operations are available for different contexts
- Definitely taking into account understanding Git graph and snapshot concepts is a very good start, as well having graphical visualisations