BlockLeftTop, PRELOAD BlockLeftBottom, PRELOAD BlockLeftStretch, PRELOAD BlockTop, PRELOAD BlockBottom, PRELOAD BlockStretch, PRELOAD BlockRightTop, PRELOAD BlockRightBottom, PRELOAD BlockRightStretch, PRELOAD
DeltaEngine

Trying out Git and why distributed versioning is not really for game developers.

by Benjamin Nitschke 20. September 2009 14:36
After watching the following video from Linus Torvalds about Git and testing several versioning tools this week again (see my previous post about all kinds of source versioning tools like TFS, VSS and SourceGear Vault), I decided to give Git a chance. A friend of mine is using Mercurial for his personal projects by utilizing VisualHg (Mercurial plugin for VS). Mercurial is very similar to Git (from my limited knowledge), both are distributed revision control systems, which means no central server and everyone has a peer-to-peer like repository. This this involves much more merges, branches and applying patches to many different repository versions, merging is much more important than in a centralized versioning tool.

The only reason I even watched the following presentation about Git (it does not really tell you much) is because Linus was bashing CVS, Subversion and many other versioning tools so hard. Some true points, but some people really disliked his style. I found it entertaining.



You can find more documentation and a second video with more technical details about Git on the Git Documentation website.

Well, all this Linux crap can be interesting from time to time, but as long as there is no Visual Studio integration, I'm not really ever going to use it anytime soon. However, there is a pretty successful GitExtensions project, which includes a very good integration to Windows, the Explorer and even Visual Studio 2005/2008. After installing this and trying it out for a while I kinda liked how nicely everything integrates into this tool-set. You got Putty or OpenSSH, KDiff3, all the command line support for playing around and you can even integrate all kinds of other merge tools from Subversion, Perforce or whatever you like better. Using GitExtensions is definitively easy and I can see why it would make sense in a highly distributed open source project, everyone can work on his own version and changes or fixes are around at different places. It can also be used for small teams, then everyone trusts each other and can merge all the changes whenever they want. Merging changes is pretty cool tool, there is no need to do it twice, once a programmer has merged something, it is merged for everyone else once he pulls the new version.

However, I will not be using Git for neither my personal projects nor at work. First of all I do mainly game development and while source files are important, there are many other file formats to consider and Git does not store them in any useful way. Because of the distributed model it is impossible to lock a file, which means any changes to any binary file can result in loss of work (or worse: more work since someone has to merge changes yourself by hand). I have read many discussions about this yesterday and some people are just retarded to not see the point. If you just put text files into Git, everything is fine, but once you have binary files that might change (why else would you even put them into a versioning tool), you can get into trouble. I'm not saying tools like Subversion are better, but at least they allow you to lock files, to announce to everyone in the team: "This file is mine now, please wait until I'm done changing it". With more than 3 people and with lots of un-merge-able binary files this is currently the only way this can work efficiently. Sure we could use two or three different kind of versioning tools (one for programmers, one for content, and even specialized ones for artists, which integrate into their tools, etc.), but what is the fun in that?

But that is not really the reason not to use Git for source code. Merging works pretty good for text files and since you can do a lot more merges and be much more efficient, it sounds really useful. Git even tracks if you remove code from one file and put it into another file, you can still see history of it, etc. The reason I really dislike Git and many many other versioning tools is simply: It is freaking annoying to use all the time. You may only waste 10-30 seconds for pulling, committing local changes, pushing them to somewhere else, selecting files that have changed, adding comments, doing a quick merge, etc. every time, but if you do that many times a day, a lot of time is used just for that. You don't believe me? Just watch the 5 video tutorials on the GitExtensions homepage, or check out the Git Documentation, its samples and video tutorials. It is not hard to use these tools, but it costs a lot of time constantly doing all this crap. I fully understand that this might be very necessary for huge projects like the Linux Kernel or useful and wanted for distributed open source projects, but that is not what I want to do all day and that is not what I want my employees doing.

I like if the source control system is completely hidden and ALL actions are done automatically by just working on the project!
- You open Visual Studio to start working? All files are updated automatically!
- You edit a file? The file is checked out to you automatically, others can still work on it, if it is a merge-able file, but they know that you are already sitting on it (maybe both of you are trying to do the same thing, check work tasks again). But even if both people are required to change a file, there is usually never a problem if you check-in often!
- You are done working? Just close Visual Studio and everything gets checked in automatically with a nice comment (required). Or just commit in the middle of the day as much as you want if you think your changes are important or needed right now.

