OT: Which SourceControl Tool?

OT: Which SourceControl Tool?

Old forum URL: forums.lhotka.net/forums/t/983.aspx


Bonio posted on Tuesday, August 22, 2006

I have never really understood (or took the time to understand) sourcecontrol.

My problem is this: I would like (need) to use sourcecontrol for the safety of my code, but I am continually switching my code from a desktop pc to a notebook depending where I am that day. With using MS Visual Sourcesafe this always caused me problems, so I am tempted not to use it but to continue copying files from one machine to the other (which is dangerous).

I would ask whether it is possible to have a sourcecontol solution that I can use over two machines and what sourcecontrol software would people recommend.

Thanks in advance

Bonio

Baldu replied on Tuesday, August 22, 2006

Eric Sink has as excellent series on how to use source control here: Source Control HOWTO

As for switching machinges, if your desktop and notebook can both reach your source control server, you should be golden.

RockfordLhotka replied on Tuesday, August 22, 2006

If you have a high level MSDN subscription you may want to use Microsoft's TFS Workgroup, along with your Team Developer or Team Suite version of Visual Studio 2005. They give you integration into VS, along with pretty decent network access to your server.

If you don't have that level of upgraded Universal MSDN you may want to look at less expensive alternatives.

A lot of people use Subversion, and it is easy enough to get running - give it a couple days of downloading, finding random docs and trying to get it configured and running and you are set to go. Use TortoiseSVN as a client. I'm being a bit sarcastic here about the time it takes - but it is a free open-source FOSS project and has the typical documentation of this sort of project, which means you have to infer a lot and mess around to get it running. But once it is running it is very nice to use. It is tailored to work well over a network. I really did spend a lot of time getting it all figured out - installing various other OSS products it requires, etc. (don't make the mistake I did, of installing the latest of everything out there - SVN doesn't work with the latest versions of its dependencies - so make sure to get the older ones it requires!!)

Similarly, a lot of people (including me) use cvs (which is also a FOSS project). It is easier to get running because it is older and more mature, and has some Windows installer msi's to get the server set up and going. Use TortoiseCVS on the client. cvs works well enough over a network - far better than VSS, better than TFS but not as good as SVN.

Q Johnson replied on Tuesday, August 22, 2006

This is terrific timing for me.  I just got started this week on finding a replacement for VSS because I want to have remote programming teammates soon.

