Version control for begginers

Started by
43 comments, last by SiCrane 11 years, 2 months ago

Hi all!

Some people recommend me to use any version control software for help me in the organization and realization of my proyects. Im looking for information about source control and Im realy lost with the lot of things I readed in some minutes. Git, Merculial, Perforce, Bitbucket, etc, etc.

The only I need is a tool for support and made development easier, but from what I'm reading it seems that I will only complicate my proyects with those softwares.

I want to focus in make games, not in learn to use a source control software,

so, what is the best option for a complete beginner in this matter?

Thanks you very much for the help!

Advertisement

I personally use Git for my personal projects. (C++ with DirectX) and it works fine! I have a repo through bitbucket.org Whether Git is the easiest way to go or not I'm not sure. For me it wasn't hard to setup but I've read up on how to start. (Which bitbucket has a tutorial section on how to setup a repo and your Git client) The only thing about Git and really many other version control systems is the ignore file. I didn't know what this was till recently. Pretty much the Git system has a file named ".gitignore" which you put file extensions that you don't want git to include when pushing changes. (Like special files for Visual Studio that are specific for that system in case you're going between multiple computers coding)

http://www.vogella.com/articles/Git/article.html < Very decent tutorial for Git.

I've heard good things about Merc but never tried it personally, and same goes for SVN.

If you plan to work in a company as a developer, eventually you'll be forced to use SVN. So i'd suggest sacrificing few hours to studying SVN's.

At work we use Team Foundation Server, Microsoft crap for Microsoft related stuff.



At my hobby projects i use Java, don't want to be slave to one language. Question tho, does anybody know good and easy to set up SVN for Eclipse?

+1 for Git. The nice thing about Git too is that you can keep a local repository if you don't want/can't get an online one. If you want to learn more about Git, Scott Chacon created an online version of his book, Pro Git, which is free to view. Of course if you feel like you're getting a lot out of it, you're encouraged to purchase his book to support his hard work. smile.png I also like to use Git Extensions with Visual Studio because it provides a nice little interface for handling my repos, rather than doing everything via the command line. There are a ton of other GUI's for Git out there too if you want to check out some other ones. Some of them are listed here. Good luck!

git is the best, svn is the easiest to use, at least according my experience.

Git is really simple to use once you learn it.

I liked this tutorial

">
An invisible text.

This is almost a bit like "which language is better, C++ or Java", tell me which one to use. :-)

In the end, the "correct" answer is probably use whichever has the best integration (in your file manager and/or your IDE). Everything else really doesn't matter all that much, because most revision control systems (with the exception of RCS which is a nightmare!) do more or less exactly the same thing for most people.

Assuming you use Windows, like most people, Subversion is probably a good choice, in particular TortoiseSVN. It doesn't cost anything, it does the job, and it comes as a double-click-to-install package that adds a context menu to Windows Explorer. It's totally foolproof. You can get free hosting on the internet everywhere, and you can run it locally on your filesystem or on your NAT. What more do you need?

Git is a good alternative if you need a distributed version control system (But, do you really need this? To me, this is rather a serious disadvantage, and the "one big advantage" of having the entire repo at hand is nothing that filesystem-local Subversion doesn't do, too). Git is great if you develop under Linux, it installs in 3 seconds and works without problems. Under Windows, it's a different story. I've found getting Git to work rather painful, and it didn't do anything that Subversion didn't do in the end (and contrary to common propaganda, it wasn't any faster). Git is great if you have 1500 developers. Do you have that many?

+1 for Git. The nice thing about Git too is that you can keep a local repository if you don't want/can't get an online one. If you want to learn more about Git, Scott Chacon created an online version of his book, Pro Git, which is free to view. Of course if you feel like you're getting a lot out of it, you're encouraged to purchase his book to support his hard work. smile.png I also like to use Git Extensions with Visual Studio because it provides a nice little interface for handling my repos, rather than doing everything via the command line. There are a ton of other GUI's for Git out there too if you want to check out some other ones. Some of them are listed here. Good luck!

^ thanks for explaining a bit more about Git. :P I use Git Extensions all the time and its amazing compared to the normal Git Gui application.

This is almost a bit like "which language is better, C++ or Java", tell me which one to use. :-)

In the end, the "correct" answer is probably use whichever has the best integration (in your file manager and/or your IDE). Everything else really doesn't matter all that much, because most revision control systems (with the exception of RCS which is a nightmare!) do more or less exactly the same thing for most people.

Assuming you use Windows, like most people, Subversion is probably a good choice, in particular TortoiseSVN. It doesn't cost anything, it does the job, and it comes as a double-click-to-install package that adds a context menu to Windows Explorer. It's totally foolproof. You can get free hosting on the internet everywhere, and you can run it locally on your filesystem or on your NAT. What more do you need?

Git is a good alternative if you need a distributed version control system (But, do you really need this? To me, this is rather a serious disadvantage, and the "one big advantage" of having the entire repo at hand is nothing that filesystem-local Subversion doesn't do, too). Git is great if you develop under Linux, it installs in 3 seconds and works without problems. Under Windows, it's a different story. I've found getting Git to work rather painful, and it didn't do anything that Subversion didn't do in the end (and contrary to common propaganda, it wasn't any faster). Git is great if you have 1500 developers. Do you have that many?

So you would suggest SVN over Git if you were a single developer / only a few working on a project? I've personally only used Git for personal applications. Where as the company I work at uses SVN / TFS for everything. It seemed like SVN would be better for a work environment. Also, (not sure of my info here just warning) if I'm not mistaken isn't SVN suppose to be setup like a server on a computer / on a server? I use Bitbucket because I'm able to code and push changes at work (on my break) and at home whenever. Where as SVN would be a server at home. (it probably would be possibly too access the info from work with some port forwarding)

Just a few inquiries. :) I never see threads like this so it's great to finally see one!

samoth makes a good point that you need to consider your needs before selecting the version control system that is right for you.


It's always good to learn something new, and exposure to version control software is definitely a good thing for a future career in software development, but one option open to you is to not use any version control software. From your post it seems that you are kean to focus your attention on the development of your game, so perhpas you could simply use .zip files to create snapshots of your code at key moments (e.g. every major release). This may suit your needs just fine.

You don't need to setup a new server on your computer to run a local subversion repository. You can just create a database on your hard disk. It works pretty much the same as using a server but instead of doing svn co svn://blah.blah.blah/blah/blah you use svn co file://blah/blah/blah/blah.

I personally prefer using git for single developer work even on Windows, though to be honest I don't really notice any difference in workflow between SVN and git in that situation. Since I already use cygwin, installing it is as painless as selecting the package in the cygwin installer.

This topic is closed to new replies.

Advertisement