Easy as that. We pretty much worked that way in the last project, except we used Subversion and we had HUGE amount of files (20+ GB just binary content). On some slower PCs it took 10+ Minutes just to get the latest files. Then we had to manually Update everything every morning just to start working. Committing happened when done working or when something important was finished. But many commits just fail in a big team because you have to update again since someone else changed something. Then there is the worst part: Merging. Sometime it works fine. "Luckily" we only had a few developers working on the same files so most changes could be merged, but from time to time there were really bad merging conflicts. Empty lines could not be merged, comments were slightly different (e.g. we had to disable automatic comment and header generation just because of constant conflicts of really unimportant stuff) and if you were really unlucky some changes were merged into a uncompilable mess. Even worse, sometimes you could compile it, but some game logic was now buggy or some config files were messed up. What I also hated about Subversion was the fact that I could never get a complete version of the repository at home, there was always some stupid checksum error, network corruption, https not working, etc. problem that prevented some 200MB file not being downloadable.

Again, it all depends on what you are working on. For example our artists had not much problems with Subversion except for the long update times, annoying cleanup and rare mess-ups that happened from time to time. But then again they never versioned their work data, they just checked in the final files to be used in the game. That alone eat up many 100 GB on the repository. I bet the Linux kernel team is happy with Git and many years ago when I was using VSS for myself I was also happy with it (not much can go wrong if you are by yourself ^^). For our next project I also don't want to have the whole repository of everything on my small SSD, e.g. subversion needs everything twice, git would even need more than that since every version is in the .git directory plus the actual working files, fine for text files, not fine for huge binary files. Only give me the stuff I really need for working, not sure how to do this for content yet, but I bet there is some crazy setting in Perforce to do it or we just write some tools ourselves that only get stuff that is required for execution (unit tests, editor, etc.).

Still had not really time to dig into any of the new tools I wrote about in the last weeks, but for now I will stay with SourceGear Vault and its painless integration to VS. It looks like our Artists disliked AlienBrain (mostly because of the fact that it does not even support the recent 3DS Max 2010 version for over 6 months now), for that reason they are currently evaluating Perforce, which is kinda hard to get used to at first, but it is fast for binary files and it integrates nicely into everything (Photoshop, 3DS Max, Maya, etc.) and we can also use it for our project management (OnTime) and hopefully integrate all that together with our build tool (whatever it might be, I'm currently liking Cruise Control). I don't think I like Perforce for us coders since the VS addin is very old school and might cause some pain. The server setup was also not easy at all, there are no admin tools on the server, you have try to use the stupid P4V program or even better the command line to fix up stuff. Currently we got a delay of 5s for all operations and we have no idea where it is coming from. Probably have to set it up again and try all kinds of settings to get it into a usable state. That is something I really liked about SourceGear Vault, installation took 2 minutes and everything was working out of the box. It might be a more simplistic tool, but that's what I'm looking for :)

Useful links:

Comments


11/2/2009 12:03:04 AM #

Trying out Mercurial with VisualHG

Trying out Mercurial with VisualHG

exDream Blog | Reply



11/9/2009 5:14:03 PM #

Yea nice Work !Laughing

paydayloans | Reply



11/19/2009 2:52:15 PM #

I guess there's always an easier way ...

cash loans | Reply



12/8/2009 7:08:23 AM #

Thanks for sharing this nützlich information.Great post!
Wir freuen uns für weitere Updates zu diesem Thema.

freisteller | Reply



12/28/2009 6:35:32 PM #



Yea nice Work !Laughing

auto insurance quotes | Reply



1/7/2010 2:18:59 PM #

Nice resource. rss feed added

payday loans | Reply



1/9/2010 3:29:22 PM #

thanks a lot for the great video and great information. it was really interesting to watch this video.

burning calories | Reply



1/10/2010 2:46:30 PM #

Nice resource. rss feed added

online payday loans | Reply



1/20/2010 11:59:39 AM #

Thanks for the post. Keep the great work.

camera shops sydney | Reply



1/20/2010 12:00:11 PM #

Cheers for the info. It was a good read.