I dowloaded Tortoise CVS and it looked great.  But my supposition that it would work on my FTP server was wrong.  It requires an active server component (and I don't think my ISP is going to smile kindly on that).

Do I have any options?  Are there "client" programs out there that can handle all the versioning work with a remote repository?

If I go to VSTS, do I have the same requirement for an active server component?  Or is a URL that is accessible to all the clients the only requirement?

Thanks,

 

RockfordLhotka replied on Tuesday, August 22, 2006

All the options I listed require a server component.

Both cvs and SVN can run against local stores - but then the files are local to your machine (though you do get the source control features - just not across the network)

xal replied on Wednesday, August 23, 2006

I beg to defer about the Subversion documentation thing. It's documentation is amazing, and it is in fact a book that you can read online or download as a pdf:

http://svnbook.red-bean.com/

Subversion has a series of accompanying software, such as Tortoise SVN (which is veeery straightforward), AnkhSVN (a VS plugin that works for 2002/3/5 versions), and WebSVN or WevCV that are the web interface for subversion.
Documentation for these is not as abundant and clear, but you can set it all up without much of a headache in a day or two (note that what takes time is not subvesion, that could take just a few minutes if you only care about the basics and use tortoise). For all of the latter, as usual, google is your friend.

Andrés

msk replied on Wednesday, August 23, 2006

I like Subversion a lot, but I have to agree with Rocky - it's not the easiest to setup.  The documentation is good - but who reads documentation?  With most free open source software I have tried, it's always tricky to get working - not just a run the setup.exe.  For anyone who can't afford team system - I think subversion is a good free alternative - but set aside a day to get it up and running. 

Martin

JoeFallon1 replied on Friday, August 25, 2006

Q Johnson:

This is terrific timing for me.  I just got started this week on finding a replacement for VSS because I want to have remote programming teammates soon.

I work remotely using VSS 6.0. It has worked over a VPN just fine for 3+ years.

Joe

ajj3085 replied on Friday, August 25, 2006

JoeFallon1:
I work remotely using VSS 6.0. It has worked over a VPN just fine for 3+ years.


Well, my experience has been that it works, but is excruciately slow.  We had a VPN that connected two office locations, one in Philly and one in Boulder.  The Boulder people were always complaining how slow it was just to do check outs..

VS2005 and other SCMs have much better support for remote users, but only the other SCMs address the reliablity aspect of VSS...

ajj3085 replied on Wednesday, August 23, 2006

I personally switched to SourceGear's Vault.  Its similar to VSS gui, but is backed by Sql server.  Additionally you can put the web service portion on the internet, and access your source from anywhere.. although all the other options mentioned in this thread allow that as well.

Vault also includes an import from VSS; so you won't lose any history in VSS when you switch.  I imagine TFS offers this as well, but I'm not sure the others (svn, cvs) can.

Fintanv replied on Wednesday, August 23, 2006

Here is a blog I found with detailed step by step instructions for downloading and installing subversion and it's extras.  While the content is a little old now, I wouldn't think things have changed that much. 

http://blogs.clearscreen.com/migs/archive/2005/01/21/824.aspx

Regards,
Fintan

MadGerbil replied on Wednesday, August 23, 2006

Why isn't anyone using VSS 2005?

I'm still stuck using VSS 6.0 and I'm getting tired of the headaches I have to go through to get it installed on new machines (seems like something always goes wrong).  Right now I'm looking at upgrading to VSS 2005 - is there a reason why that isn't a good answer?

ajj3085 replied on Wednesday, August 23, 2006

Because VSS 2005 has all the problem associated with VSS 6.  Really the only change seems to be a newer GUI and support for Unicode.  Other than that, there doesn't seem to be any major changes.  All the problems you have now will continue.

VSS is renown for being unreliable and slow; at a former employer, we called it Source Unsafe...

RockfordLhotka replied on Wednesday, August 23, 2006

That's not totally true - doesn't VSS 2005 have a web service interface to support better network/internet access?
 
Rocky


From: ajj3085 [mailto:cslanet@lhotka.net]
Sent: Wednesday, August 23, 2006 9:28 AM
To: rocky@lhotka.net
Subject: Re: [CSLA .NET] OT: Which SourceControl Tool?

Because VSS 2005 has all the problem associated with VSS 6.  Really the only change seems to be a newer GUI and support for Unicode.  Other than that, there doesn't seem to be any major changes.  All the problems you have now will continue.

VSS is renown for being unreliable and slow; at a former employer, we called it Source Unsafe...



MadGerbil replied on Wednesday, August 23, 2006

Yes.

It now has http access although it doesn't require a migration because it uses the same datasource as VSS 6.0.

ajj3085 replied on Wednesday, August 23, 2006

Well you'd still have to move all the clients to use VS2005 though wouldn't you?  The database itself is unchanged AFAIK.

ajj3085 replied on Wednesday, August 23, 2006

Argh.... yes I do remember seeing that in the brief time I used 2005 now that you mention it..

Although that doesn't address the reliablity concerns. Smile [:)]

ScepticalSwede replied on Wednesday, August 23, 2006

I would go with Subversion. I just installed and switched our comapny over to it (from VSS) and everyone is very happy.

I agree with both Xal and Rocky when it comes to documentation and installation of SVN.
Xal is right about the documentation, it's pretty good.
Rocky is right that it might not be the most straight forward installation, but for me it was more due to all the different options out there then lack of documentation.

Should you go with Apache, SVNServe or file to serve up Subversion?
Should you select Filebased (FSFS) or Berkley DB for the repository?

My 0.02$ on repository is go FSFS now. Seems to be everyone recomendation for new installs.To serve it up option is slightly harder and depends on your situation. The most advanced and best if you want to limit access is to do Apache (also the most complicated to install and here you have watch for correct version). If you are a standalone you could go file based. I did (for now) SVNServe and it's very simple to install. You should install the SVNServer add-on so it can run as service on your 'server'.

If you go with FSFS and SVNServe/SVNServer the setup is very straight forward and easy.

You should use TortoiseSVN and ANHKSvn as you client tools to access the repository.  

My big problems started when I wanted to put a Web interface on my Subversion install. I went with WebSVN and then I had to start download  a lot of stuff and had a lot of config problems to get it to work (probably also since i wanted it to run under IIS).

Not Sceptical to SVN ;-)

