Jump to content

  • Log In with Google      Sign In   
  • Create Account


Version control for begginers


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
49 replies to this topic

#1 buumchakalaka   Members   -  Reputation: 268

Like
3Likes
Like

Posted 20 January 2013 - 12:26 PM

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!



Sponsor:

#2 Inuyashakagome16   Members   -  Reputation: 835

Like
1Likes
Like

Posted 20 January 2013 - 12:34 PM

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. 



#3 Sollum   Members   -  Reputation: 673

Like
1Likes
Like

Posted 20 January 2013 - 12:48 PM

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?

Edited by Sollum, 20 January 2013 - 12:49 PM.


#4 Robot Ninja   Members   -  Reputation: 569

Like
3Likes
Like

Posted 20 January 2013 - 12:54 PM

+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!


Edited by Robot Ninja, 20 January 2013 - 12:55 PM.


#5 DpakoH   Members   -  Reputation: 926

Like
2Likes
Like

Posted 20 January 2013 - 12:56 PM

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



#6 lride   Members   -  Reputation: 633

Like
3Likes
Like

Posted 20 January 2013 - 12:57 PM

Git is really simple to use once you learn it.

I liked this tutorial 


An invisible text.

#7 samoth   Crossbones+   -  Reputation: 4646

Like
5Likes
Like

Posted 20 January 2013 - 12:59 PM

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?



#8 Inuyashakagome16   Members   -  Reputation: 835

Like
2Likes
Like

Posted 20 January 2013 - 01:17 PM

+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!



#9 de_mattT   Members   -  Reputation: 308

Like
2Likes
Like

Posted 20 January 2013 - 01:40 PM

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.



#10 SiCrane   Moderators   -  Reputation: 9491

Like
4Likes
Like

Posted 20 January 2013 - 01:47 PM

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.

#11 Inuyashakagome16   Members   -  Reputation: 835

Like
2Likes
Like

Posted 20 January 2013 - 01:54 PM

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.

 

Hmm. I suppose I was just worried about losing data honestly. Hence why I went with an online repository. I have yet to REALLY look at SVN but I've always heard it great. However, while looking up "Git VS Svn" there were a few articles about pros and cons (http://blog.teamtreehouse.com/why-you-should-switch-from-subversion-to-git)



#12 wintertime   Members   -  Reputation: 1640

Like
2Likes
Like

Posted 20 January 2013 - 02:38 PM

I wouldnt use SVN anymore. Mercurial(hg) and git are the modern things.
Mercurial is very easy to set up if you are new to version control and instead of finding out about setting up a db first for SVN, you just go into some folder, type "hg init", "hg add", "hg commit", type in your commit message and you have your source from that folder already inside a local repository. Now if you want it more complicated you could use git, which can do essentially the same as Mercurial but some things have other names.



#13 BinaryPhysics   Members   -  Reputation: 294

Like
2Likes
Like

Posted 20 January 2013 - 02:57 PM

My friend introduced me to Git last year and I use it for everything. It's an amazingly powerful tool and its documentation is unbelievably complete. Particularly with a branching model like git-flow.



#14 3Ddreamer   Crossbones+   -  Reputation: 3067

Like
1Likes
Like

Posted 20 January 2013 - 03:19 PM

Can any of these control software be used by someone who knows little about IT and in particular game development?  The reason I ask is that I know someone who is thinking about starting a company to make software.  Should he just leave the version control to someone else such as the lead programmer or could he use any of this software mentioned here? The company head uses windows and would need a very user friendly sv system, so what should I recommend?


Personal life and your private thoughts always effect your career. Research is the intellectual backbone of game development and the first order. Version Control is crucial for full management of applications and software.  The better the workflow pipeline, then the greater the potential output for a quality game.  Completing projects is the last but finest order.

 

by Clinton, 3Ddreamer


#15 KulSeran   Members   -  Reputation: 2223

Like
2Likes
Like

Posted 20 January 2013 - 03:34 PM

Can any of these control software be used by someone who knows little about IT and in particular game development?  The reason I ask is that I know someone who is thinking about starting a company to make software.  Should he just leave the version control to someone else such as the lead programmer or could he use any of this software mentioned here? The company head uses windows and would need a very user friendly sv system, so what should I recommend?

Just about all the VCSs have nice "friendly" GUIs.  The question is what features and what workflow do they want. Let the programmers pick, as it affects their day-to-day lives the most. Anyone can use VCS. There's nothing magical about it, as for binary assets it just lets you see a file history for any files commited to it.  The magic only really shows up for code centric operations on text files.  It handles several people editing the same files at the same time, and single developers wanting to edit the same file in 3 different ways (ie. new feature + 2 seperate bug fixes). In those cases VCSs provide a complicated array of capabilities to manage those edits without letting them stomp on each other.