pokerstars bonus code | Reply



1/21/2010 8:39:03 AM #

Starting to understand a bit more now... Thanks for keeping it simple!

escorts | Reply



1/22/2010 2:32:10 PM #

Nothing gives a person so much advantage over another as to remain always cool and unruffled under all circumstances.

fast cash personal loans | Reply



1/23/2010 2:13:54 PM #

Use a picture. It's worth a thousand words

payday advance | Reply



1/29/2010 9:00:09 AM #

Hi,


Thanks heaps to the author!

Sonoma Diet      | Reply



1/29/2010 12:27:13 PM #

Excellent blog post, I look forward to reading more.

australian health insurance | Reply



1/30/2010 8:23:18 AM #

Very useful info. Hope to see more posts soon!

consumer complaint | Reply



1/30/2010 11:18:46 AM #

I feel a lot more people need to read this, very good info!

attract women | Reply



1/30/2010 12:10:21 PM #

You really know your stuff... Keep up the good work!

business directory | Reply



1/30/2010 1:20:16 PM #

  Don’t stop writing, you’ve given me lots of good info!

brisbane car hire | Reply



2/3/2010 1:29:58 PM #

Interesting read, thanks for helping keep me busy at work ;)

escort in sydney | Reply



2/6/2010 12:08:53 PM #

You are very right!! Some things are just the way they are and will never change. Thanks for the info.

Carnival Cruise Ships | Reply



2/8/2010 11:56:50 AM #

Sein wirklich netter Artikel !!!!!!!!

freisteller | Reply



2/9/2010 5:36:57 AM #

The blog was absolutely fantastic! Lots of great information and inspiration, both of which we all need!

Online Sweepstakes | Reply



2/9/2010 10:40:19 AM #

I feel a lot more people need to read this, very good info!

debt reduction | Reply



2/10/2010 1:58:09 PM #

Forwarded this to some friends, appreciate your advice

blinds perth | Reply



2/13/2010 11:24:33 AM #

nettes posten

PETRA REISEN | Reply



2/13/2010 2:41:57 PM #

Your post is just the same to the thoughts I was having today. I really appreciate this. Keep going what you're doing.This is an awfully splendid column you've put up there.Nicepost I have acquired a lot of interesting matter that i need.....

playedonline | Reply



2/15/2010 7:07:35 AM #

Hi,
  I feel a lot more people need to read this, very good info!

brisbane fitness | Reply



2/15/2010 11:06:21 AM #

Forwarded this to some friends, appreciate your advice

adult sex toy | Reply



2/16/2010 11:04:52 AM #

Excellent blog post, I look forward to reading more.

cheap printer ink | Reply



2/17/2010 7:58:36 AM #

Really appreciate this post. It’s hard to sort the good from the bad sometimes, but I think you’ve nailed it!

Income protection insurance | Reply



2/17/2010 7:59:25 AM #

I’m impressed, you know what you’re talking about ..

management courses | Reply



2/17/2010 1:38:10 PM #

Useful info. Hope to see more good posts in the future.

brisbane cheap car rental | Reply



2/17/2010 2:49:52 PM #

I’m impressed, you know what you’re talking about

digital camera brisbane | Reply



2/17/2010 3:20:43 PM #

The tutorial is so detailed and helpful. Thank you for the post!

Food Intolerance Systoms | Reply



2/17/2010 3:24:28 PM #

I recently came across your blog and have been reading along. I want to express my admiration of your writing skill and ability to make reader to read the while thing to the end. I would like to read more of your blogs and to share my thoughts with you.

3 inch binders | Reply



2/18/2010 3:28:56 PM #

Very useful info. Hope to see more posts soon!

brisbane car rental | Reply



2/19/2010 10:57:56 AM #

I admire what you have done here. Thanks.

colorado springs mortgage | Reply



2/19/2010 11:33:26 AM #

You really know your stuff... Keep up the good work!

redken | Reply



2/20/2010 6:43:17 AM #

I read your post . it was amazing.Your thought process is wonderful.
The way you tell about things is awesome.

used cars long island | Reply



2/20/2010 9:14:55 AM #

That's really very nice blog, I am impressed.

designer fashion | Reply



2/23/2010 5:06:08 PM #

Really appreciate this post. It’s hard to sort the good from the bad sometimes, but I think you’ve nailed it!