Sceptical Swede

DansDreams replied on Friday, August 25, 2006

I also need to get something going in the next few weeks.  I have a colleague who has use VSS for the last five years and says it's straightforward and easy to install, easy to use, and works great.

What specific things do you guys think is superior with subversion.

I'm assuming it can do all the same basic version control stuff like checkin/checkout control, change tracking (and rollback), etc.

ajj3085 replied on Friday, August 25, 2006

If you want minimum traning for your colleague, the Vault UI is very very similar to VSS, and all of the commands are the same (checkout in cvs is more like get latest in vss i believe, edit I believe is checkout).  

Of course svn has a better price ;Wink [;)]

DansDreams replied on Friday, August 25, 2006

Here I was thinking it was part of my MSDN subscription - boy do I miss my old Enterprise level subscription sometimes.  :)

The colleague is not a factor in the way you describe.  I'm just looking for specific points of why people that have used both prefer subversion.

I had some exposure to subversion + tortoise on a short project a couple years ago and was quite less than impressed.  I'm wondering in what ways VSS could be worse than that considering how the colleague speaks highly of it.

Let me be more specific.  My experience was like what was generally described above for VSS.  Completely unstable.  It wouldn't work right and the SVN guru's regular solution seemed to be wiping out the local copies and redownloading or other such drastic measures.

ajj3085 replied on Friday, August 25, 2006

DansDreams:
Here I was thinking it was part of my MSDN subscription - boy do I miss my old Enterprise level subscription sometimes.  :)


You thought what was part of your MSDN? 

DansDreams:
The colleague is not a factor in the way you describe.  I'm just looking for specific points of why people that have used both prefer subversion.


Fair enough.  I thought you wanted source control options, not vss vs. svn.

DansDreams:
Let me be more specific.  My experience was like what was generally described above for VSS.  Completely unstable.  It wouldn't work right and the SVN guru's regular solution seemed to be wiping out the local copies and redownloading or other such drastic measures.


Hmm, I've heard people with nothing but praise for svn.  But it just started appearing on my radar a few years ago... before that I had never heard of it.  cvs (I think svn is based on that) is supposedly very reliable, and in my experience using rcs that was very reliable too (cvs is based on rcs, or maybe its the other way around.. anyway..).  I wish I could say I was suprised at the attitude of the svn guru's...  I've encountered that with other open source projects as well.  I'd think your best bet is to pick a source control which is backed by some kind of transactional database (I think svn supports this).  File based SCs can't promise transactional support, as far as I know.

ScepticalSwede replied on Friday, August 25, 2006

In Subversion you usually don't check out a file, you merge in your changes. It's not as bad as it sounds, its done automagically and there are rarely conflicts that needs to be resolved.
You never having the problem that the file you want to work on is locked by another user. And most of the time you don't have tp be worried about if someone else been touching the file when you workin a disconnected mode.

In subversion check-ins (or commits) are atomic. If a file doesn't make it in or if you lose connection during the commit, Subversion roles back the transaction. In vss you would have corrupted reposotiry.

VSS is famous for corruptions, Subversion rarely or never gets corrupted.

Subversion is excellent for disconnected work, vss (2005 might be better) is not good at it.

Subversion is very good at branching, when you have releases this very important. VSS is pretty bad at it (never tried, but everone says stay away from it).

There are probably more, but can't come up with them right now.

Sceptical Swede

(Actually working from my sons hospital room right now and don't have access to our SVN reposotory from here)

Copyright (c) Marimer LLC