local source control

Hi all

what is the best source control to works between mac and Windows .

i like to host my own server at home for this source control

This is a “holy war” type of question. Some people will say SVN, some will say HG (mercurial), some will say GIT. I say git as I have Mac, Windows, Linux, BSD, (open-)Solaris, AIX, HP-UX, and a few others that I cant think of right now O/Ses I have to support. git works on all of them without issues.

Now what has gotten me in the past is in text files (like Xojo project format), the line endings change from one platform to another (WIndows <-> Mac/Lin) so the files are “different” when resaved with zero changes from platform to platform. Git has a way to making it that it doesnt choke and die on the line ending issue.

but each person that responds will give a different answer.

sb

I’ve worked with all three on both Mac and PC and they all worked fine, so it really comes down to personal preference. SVN is more like a client/server system where everyone checks in/checks out their code from a central server, where as the other two are networked with very one having a local server so to speak which they can share from and merge into other servers.

If you are working alone or in a very small team, you’ll see very little difference between the two models other than the Git/Mercurial model can store versioned history locally while not connected to the server. On the other hand if you are starting out using version control in a large team you will probably find it easier on the team at the start to pick up the concepts from SVN in the short term. However in the long term I don’t think it makes much difference.

Bottom line I say it’s personal preference. I use SVN most of the time for no other reason that most of my clients use it.

I haven’t used anything other than git, so no knock on those other tools.

One benefit of git is that it does not require any type of dedicated server software, just ssh access. As such, I set up a “server” on an external RAID connected to my desktop machine just by allowing ssh access to a folder on it. Now both my desktop and laptop can push to this “server”, providing an extra level of backup, with minimal effort.

+1 Git, I have used a lot of systems over the years including CVS, SVN, SourceSafe, TFS, Perforce, all I use now is Git. If you take the time to learn it and make it an active part of the development cycle it will change the way you develop software for the better.

If you just use it as source storage or backup system it still has huge benefits in my opinion.

I would just like to add that while git is an impressive and powerful tool for source code control, when something inevitably goes wrong, you need access to a consultant with a PhD in git to straighten the repository out. Even with two senior engineers with years of experience with git, it sometimes took them an inordinate amount of time to do the detective work and get everything back to healthy.

I’ve used Perforce for years, and while it is free for small (5 user) teams, it is expensive for larger teams. But, you have full support and generally it’s very hard to completely wreck a Perforce Depot. Plus, their visual clients and visual merge tools are very easy to use.

+1 for Git. Is great having the flexibility and simplicity it offers for most of the scenarios. I really love from git not being a centralized system in comparison to the SVN days.

Because of our broad ranging platform support (11 Unixes in addition to Mac OS, Windows, and Linux), We are still using CVS for our legacy projects in C, Python, and Java. I’ve gone through SVN and GIT setups and both of those have botched projects to the point that we had to manually go back to our dev machine backups to recover things.

Yes, CVS is old school, but that doesn’t make it bad and it continues to work fully for a mass of platforms.