camera stores sydney | Reply



2/23/2010 5:07:28 PM #

Awesome post! Interesting info to know.

adult sex toys | Reply



2/24/2010 7:22:46 AM #

I wanted to thank you for this excellent read!! I definitely loved every little bit of it.Cheers for the info

JORDANIEN REISEN | Reply



3/1/2010 11:28:35 AM #

Great post, I look forward to reading more.

best home based business | Reply



3/1/2010 11:56:52 AM #

who is first batsman of the world which record fasted double hundred in test cricket?

liquid natural gas | Reply



3/1/2010 6:33:04 PM #

A good read, definitely worth a cut and paste. Thanks!

Gun Safes | Reply



3/12/2010 10:28:02 AM #

Very useful info. Hope to see more posts soon!

business opportunity | Reply



3/13/2010 8:52:35 AM #

this blog is very interested.

Live Cricket Ssore | Reply



3/15/2010 8:01:40 AM #

This looks absolutely perfect. All these tiny details are made with lot of background knowledge. I like it a lot. Keep on taking action!

sonnerie portable gratuit | Reply



3/15/2010 6:46:04 PM #

Thx. This's useful, as at first glance the farmer may think there is no difference.

dual diagnosis centers | Reply



3/17/2010 6:06:09 AM #

Nice post.I like the way you start and then conclude your thoughts. Thanks for this information .I really appreciate your work, keep it up

PETRA REISEN | Reply



3/19/2010 3:48:45 PM #

Useful info. Hope to see more good posts in the future.

medical computer carts | Reply



3/25/2010 9:07:20 AM #

Hello,

Thanks for sharing nice video with us.I really enjoyed every little bit of video.

parking ny | Reply



3/25/2010 11:08:38 PM #

Questions provide the key to unlocking our unlimited potential.

digestit | Reply



3/27/2010 7:02:37 PM #

it was amazing.Your thought process is wonderful.The way you tell about things is awesome.

Los Angeles Search | Reply



3/27/2010 7:27:59 PM #

Software Development Part 3: Tools Of The Trade  @  Making Life Easier

Los Angeles Search | Reply



3/27/2010 8:26:02 PM #

huge projects like the Linux Kernel or useful and wanted for distributed open source projects, but that is not what I want to do all day and that is not what I want my employees doing.

Los Angeles Search Engine Optimization | Reply



3/29/2010 10:57:10 AM #

sharing this nützlich information.Great post!
Wir freuen uns für weitere Updates zu diesem Thema.

Automiete | Reply



4/1/2010 11:13:31 AM #

The major reason for setting a goal is for what it makes of you to accomplish it. What it makes of you will always be the far greater value than what you get.

teeth whitening | Reply



4/1/2010 12:15:03 PM #

There are very few people in this world who gives such tremendous views. I appreciate your work and hopping for some more informative posts.

SEO COMPANY | Reply



4/1/2010 2:40:59 PM #

Keep posting interesting and informative posts like this.

London Escorts | Reply



4/1/2010 3:26:17 PM #

I watched here very nice video. Thanks for the sharing.

self directed ira | Reply



4/3/2010 6:56:31 PM #

sharing this nützlich information.Great post!
Wir freuen uns für weitere Updates zu diesem Thema.

Search Engine Optimization Service | Reply



4/5/2010 12:59:02 PM #

This is a really good read for me, Must admit that you are one of the best blogger I ever saw.Thanks for posting this informative article.


modular homes nc | Reply



4/8/2010 3:22:32 PM #

sharing this nützlich information.Great post!
Wir freuen uns für weitere Updates zu diesem Thema.

Internet Marketing California | Reply



4/12/2010 2:30:52 AM #

Thanks for  informative post. I am sure this post has helped me save many hours of browsing other similar posts just to find what I was looking for. I just want to say: Thank you!

Adjustable Mattresses | Reply



4/13/2010 4:49:59 PM #

This was just what I was on  looking for. I'll come back to this blog for sure!

Watch Hot Movies Online | Reply



4/16/2010 8:35:43 AM #

Pingback from nullkingdom.wordpress.com

版本控管 « Nullkingdom's Blog

nullkingdom.wordpress.com | Reply



4/16/2010 9:02:00 AM #

Pingback from nullkingdom.wordpress.com

