Revision Control System Recommendations
Asked Answered
V

3

7

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!

Votary answered 9/1, 2011 at 15:59 Comment(7)
Subversion (known as SVN) is a particular implementation of a version control system. Git is another. Still others include CVS (mentioned), Mercurial, Perforce, etc. They all have strengths and weaknesses. Your question appears to be treating 'SVN' as a generic term. It's not.Premeditation
If you are using windows then stay away from git - definitely consider svn and mercurial.Marcellusmarcelo
@Tim, what's wrong with Git on Windows? It works just fine for me.Resistant
@Alisey - I had a terrible time installing it and running it. The primary developer of the tool(s) also despises the windows platform - I'd rather use a tool that is built originally to work well with the development platform I am working on. I find mercurial a lot better for the win32 platform. Sure, people use git with Windows but if choosing from scratch I don't see why one would choose it over Hg.Marcellusmarcelo
"What I would like to accomplish is being able to keep a constant revision history - But I want this to be almost entirely transparent." You may think that this is what you want, and you can achieve something like this by developing in a dropbox folder. But you'll discover that a revision history is much more useful if it consists of conscious commits with useful commit messages describing each revision. Fully automatic transparent versioning is not nearly as useful, because of the lack of coherent transactions.Exhaust
@Roger - Thanks, I was indeed under that assumption, I've made mods to the question, and the title. Thanks!Votary
Wow. 5+ years have elapsed. I can't even believe I wrote this :oVotary
M
1

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.

Marcellusmarcelo answered 9/1, 2011 at 16:41 Comment(6)
Thank you Tim, I definitely need a lightweight solution. One that requires zero maintenance. My work consists of developing code, not maintaining a versioning tool. It appears there is a Mercurial Eclipse plugin too... I'll be taking a peak at these throughout the day. After signing up for GitHub (10 minutes ago), Free accounts force you to be OpenSource - which I'm not prepared for atm. Can revisions be managed both locally and remotely using Mercurial? If so, perfect.Votary
Look, if you don't want to do maintenance, then don't do maintenance. You're apparently satisfied with using the much-slower Subversion, so the benefits of maintenance would probably be lost on you anyways.Gorse
@erjang - did you read the post - it compared hg and git. for this user svn may be appropriate. Not sure why the down vote was necessary. Get makes no sense for this user - he is on Windows - does not want to spend so much time learning (git is the least attractive on this point) et.Marcellusmarcelo
I did a little further research and played around with Eclipse. Over the past couple hours I've successfully integrated code.google.com and Mercurial EclipseHg. Thanks for your support! I notice code.google.com is opensource, I'd rather manage a private online repository for now - Any substitutes for the repo itself that are not entirely public?Votary
alternatively, is there an opensource php-based application I can install on my webserver that essentially acts as the repo itself? Just as I can commit (push) changes to code.google.com/p/myfirstproject The application could identify HTTP requests to repo.mywebsite.com/myfirstproject Any ideas?Votary
i just found bitbucket. it looks like it should work perfectly. as an added bonus, the company was just aquired by Atlassian - and I used to administer an Atlassian tool (Confluence) while working for BlackBerry. Life's good - thanks for everything everyone.Votary
J
3

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.

Judsen answered 19/4, 2011 at 19:3 Comment(0)
M
1

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.

Marcellusmarcelo answered 9/1, 2011 at 16:41 Comment(6)
Thank you Tim, I definitely need a lightweight solution. One that requires zero maintenance. My work consists of developing code, not maintaining a versioning tool. It appears there is a Mercurial Eclipse plugin too... I'll be taking a peak at these throughout the day. After signing up for GitHub (10 minutes ago), Free accounts force you to be OpenSource - which I'm not prepared for atm. Can revisions be managed both locally and remotely using Mercurial? If so, perfect.Votary
Look, if you don't want to do maintenance, then don't do maintenance. You're apparently satisfied with using the much-slower Subversion, so the benefits of maintenance would probably be lost on you anyways.Gorse
@erjang - did you read the post - it compared hg and git. for this user svn may be appropriate. Not sure why the down vote was necessary. Get makes no sense for this user - he is on Windows - does not want to spend so much time learning (git is the least attractive on this point) et.Marcellusmarcelo
I did a little further research and played around with Eclipse. Over the past couple hours I've successfully integrated code.google.com and Mercurial EclipseHg. Thanks for your support! I notice code.google.com is opensource, I'd rather manage a private online repository for now - Any substitutes for the repo itself that are not entirely public?Votary
alternatively, is there an opensource php-based application I can install on my webserver that essentially acts as the repo itself? Just as I can commit (push) changes to code.google.com/p/myfirstproject The application could identify HTTP requests to repo.mywebsite.com/myfirstproject Any ideas?Votary
i just found bitbucket. it looks like it should work perfectly. as an added bonus, the company was just aquired by Atlassian - and I used to administer an Atlassian tool (Confluence) while working for BlackBerry. Life's good - thanks for everything everyone.Votary
S
0

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.

Smectic answered 9/1, 2011 at 16:18 Comment(3)
Unfuddle lets you use Git or SVN. It is not a replacement for Git or SVN.Gorse
@erjiang: And what is OP requirements??Smectic
Sorry guy, I just thought I'd clarify that Unfuddle is a service atop a VCS, not a VCS itself.Gorse

© 2022 - 2024 — McMap. All rights reserved.