Jordan Arsenault
Jordan Arsenault

Reputation: 7388

Revision Control System Recommendations

I've reached a point in my independent development work where I would like to start using Subversion techniques.

Up to now, I've been simply making backups by exporting my current database, and zipping them together with my PHP project files.

I've read some articles online and watched a video with Linus Torvalds - the general verdict seems to be that Git is in and old CVS techniques are out.

I'm not currently operating under Linux, I do all PHP work out of Windows -> Eclipse. Due to the fact that Eclipse runs on JVM, jumping into Linux -> Eclipse will be more or less transparent - file system aside.

What I would like to accomplish is being able to keep a constant revision history - But I want this to be almost entirely transparent. Also, I work in an MVC framework, and I would like to be able to release my views to Designers, and have them work from within the revision control system too.

Will Egit accomplish what I need? Or is it too much overhead for a one-man workforce? What do you recommend I use so that I can keep a revision history?

I also require the service to be free!

Upvotes: 7

Views: 7125

Answers (3)

DigitalRoss
DigitalRoss

Reputation: 146053

Use Git or Mercurial


Once upon a time, cvs almost completely replaced its competition and ruled the world of version control.

Then it was itself replaced by svn.

And now, svn has been replaced by git.

Git is more complex than svn, so an svn project might well want to just keep bashing along and not convert.

But svn's days are numbered. Git, Mercurial, and some proprietary systems are clearly the future of the VCS world. There are even mechanisms to cross-operate with other types of repositories.

Finally, the transition is easy, because git can be used with a central repo just like it was a (much) faster version of cvs or svn.

Upvotes: 3

Tim
Tim

Reputation: 20360

Try these searches

https://stackoverflow.com/search?q=free+svn+hosting

https://stackoverflow.com/search?q=free+mercurial+hosting

As for choosing which one - I tend to agree with the google review here:

  • Learning Curve. Git has a steeper learning curve than Mercurial due to a number of factors. Git has more commands and options, the volume of which can be intimidating to new users. Mercurial's documentation tends to be more complete and easier for novices to read. Mercurial's terminology and commands are also a closer to Subversion and CVS, making it familiar to people migrating from those systems.

  • Windows Support. Git has a strong Linux heritage, and the official way to run it under Windows is to use cygwin, which is far from ideal from the perspective of a Windows user. A MinGw based port of Git is gaining popularity, but Windows still remains a "second class citizen" in the world of Git. Based on limited testing, the MinGW port appeared to be completely functional, but a little sluggish. Operations that normally felt instantaneous on Linux or Mac OS X took several tenths of a second on Windows. Mercurial is Python based, and the official distribution runs cleanly under Windows (as well as Linux, Mac OS X, etc).

But his is the hands-down clincher:

Maintenance. Git requires periodic maintenance of repositories (i.e. git-gc), Mercurial does not require such maintenance. Note, however, that Mercurial is also a lot less sophisticated with respect to managing the clients disk space (see Client Storage Management above).

I don't want to have to do "maintenance" on the git repos. That's just unacceptable.

Summary

In terms of implementation effort, Mercurial has a clear advantage due to its efficient HTTP transport protocol.

In terms of features, Git is more powerful, but this tends to be offset by it being more complicated to use.

I have not moved all my stuff to mercurial - SVN is just fine for most projects - especially single-person projects.

Upvotes: 1

Naveed
Naveed

Reputation: 42093

I am using unfuddle and it is working for me.

Unfuddle

Unfuddle is a secure, hosted project management solution for software development teams.

We know that you don't have time to get a server up and running and then configure and secure code repositories, ticketing systems and valuable project management tools.

Here are some features:

  • Projects

    Work on many different projects and manage each of them from within a single Unfuddle account. Each project has its own set of tickets, milestones, messages and notebooks.

  • The Dashboard

    The Dashboard is the hub of information for a project. In just a glance, you and your team can easily see any recent changes to the source, messages, tickets and any upcoming or late milestones.

  • Tickets

    Unfuddle tickets help your project to stay organized. Prioritize, comment upon and then assign your tickets to your team members.

  • Painless Subversion and Git Hosting

    Exactly what you would expect: Unlimited Subversion and Git repositories for each project in your account, with quick access to the project source code right from within your browser.

  • Messages

    Messages are all about simple and effective communication. If your team cannot communicate well your project will suffer.

  • People & Permissions

    Unfuddle provides you with fine-grained control over what your team can do.

Upvotes: 0

Related Questions