版本控管 « Nullkingdom's Blog

nullkingdom.wordpress.com | Reply



4/17/2010 3:32:46 PM #

The more we give of anything, the more we shall get back.

cash loans | Reply



4/19/2010 8:22:23 PM #

it was amazing.Your thought process is wonderful.
The way you tell about things is awesome.

Medical Tourism In India | Reply



4/22/2010 1:11:27 PM #

I recently came across your article and have been reading along. I want to express my admiration of your writing skill and ability to make readers read from the beginning to the end. I would like to read newer posts and to share my thoughts with you.

website traffic | Reply



4/23/2010 7:34:25 PM #

You will never find time for anything. If you want the time, you must make it.

faxless cash advance | Reply



4/26/2010 7:46:38 PM #

To do two things at once is to do neither.

online payday loans | Reply



4/27/2010 10:20:56 AM #

really good read for me, Must admit that you are one of the best blogger I ever saw.Thanks for posting this informative article.

Law Firm | Reply



4/27/2010 10:26:06 PM #

I\'m happy I found this blog, I couldnt discover any info on this subject matter prior to. I also run a site and if you want to ever serious in a little bit of guest writing for me if possible feel free to let me know, i\'m always look for people to check out my site. Please stop by and leave a comment sometime!

Rapidshare | Reply



4/28/2010 6:07:44 AM #

Merging changes is pretty cool tool, there is no need to do it twice, once a programmer has merged something, it is merged for everyone else once he pulls the new version.

cara menambah tinggi badan | Reply



4/29/2010 10:54:34 PM #

Shoot for the moon. Even if you miss, you'll land among the stars.

personal cash loans | Reply



5/3/2010 6:27:15 AM #

really great post on technology thanks to you for this great work.

pda data collection | Reply



5/3/2010 9:03:20 AM #

Thanks for sharing this wonderful article

Amish Furniture | Reply



5/4/2010 5:14:38 AM #

However, I will not be using Git for neither my personal projects nor at work. First of all I do mainly game development and while source files are important, there are many other file formats to consider and Git does not store them in any useful way.

cara meninggikan badan | Reply



5/4/2010 6:12:01 PM #

Top Rapidshare Search engine

Rapidshare Search engine | Reply



5/7/2010 12:00:46 PM #

What sports acitivites are on these ships?

cricket highlights | Reply



5/12/2010 12:17:54 PM #

What training  we have to undergo for the airway industry?

Toronto Airport limo | Reply



5/14/2010 9:34:16 AM #

Wow, I never knew that Ink printers give me so best performance compare then other printers . That’s pretty interesting..

printer ink | Reply



5/14/2010 4:09:09 PM #

Subsequently, after spending many hours on the internet at last We've uncovered an individual that definitely does know what they are discussing many thanks a great deal wonderful post.

Tipster | Reply



5/17/2010 3:32:48 PM #

Very nice post. I really enjoy the reading. I  come here from the google while searching for some good article.

Christian Counseling Dallas | Reply



5/18/2010 7:25:05 AM #

The only reason I even watched the following presentation about Git (it does not really tell you much) is because Linus was bashing CVS, Subversion and many other versioning tools so hard. Some true points, but some people really disliked his style.

tinggi badan | Reply



5/18/2010 3:57:11 PM #

Always good to see, this was obvious a excellent post. In theory would like to be such a good writer too. You need time to create that brilliant and in addition real effort to create a excellent article.

Stop foreclosure tampa | Reply



5/19/2010 3:49:02 PM #

This is a really good read for me, Must admit that you are one of the best bloggers I ever saw.Thanks for posting this informative article.

Gist | Reply



5/20/2010 5:08:39 AM #

I am doing something of the same interest and will be taking note on this .Thanks.

payday loans | Reply


Add comment




biuquote
  • Comment
  • Preview
Loading



Disclaimer: The opinions expressed in this blog are own personal opinions and do not represent the companies view.
© 2000-2011 exDream GmbH & MobileBits GmbH. All rights reserved. Legal/Impressum

Poll

Which platform should Soulcraft be released on next?











Show Results Poll Archive

Recent Games

Soulcraft

Fireburst

Jobs @ exDream

Calendar

<<  May 2012  >>
MoTuWeThFrSaSu
30123456
78910111213
14151617181920
21222324252627
28293031123
45678910