### GameDev Marketplace

#### Warriors and Commoners Pack

$140$90

### Image of the Day Submit

IOTD | Top Screenshots

## Easy-to-use Version Control on Windows? Needs to be able to easily ignore certain files.

28 replies to this topic

Posted 08 August 2013 - 11:57 AM

Hi,

I've used SVN before and their client-side ignorelist (their server-side one is useless as it is per folder) but I need it to be version controlled so others who Checkout get it too.

I've looked at Perforce but it's not exactly affordable for me, and it uses a different system than what I'm used to (I want Checkout/Update/Commit).

I've looked at Bazaar but it is a nightmare to setup as a server on Windows.

Does anyone have any suggestions? Is Mercurial any better?

### #2SiCrane  Moderators

Posted 08 August 2013 - 12:04 PM

POPULAR

I mostly use git on Windows nowadays. It has a .gitignore file that gets versioned with the rest of the files. I generally use cygwin's git from the command line but there are also GUI interfaces like tortoisegit (which I never got to work) and Git Extensions (which I have).

### #3Promit  Senior Moderators

Posted 08 August 2013 - 12:35 PM

I vote for git, and I usually use a combination of the command line client and a graphical client called SmartGit that I'm quite fond of.

SlimDX | Shark Eaters for iOS | Ventspace Blog | Twitter | Proud supporter of diversity and inclusiveness in game development

### #4DanKennard  Members

Posted 08 August 2013 - 12:54 PM

POPULAR

Another vote for Git. I mostly work with it via the command line but I'm growing quite fond of Sourcetree as a GUI

Posted 08 August 2013 - 01:37 PM

don't know what client your using but svn CAN ignore more than just a folder [ and have those settings not just be client side only! ]

TortoiseSVN can ignore folders, files [recursively even] and i would bet also by using a regular expression too.

Nowadays i actually use Mercurial with sourcetree but TortoiseSVN is still nice and good and easy.

Posted 08 August 2013 - 03:45 PM

Thanks for the suggestions!

I've heard Git is cumbersome to setup as server, which is one of my requirements. Might try it though.

don't know what client your using but svn CAN ignore more than just a folder [ and have those settings not just be client side only! ]

TortoiseSVN can ignore folders, files [recursively even] and i would bet also by using a regular expression too.

I guess you're thinking of svn:ignore, which doesn't work like that. You have to add it to every directory you commit. You can't place it on the topmost directory. This is well documented.

### #7markr  Members

Posted 08 August 2013 - 04:12 PM

SVN has an ignore property (svn:ignore) which is versioned exactly like anything else. You can change it, commit the changes and then everyone else gets it.

What exactly, is the problem

Posted 08 August 2013 - 04:21 PM

See this link for what I'm talking about. It's not recursive, which is what I've described in my last post.

### #9Nypyren  Members

Posted 08 August 2013 - 06:15 PM

POPULAR

Git's difficulty tends to scale with the size of your team.  It's trivial to use for a handful of people, but as the team gets larger, the amount of times people (and most problematically, non-programmers) will be exposed to git's confusing conflict resolution workflow will spiral out of control.

### #10hatfarm  Members

Posted 08 August 2013 - 08:49 PM

I use git at home and at work.  At home, I pretty much just use the command line, but at work we use Git Extensions and we like it quite a bit.  We've not really had any major issues with merge conflicts, except with binary objects (simulink models) and that hasn't been a huge deal.  Using .gitignore is pretty easy and can be very robust, I have literally never seen a file I didn't need to push at work.  At home, it's not a huge deal because I know every file anyway, but I do use a .gitignore to get rid of some of the stuff.

### #11Hodgman  Moderators

Posted 08 August 2013 - 10:56 PM

I've heard Git is cumbersome to setup as server, which is one of my requirements. Might try it though.

Depends what kind of "server" you need. Git is decentralized, so there's a lot of ways you can set it up.

Every "client's" project directory is also a server -- e.g. when working on my local network, I just share my project directory using windows file sharing, and pull/push changes to other PCs on my network without there being an explicit "server" -- just many clients communicating via a shared windows file system.

To set up a simple web-accessible central server, I just cloned my project into a linux server that has sharing enabled over SSH. Anyone who has access to the server using SSH already can now access this "git server".

For more advanced central servers (with access control, etc), check out gitosis and gitolite, or just use GitHub ;)

When coming from a centralized version control background (SVN, CVS, Perforce, AlienBrain, etc), git can be confusing at first... but I now swear by it for managing code.

Edited by Hodgman, 08 August 2013 - 11:02 PM.

### #12Promit  Senior Moderators

Posted 09 August 2013 - 12:07 AM

Setting up a git server is super easy, provided you have a server with SSH access and don't mind giving all project members shell access. Step outside those bounds and things get... less pleasant.

SlimDX | Shark Eaters for iOS | Ventspace Blog | Twitter | Proud supporter of diversity and inclusiveness in game development

### #13anton_gogolev  Members

Posted 09 August 2013 - 01:39 AM

POPULAR

Mercurial is much more humane on Windows compared to Git (IMO). Setting up Mercurial server on Windows is trivially simple with HgLab ( http://hglabhq.com/ ).

### #14l0calh05t  Members

Posted 09 August 2013 - 05:03 AM

POPULAR

I've looked at Perforce but it's not exactly affordable for me, and it uses a different system than what I'm used to (I want Checkout/Update/Commit).

Isn't Perforce free for less than 20 users nowadays?

### #15Zipster  Members

Posted 09 August 2013 - 01:43 PM

I've looked at Perforce but it's not exactly affordable for me, and it uses a different system than what I'm used to (I want Checkout/Update/Commit).

Isn't Perforce free for less than 20 users nowadays?

It is, plus Perforce actually does use a checkout/update/submit workflow because it's a centralized VCS.

Posted 09 August 2013 - 02:43 PM

Perforce has a limit in their free edition of 20 workspaces, though. Won't you need one for each depot/repository like in SVN?

You can't just update/submit. You have to lock files before you change them.

Okay, I'll try Perforce. Thanks for the tips!

Edited by SymLinked, 09 August 2013 - 02:51 PM.

Posted 09 August 2013 - 03:15 PM

Whatever. My files are set to read-only if I don't lock or mark them for edit beforehand. Hardly just a Commit/Update workflow..

Turns out this can be disabled per workspace. Fine. I still have to add the files before I can submit. I guess that's okay. Submited successfully. I now tested to delete the files locally and pressed Checkout. In SVN this (or Update) would restore the files. Perforce doesn't do that though, it throws up a CHMOD error. Very descriptive.

Edited by SymLinked, 09 August 2013 - 03:34 PM.

### #18MJP  Moderators

Posted 09 August 2013 - 06:55 PM

POPULAR

Yeah Perforce very much likes to be in control of files in the repo, and generally doesn't behave well when you go behind its back. So if you want to delete a file you have to tell P4 to delete it, and it will then delete it from your hard drive. If you happen to delete a file locally it won't even be aware it's gone, and if you try to sync on it (Get Latest in P4V) it won't replace it. The only way it will replace it is if you use -f to force a sync.

### #19l0calh05t  Members

Posted 10 August 2013 - 02:42 AM

Reconcile offline work and then reverting the delete should work as well.