top | item 614215

Ask HN: Best way for a small (3 person) team to collaborate with source code?

22 points| billclerico | 17 years ago | reply

SVN seems a little too overbearing just yet - any clever solutions with dropbox or the like?

24 comments

order
[+] saikat|17 years ago|reply
Mercurial with bitbucket is great. Bitbucket offers one private repository (I think this is a new thing, but I'm not sure) for free, so it seems fine for use with closed-source code, if you need that.

We also used mercurial for a while in conjunction with dropbox (just set up our central repository in dropbox). Mercurial is a lot less overbearing than SVN (very easy to setup repositories), so I recommend it highly for a small team. Git is also a great option, but I haven't used it myself (and it doesn't seem like github offers free repositories yet unless you are an open source project).

[+] nostrademons|17 years ago|reply
Headless git repository, hosted on a machine that you all have SSH access to?

You really want a real version control system. Trying to hack one up from backup systems is just asking for pain. VCS gives you much more than just a central off-site repository - you get commit logs, conflict resolution, diffs, rollbacks, branches, etc.

Oh, +1 for GitHub too. They're great.

[+] FraaJad|17 years ago|reply
bitbucket.org allows you to host One private mercurial repository for free. You might want to go with mercurial because it's arguably as good as git while having a better tool support on windows. Of course, it works excellently on linux and mac.

If you prefer git, you can set up your own git repository with little effort by following this tutorial: http://scie.nti.st/2007/11/14/hosting-git-repositories-the-e...

I have used this tutorial to set up repos at work and a private repo.

AFAIK, github does not provide any private repositories for free.

[+] uggedal|17 years ago|reply
I started with one free private repository on bitbucket. After I started a second venture last week I signed up for their basic account ($5, 5 private repositories, 500GB). I use both git and mercurial, so I could just as well have signed up with github.com.

The reason for choosing bitbucket? Stability and speed. I've encountered 50+ error pages on github and on several occasions their servers were down when I needed access to some code. I also feel their site it a little slow at times (it was pretty snappy in their invite only beta days though). Bitbucket on the other hand have never failed me (user for ~1 year) and the UI is very responsive.

[+] stevejohnson|17 years ago|reply
Mercurial+BitBucket and Git+Github are almost interchangeable. If a team member is on Windows, go with Mercurial+BitBucket, as it has much better cross-platform support. Otherwise, use Git+Github because it has a great community, good documentation (both have this), and many pretty charts to look at.
[+] khangtoh|17 years ago|reply
I don't feel SVN is a little overbearing for a 3 person team. If you just don't want the trouble of hosting the SVN server yourself, there're a few options for SVN hosting.

Unfuddle seems like a reliable and popular choice.

http://unfuddle.com/about/tour/plans

[+] Zarathu|17 years ago|reply
Github.com

I'd use it for a 2-person team. It's incredible.

(No. Use a repository.)

[+] bbuffone|17 years ago|reply
Formal source control is always a good idea, even if you are working on a project yourself. A three person shop will have some overlapping development of resources. So being able to undo changes and resolve conflicts will be necessary. As the team grows putting in other policies on checkin comments and ensuring not to break the build will become necessary.

Lots of people are using github.com, I have been using unfuddle.com and it has worked out well.

I also make sure I install a SVN server on everyone of my development machines as soon as I get it. Takes minutes to do and will keep my projects and files save.

[+] cgbrown|17 years ago|reply
I work at ProjectLocker (http://www.projectlocker.com), and we have free plans for Subversion or Git that would suit your team, and paid plans with more space and/or users for as low as $25 per year or $5 per month.

Source control, even for just one person, is useful and doesn't have to be heavyweight. Even single developers may need to roll back in time or read notes from a few months ago about why they made an obscure change. It's worth the minimal overhead to have the protection, historical data, and in a multi-user scenario, to know who's doing what so you don't step on each other's toes.

Whatever solution you choose, go hosted; it's straightforward, secure, and saves you the trouble of having to manage disaster recovery, network issues, and so on. Compare us to the competition and pick the one that's best for you. Good luck!

[+] 8-bit_Blaster|17 years ago|reply
If you don't mind open sourcing your code I'd suggest using Google Code to host your project.

Google Code was my first experience with code repositories and using it with the TortoiseSVN right-clicky GUI software made things that much easier to manage. (I used the Windows XP version of TortoiseSVN.)

Google Code: http://code.google.com/p/support/wiki/GettingStarted TortoiseSVN: http://tortoisesvn.tigris.org/

Simple, no command line stuff, and did exactly what I needed it to do. :)

[+] davidmathers|17 years ago|reply
github
[+] apsurd|17 years ago|reply
+1 to github.

Yes you can use git for free if you know how to set it up, but for $12/month in your case ($7 in mine), I just like the convenience of having someone else continually worry and work on all that stuff.

It's also important to think like an entrepreneur. Focus on what you are good at, delegate everything else to people good at those things.

Git specifically:

I knew absolutely nothing about version control when I started looking into it. (about a month ago). My project will soon be open source so i know I needed to start thinking in terms of version control. I picked git over svn very simply because git was made by Linus. Git seems (to me) to have a better quality following as of now. I like being in the best company (it's bound to rub off).

This tutorial was/is very helpful to me: http://hoth.entp.com/output/git_for_designers.html

I am still a huge beginner when it comes to git, but I find the core commands mentioned in the tutorial to be simple and very effective.

Best of luck.

[+] catone|17 years ago|reply
I'll just throw Codebase into the mix: http://www.codebasehq.com/

It's my friend Adam's app (he's an admin at Rails Forum). I've never used it personally, but from what I have seen it is pretty nice and I know anything Adam is involved with must be solid. So, just presenting it as another option.

It's sort of like Basecamp + Git with a little Lighthouse thrown in for good measure (or something like that). ;)

[+] zacharydanger|17 years ago|reply
Actually, you're onto something with Dropbox. Currently, I keep a copy of my Git repository in my dropbox and set it up as a named remote. Then I can just:

  git push dropbox
You can run into issues if two people push to the Dropbox before the files get fully sync'd between computers, if that's the case, you need a hosted solution see the gitosis project for rolling your own or github.com for a slick paid solution.
[+] paulgb|17 years ago|reply
Subversion is a fair bit less overbearing if you ignore the branches/merging stuff, which you probably don't need in a 3 person team anyway (yet).

I would stick to svn if the team is already familiar with it but not with git. Otherwise, +1 to github.

[+] dryicerx|17 years ago|reply
Svn would be perfect for you

Our personal setup: linode with svn, redmine as issue tracker, wiki, and discussions). I went with our own server because I know for sure our data is private, and fine grain control.

[+] carterschonwald|17 years ago|reply
I like using darcs with the each person having a local repo and a shared one using dropbox
[+] psyklic|17 years ago|reply
Wow just a year or two ago everyone would have said SVN/CVS!