#16 SiCrane   Moderators   -  Reputation: 9491

Like
3Likes
Like

Posted 20 January 2013 - 03:37 PM

Everyone working on the software should use the version control system. You can't just leave it to one person. If you want a relatively painless interface to your version control system there are GUIs available for Windows. For SVN the most popular is probably TortoiseSVN, which has already been mentioned. For git, there's a TortoiseGit project out there that I never got to work, as well as Git Extensions, which I have. Though to be honest the only thing I use it for is viewing diffs. Most of the time I just use the command line.

#17 TheChubu   Crossbones+   -  Reputation: 3952

Like
0Likes
Like

Posted 20 January 2013 - 05:39 PM

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

"Team Foundation" Server? Sounds quite cheesy to me. Like "The Fruits of our Labour that Hold us Togheter as a Family!" Server or something.


"I AM ZE EMPRAH OPENGL 3.3 THE CORE, I DEMAND FROM THEE ZE SHADERZ AND MATRIXEZ"

 

My journals: dustArtemis ECS framework and Making a Terrain Generator


#18 Cornstalks   Crossbones+   -  Reputation: 6974

Like
1Likes
Like

Posted 20 January 2013 - 06:21 PM

I won't try to repeat a lot of what's been said, but some reasons I like git is that:

  • No need for a server/internet connection; you can commit, do diffs, or view the log all on your local system
  • You can push the same repository and updates to several locations (so I can push my code to my home server, where it gets backed up on the cloud; also I can push to Github or Google Code, or my school team's repo on the school computers, etc)
  • I can pull from several locations (I've got the same repositories on my Windows and OS X partitions, and when I switch OSs/partitions I can just pull updates from the local file path (OS X can't write to the Windows partition, and the Windows partition can't write to the OS X partition, which is why I have to do this and why this feature is so nice to me))

 

I don't do a ton with git; I'm no ninja when it comes to version control. However, the idea that you can push and pull updates to and from anywhere is so nice with git (and other distributed version controls systems, but I've only used git). With centralized version control systems (a la SVN), you've got one place you push and pull your updates to and from, which means I can't push/pull to/from different partitions or other computers like I can with git.


Edited by Cornstalks, 20 January 2013 - 06:21 PM.

[ I was ninja'd 71 times before I stopped counting a long time ago ] [ f.k.a. MikeTacular ] [ My Blog ] [ SWFer: Gaplessly looped MP3s in your Flash games ]

#19 Inuyashakagome16   Members   -  Reputation: 835

Like
1Likes
Like

Posted 20 January 2013 - 06:32 PM

I won't try to repeat a lot of what's been said, but some reasons I like git is that:
  • No need for a server/internet connection; you can commit, do diffs, or view the log all on your local system
  • You can push the same repository and updates to several locations (so I can push my code to my home server, where it gets backed up on the cloud; also I can push to Github or Google Code, or my school team's repo on the school computers, etc)
  • I can pull from several locations (I've got the same repositories on my Windows and OS X partitions, and when I switch OSs/partitions I can just pull updates from the local file path (OS X can't write to the Windows partition, and the Windows partition can't write to the OS X partition, which is why I have to do this and why this feature is so nice to me))

 

I don't do a ton with git; I'm no ninja when it comes to version control. However, the idea that you can push and pull updates to and from anywhere is so nice with git (and other distributed version controls systems, but I've only used git). With centralized version control systems (a la SVN), you've got one place you push and pull your updates to and from, which means I can't push/pull to/from different partitions or other computers like I can with git.

 

That's my reasoning for using GIT honestly. I use it on my lunch at work to push and pull changes and then at home and it's great. You COULD do that with SVN but it would have to be through your router at home. 



#20 Roots   Members   -  Reputation: 657

Like
1Likes
Like

Posted 21 January 2013 - 12:13 AM

I dislike git because I find it has a really steep learning curve and it's command interface is not intuitive. I've used it a couple times in the past, but my sour experience could be biased because the project manager I was working for last made it harder to use than it should have been. I do fully acknowledge that git is more powerful than SVN and I do love the distributed nature of the system. I just haven't warmed up to it, and being told that "oh the documentation is so complete" doesn't really encourage me, since there are literally textbooks written just to explain how to use this tool. I don't want to read a textbook or sit through 2-3 hours of tutorial videos just to use a damn source control tool. I only want to know the minimal amount that I need to know to do 95-99% of the tasks that I will have to encounter day-to-day.

 

I'm interested in giving Mercurial a study, as it seems to offer most of the same primary advantages of git, but is more user friendly and easier to pick up and immediately start getting things done. My project is still using SVN for now, but eventually we'll be moving to either git or Mercurial when the time is right for us.


Hero of Allacrost --- http://www.allacrost.org
A free, open-source 2D RPG in development.

Latest release Oct. 10th, 2010.




Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS