Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411593 Posts in 69386 Topics- by 58444 Members - Latest Member: FightingFoxGame

May 07, 2024, 09:44:25 AM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsDeveloperTechnical (Moderator: ThemsAllTook)Version Control
Pages: [1] 2
Print
Author Topic: Version Control  (Read 3886 times)
Nix
Guest
« on: August 20, 2010, 09:31:48 AM »

I just finished a project (it's up on FGL right now waiting to be approved), and my development environment consisted of Flash Develop and msysgit. I have used git for a number of projects (GitHub is probably the thing that got me using it), and I enjoy it very much. I'm not sure why I like it better than svn, but I do. Maybe it's the fact that you can push commits to a local repository without needing to be connected to a server, then you can push all those commits at once to the server when you're happy with things... I think that git encourages committing more often than svn does, and allows for more experimentation...

Anyway, I'm curious TIGForums: what version control system do you use? Git, svn, none at all? Or maybe you use some "version control" like copying your files every once in a while and labeling them with a date. If you don't use version control, how do you collaborate? DropBox? Lots of email?

P.S. If you aren't using version control and you don't really have a good reason, I highly recommend testing some things out. I personally like git (and msysgit is a great option for Windows), but there are lots of options out there. Svn is very popular, but a simple search for "version control" will offer a lot to read up on.
« Last Edit: August 20, 2010, 10:48:07 AM by Nix » Logged
jmp
Level 0
**


View Profile
« Reply #1 on: August 20, 2010, 09:50:31 AM »

I use Mercurial or Git depending on the project.  I’m happy working with either.
Logged
Skofo
Level 10
*****



View Profile
« Reply #2 on: August 20, 2010, 12:05:06 PM »

I like Git too. Many people say that Mercurial is better than Git on Windows, but I find that TortoiseGit's interface is more streamlined and organized than than TortoiseHg's.
Logged

If you wish to make a video game from scratch, you must first invent the universe.
Core Xii
Level 10
*****


the resident dissident


View Profile WWW
« Reply #3 on: August 20, 2010, 12:20:57 PM »

I used svn for a bit, then switched to git when I discovered it. Perhaps this thread should be a poll?
Logged
Balrog
Level 2
**



View Profile WWW
« Reply #4 on: August 20, 2010, 01:12:33 PM »

Does git make it open source or is it hidden?
Logged

PGGB
Level 8
***



View Profile
« Reply #5 on: August 20, 2010, 02:07:51 PM »

Does git make it open source or is it hidden?
I don't understand the question.

Are you talking about Github? If yes then for free accounts all repositories are public, if you pay you get private repositories.
Logged
David Pittman
Level 2
**


MAEK GAEM


View Profile WWW
« Reply #6 on: August 20, 2010, 02:13:48 PM »

SVN suffices for my personal projects. Not really sure why you'd need distributed version control unless you're working with a team.
Logged

BorisTheBrave
Level 10
*****


View Profile WWW
« Reply #7 on: August 20, 2010, 02:35:57 PM »

I use mysysgit/TortoiseGit on Windows, having given up on TortoiseHg as making mercurial unusable.

DVCS is still useful over SVN for one man projects, largely because it makes branching easier. History editing is nice, too. I just wish git blame was as fast as svn blame.
Logged
Taiko
Level 2
**



View Profile
« Reply #8 on: August 20, 2010, 06:36:54 PM »

I like svn.  It's fairly easy to pick up and most programmers encountered it at least once in school.

Good version control can really make or break a project.  I've been stuck in code-emailing hell before and it's not fun.
Logged
Rob Lach
Level 10
*****



View Profile WWW
« Reply #9 on: August 20, 2010, 06:40:01 PM »

i've used a ton of svn before, now i have project using mercurial. I liked svn better.
Logged

r.kachowski
Level 5
*****

and certainly no love below


View Profile WWW
« Reply #10 on: August 21, 2010, 01:23:56 AM »

git is incredibly fast and it's branches are so cheap that there's no reason not to exploit them at every possibility (i.e. create a branch for each new feature, merge into a working "development" branch when you're done with it, merge that branch into master whenever you feel like releasing something)

my ass has been saved many a time with this workflow
Logged
bateleur
Level 10
*****



View Profile
« Reply #11 on: August 21, 2010, 01:55:45 AM »

I've worked with CVS and Subversion in the past, but currently prefer no formal version control system.

The reason why is nothing to do with version control as such. Basically I've discovered that version control systems make me reluctant to check in non-working code. Since my code is frequently non-working this means I either have to take backups as well or have unacceptably long gaps between check ins.

So what I do in practice is to back up my data daily into little archive bundles (which I keep on my Jungle Disk) and then keep a record of changes in a very high level form manually ("robots no longer aim through walls").

The disadvantage of this is that things like working out when a particular change was introduced become tedious and awkward. However, because most of my work now isn't part of a team those sorts of features aren't things I use in practice anyway.
Logged

Guillaume
Level 7
**



View Profile
« Reply #12 on: August 21, 2010, 02:24:29 AM »

I used to be a SVN addict, but I've become a git convert. Mostly due to github, which I find pretty awesome.
Thinking about getting a paid membership to use it for some of my game dev projects.
Logged
cliffski
Level 0
***



View Profile WWW
« Reply #13 on: August 21, 2010, 09:13:15 AM »

I use perforce, for what its worth.
Logged

www.positech.co.uk Maker of Democracy Kudos and Gratuitous Space Battles for the PC. owner of showmethegames.com.
sinoth
Level 0
***


hotdogger


View Profile WWW
« Reply #14 on: August 21, 2010, 03:07:06 PM »

Basically I've discovered that version control systems make me reluctant to check in non-working code.

This is exactly why my friend and I switched from SVN to Mercurial.  With SVN we did not commit until a feature was complete, which can be a terrible thing.  Imagine being a few weeks into some code and you royally screw it up.  You can either a) revert to a working commit or b) cry and start over.  With SVN it tended to be the latter Tongue

Mercurial lets you commit to your local repository, and when you feel the code is ready you 'push' it to the central server.  Also, since each push contains information on each 'mini-commit', it makes merging easier.  In theory, at least... we've had some issues with merging but they're probably PEBCAK.

We've done a few other neat things with Mercurial.  It's easy to get a temporary server up so you can push/pull from anyone's local copy.  This came in handy on a 3 hour road trip... we connected to each other ad-hoc wireless, served a repository, synced up, and we're good to go.  That would have been a royal pain with SVN.

Jury is still out as to whether we will stick to Mercurial or switch to something else.  It hasn't exactly been smooth sailing so far, but I attribute that mostly to our SVN-isms and not having our tools configured properly.
Logged

i am not regret
Skofo
Level 10
*****



View Profile
« Reply #15 on: August 21, 2010, 05:17:41 PM »

Basically I've discovered that version control systems make me reluctant to check in non-working code. Since my code is frequently non-working this means I either have to take backups as well or have unacceptably long gaps between check ins.

Do you think that version control systems would be so popular if they didn't account for this? Tongue You severe underestimate the utility and flexibility of version control.

You don't need to deal with manual backups--that's pretty much the entire reason why version control is used. Simply make a tag for every point in time when your code is working (or whenever else you want). Then you can easily switch between the tags and your latest revision as you please without worrying about manual backups. Smiley Hand Thumbs Up Right

Alternatively, you could do something like sinoth suggested; have an 'unpolished' branch that you regularly work on, and copy any working revisions to the 'polished' branch (this will only work with a DVCS like Git or Mercurial, and not SVN (there's a reason for ya, David Pittman)). How you organize things is completely up to you and your style.
Logged

If you wish to make a video game from scratch, you must first invent the universe.
voidSkipper
Level 2
**


View Profile
« Reply #16 on: August 21, 2010, 07:03:00 PM »

SVN hosted by XP-Dev has been very good to me.
Logged
Core Xii
Level 10
*****


the resident dissident


View Profile WWW
« Reply #17 on: August 21, 2010, 08:28:53 PM »

Does git make it open source or is it hidden?

Git is a program for version control. It doesn't make anything unless you tell it to.
Logged
Klaim
Level 10
*****



View Profile WWW
« Reply #18 on: August 22, 2010, 01:28:35 AM »

Git and Mercurial are excellent when you just want to commit locally and don't send your shit to everyone. When working alone, on a laptop it allows you to commit a lot and pushing in your main repository later when you get home (if you have more than a laptop like me).

That said, even if Tortoise Git has good interface (but is misleading because it uses concepts names from TortoiseSVN, and that is not a good idea...) git itself on windows is really badly supported. You can get silent errors often and it can have very strange behaviour. In fact it's too hard to implement git in Windows because it's thougt and implemented with linux environement/tools in mind.
Mercurial is better on this side as it's Python so it's easy to hack and easy to get on a platform that provide a python implementation.

I wish there was a soft that would be a mix of Mercurial and Git, that would really be excellent as they offer almost the same things, only their defects make them different from each other.
Logged

jmp
Level 0
**


View Profile
« Reply #19 on: August 22, 2010, 02:48:55 AM »

Quote
When working alone, on a laptop it allows you to commit a lot and pushing in your main repository later when you get home (if you have more than a laptop like me).

That’s the feature of DVCS that I’ve found most useful so far.  I don’t even have a ‘main’ repository.  I work on two different computers too, and the distributed model enables me to work with either.  I can commit the changes locally at any time, and pull/merge from the other computer whenever I feel like it.  Very convenient.

Many people seem to mention problems with the GUIs, and I wonder why you insist on using a GUI in the first place?  In my experience, the Tortoises I’ve used (TortoiseSVN/HG) were awkward to use and just pointless bloat compared to the command line, without adding any functionality.  But maybe that’s just me.
Logged
Pages: [1] 2
Print
Jump to:  

Theme orange-lt created by panic