Sign in to follow this  

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

This topic is 1326 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

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?

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

 


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.

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Thanks, that's useful.
 

I also noticed SVN has reached 1.8 and they've added a global ignore property that is recursive!

Though it is only recursive for directory that have already been added. So if you set the global ignores property on the root and add a new directory which contains files that are on the ignore list, they will still get added because their parent directory hasn't been updated with the ignores property.

Edited by SymLinked

Share this post


Link to post
Share on other sites

Mercurial is the best balance of simplicity and provides a modern source-control tool.

 

You can use TortoiseHg which is very similar to TortoiseSvn so you'll have a low learning curve there.

 

git is a bit more powerful than Mercurial and it's a bit more complicated to use but they have very similar core features.

 

I don't see much reason to use any version control tool other than mercurial or git. If you have a shared/map Windows drive then you have what you need to get started.

Share this post


Link to post
Share on other sites

Chalk up another vote for TortoisHG and for SourceTree.  Both are pretty decent.

Share this post


Link to post
Share on other sites

Git or Mercurial. Both are extremely identical, both have awesome UI's, both have great command line. 

Canonicals Bazaar gets my next vote

 

As a person who works on Web and Software on Linux, Mac, and Windows, GIT has been my go-to everywhere.

Share this post


Link to post
Share on other sites
I use git too at home and at work. I really love its ability to create branches and merge code fast. I am a bit worried about its behaviour regarding binary files, but so far we use it to store code for our game and assets and git works fine. If you need preconfigured git server for you, you can use github or bitbucket. The last one allows you to have a couple of private projects shared between no more than five people, and it is faster than github.

Share this post


Link to post
Share on other sites

I use git with SourceTree for my personal projects. It makes source control really painless. Using git with command line is not that bad either though there is a slightly higher learning curve for it.

Share this post


Link to post
Share on other sites
Sign in to follow this