version control for one-man project using eclipse? [closed]
I'd recommend pretty much any of the distributed version control systems. I've used git
and hg
in anger, and poked at fossil
(I include it because it offers some features that git
and hg
lack). I'll break down the major pros and cons in my eyes (NOTE: if they all have the same advantage I'm not going to mention it, e.g., they're all fast and lightweight):
git
- Pros
- Very flexible
- GitHub
- Cons
- Steep learning curve
- More flexible
- Eclipse integration was lame the last time I looked
- Pros
hg
- Pros
- (IMO) more consistent commands
- Less flexible
- BitBucket
- Cons
- Less flexible
- Doesn't have quite as much momentum as
git
- Caveats
- I haven't checked on Eclipse support lately; it used to be better than
git
's, but seemed rather stagnant
- I haven't checked on Eclipse support lately; it used to be better than
- Pros
fossil
(disclaimer: I haven't used this one in anger)- Pros
- Written by the man behind SQLite, so you can be fairly sure it's SOLID code
- Provides more than just version control, e.g., a distributed bug tracker
- Easy to set up for others to access
- Cons
- Not nearly as much momentum as
git
orhg
- I'm pretty sure Eclipse integration for
fossil
is non-existent (it was the last time I looked) - No free hosting that I know of to parallel GitHub or BitBucket, so you actually have to host your repo yourself
- Not nearly as much momentum as
- Pros
There are other DVCSs out there, notably including darcs
and bzr
, but I've not used them enough to have a worthwhile opinion on them.
a/ It is necessary to have a VCS
b/ CVCS and DVCS are quite different
c/ Eclipse is currently moving all its project to Git (and is improving on EGit), so Git will be the VCS target on Eclipse.
Git, because you can start right away and don't need a central repository server.
Some other advantages (compared to other SCMs):
- Less cluttered filesystem: Git only creates a folder at the root of the repository (unlike e.g. SVN).
- Does not interfere that much with "normal" file handling functions. E.g. in SVN you need to use custom commands to rename or move files. That is not the case with Git.
I have the feeling Git is very lightweight, so there no reason to wait until your project is "big enough" or whatever.