We use perforce at work (I use git with smartgit and TortoiseGit UI, whatever I feel like) on unity I use a package called wise for unity, which is really cool and I wish would exist in Godot.
We use perforce because we have a lot of unreal and unity and admittedly git is really bad with big binaries. It was never designed for that and git lfs ist basically just a bandaid.
In general for gamedev you’ll run into a problem that a scene will be modified by 2 people. For that it is good to have perforce, as it locks a file and will tell you, that someone is working on it. Git lfs has something similar, but the again. This file locking is not yet supported by Godot.
But yes for unity and unreal at work… Even if perforce is expensive and not open source and I miss git-branches, it is an important tool and was worth the money for a company.
For your own small projects I recommend git with git-lfs
I mostly use git and I’ve recently been exploring anchorpoint as a way to bridge the gap between me and the less technical friends. It’s does the job reallt well and I’ve been happy with it so far. It being a wrapper around a git repo is a very convenient compromise - I get to pick my hosting, use CLI, while other members of the team can use a more robust visual program.
SmartGit - lets you see the commands it’s running and has a fairly decent toolset for rebasing (but I stopped recommending them for awhile when they delisted their perpetual licensing. It looks like as of writing it’s returned but only allows for 1-3 years of updates depending on how many years you buy)
I’ve had my eyes on lazygit and gitui as a cli supplement
On a different note, I wish git lfs wasn’t such a pita. Orphaned pointers living forever on GitHub and eating up all your quota with no way to recover unless you DELETE the repo lol
Git here. Subversion for a while before that. And source safe, or as I like to say source “safe”, before that.
But maybe a better question would be, what source control hosting site (if any) do you use? And do any of them not forcibly use your code to train their AI?
I’ve been trying out Jujutsu recently.
It’s compatible with git repos. The workflow takes a little while to get used to but can be nicer to work with.
can be nicer
Understatement. It solves almost every problem I’ve ever had with git.
- No more destructive commands.
jj undo
orjj op restore
can always put you back into a good state. - Merge conflicts can be ignored until you want to resolve them.
- No “unstaged files” to deal with. Just keep your
.gitignore
s up to date andjj
automatically tracks new files. - Rebasing and patch management is just incredibly simple.
- It actually has a nice default view of the commit graph.
I used to use StackedGit for a while before switching to Jujutusu. While
stg
is nice, I thinkjj
is a huge improvement.Aside from the obvious cases like pruning or garbage collection that remove orphaned or dangling commits, is there anything else destructive that
git reflog
can’t help recover from?I probably can’t give a good technical comparison of the power of
git reflog
vsjj op log
, but I findjj op log
much easier to use.
- No more destructive commands.
Git at work.
Mercurial for my own stuff.
Project-USE THIS ONE!.py
…
Hahahaha, I know what you mean
I use git:
branches
master main deployment_<timestamp> pre-master adding_latest_feature testing
Perforce when I was doing it professionally but now for hobby just github desktop.
Git for pleasure, Perforce for dayjob
just git
Magit, which is the best Git porcelain around. Git, because it has an unparalleled free-software ecosystem of developer tools that work with it.
Why is Git’s free-software ecosystem so much better than all the other VCSen?
Largely because of marketing (the maker of Linux made this! hey look, GitHub!), but also because it has a solid internal data model that quickly proved to experts that it is fast and flexible and reliable.
Git’s command-line interface is atrocious compared to contemporary DVCSen. This was seen originally as no problem because Git developers intentionally released it as the “plumbing” for a VCS, intending that other motivated projects would create various VCS “porcelain” for various user audiences. https://git-scm.com/book/en/v2/Git-Internals-Plumbing-and-Porcelain The interface with sensible operations and coherent interface language, resides in that “porcelain”, which the Git developers explicitly said they were not focussed on creating.
But, of course, the “plumbing” command line interface itself immediately became the primary way people were told to use Git, and the “porcelain” applications had much slower development and nowhere near the universal recognition of Git. So either people didn’t learn Git (learning only a couple of operations in a web app, for example), or to learn Git they were required to use the dreadful user-hostile default “plumbing” commands. It became cemented as the primary way to learn Git for many years.
I was a holdout with Bazaar VCS for quite a while, because its command-line interface dealt in coherent user-facing language and consistent commands and options. It was deliberately designed to first have a good command-line UI, and make a solid DVCS under that. Which it did, quite well; but it was no match for the market forces behind Git.
Well, eventually I found that Magit is the best porcelain for Git, and now I have my favourite VCS.
Upvoted for bazaar. Even before git existed bzr and qbzr on windows were more user friendly than git with any gui is now.
If it weren’t for magit, I’d probably STILL be using hg.
Git
Git
Git
Git