Blender Switching to Git (from SVN)

Squizzz; I wouldn’t be surprised if the Blender git setup will be done in a way where there’s a master branch (now known as trunk), that will still require commit rights to work on directly.

Remember that they aren’t going to use github, bitbucket, or another public repository as their setup (like seen with the majority of FOSS projects using git), they’ll be using one that is specifically designed for the Blender development model so I don’t think they’ll be simply allowing anyone to dump new code into trunk even if they’re inexperienced.

They certainly won’t be the first development team to Become Enlightened. :smiley:

I don’t think it has a lot to do with system superiority. It would appear that git is the DVCS that simply has the greatest amount of traction with Blender’s most prolific contributors.

Not to fan a flamewar (because I know that there are idiosyncrasies to each system that more knowledgeable people will be more than happy to point out), but while Mercurial may be marginally more convenient for cross-platform development (and I lean to it for my own internal projects), git really isn’t that much more complicated to use on non-unix systems… especially with IDE integration.

Really, the primary advantage of either system is as Aligorith has pointed out… and local staging and committing being the biggest, IMO.

The great difference between SVN and git is that SVN keeps deltas for the changes while git saves the whole new file. Imagine a file with thousands of commits: with SVN you have to get all the deltas and apply them, with git you get the version you need.

True, though one of the nice things you get in Subversion that hasn’t yet been nicely solved in any DVCS that I’m aware of is “narrow cloning”… that is just doing a partial checkout/clone of a single subdirectory of a project. Granted, on a well-organized software development project, this isn’t so much an issue. However, if you’re using version control for, say, an animation project and want a remote worker to do a checkout of one shot from that project, then that’s not nicely doable in either hg or git. Of course, this is straying a bit off-topic from the OP, but I figured I’d mention at least one nice thing about SVN. :wink:

I’m guessing it wasn’t automatic in any sense of the word. I’m sure they put some significant thought into making that decision. Git seems very concise and clean to me. Mercurial is python, sometimes C, at least per the wikipedia article (I couldn’t research using the Mercurial website because it was down).

Not really straying from the topic much. :slight_smile: As far as I know, sparse checkouts are available with Git as well. It may not work the same way. See http://briancoyner.github.io/blog/2013/06/05/git-sparse-checkout/.

To all folks who think git on window$ will be a problem. Here you have a great and free gui for git. http://www.sourcetreeapp.com/
Besides that TortoiseGIT works more or less the same to TortoiseSVN. But faster.

regarding windows, git and git using perl/unix scripts.

MSVC now has native git support, and its written by Microsoft.
http://visualstudiogallery.msdn.microsoft.com/abafc7d6-dcaa-40f4-8a5e-d6724bdb980c

This uses libgit (a native git implementation).

See: http://episodes.gitminutes.com/2013/04/gitminutes-05-martin-woodward-on-visual.html