Archived

This topic is now archived and is closed to further replies.

Working with source repositories(CVS/etc.)

This topic is 4968 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

I am currently in the process of developing a project with another person. Since he doesn''t live across the street using a network or Wireless LAN for this doesn''t work. So what we want is a sourcecode repository such as SubVersion or SourceSafe. I''ve heard from more then 1 source that CVS is horrible and that SubVersion is a good replacement. So it''s between SVN and VSS now. What would be the best one to use(Opinion question ofcourse) for a project which will be coded in the .NET framework(C# and ADO.NET)? And second, perhaps more important is, how do we work with it? I assume we create a Visual Studio Solution file and add the projects to it. And then what? Are there any guides on the net explaining some best practices of a source repository system? We have zero experience with using a repository. Toolmaker
My site /* -Earth is 98% full. Please delete anybody you can.*/

Share this post


Link to post
Share on other sites
VS IDE has tight integration with Visual Source Safe and is the most intuitive.
CVS is a bit fiddly but it does do the job, and it''s versioning mechanism is highly visible.

Source Safe is expensive. Running any server from your computer becomes a bit of a security concern. CVS can be piped through a SSL connection but it all becomes very messy when trying to do that on a windows box. You could use a web front end for CVS though and use that instead of pserver or whatever.

If you use Source Safe it might be worth while setting up a vpn server connection on your chosen server machine, which can be encypted and is relatively easy to set up if you have a pro level operating system (2K Pro, XP Pro) - not sure how easy it would be to set up on XP Home.

Sourceforge.net has tons of CVS related projects and a few tutorials that may either sway you one way or another.

Share this post


Link to post
Share on other sites
Look at Subversion. Is integrated with VS and is suppose to be easier than CVS.


- onebeer

Share this post


Link to post
Share on other sites
Didn''t I just say we cut down our options to SubVersion(SVN) and SourceSafe(VSS).

It seems that for VSS requires a VPN, and thus extra work. Are they any articles out there on how to work with a source repository? I have no idea how to work with them properly

Toolmaker

Share this post


Link to post
Share on other sites
I''d recommend TortoiseCVS. There is a guide to day to day use and what you can do with version control such as branching and merging.

"Visual SourceSafe? It would be safer to print out all your code, run it through a shredder, and set it on fire." -- Microsoft employee

Share this post


Link to post
Share on other sites
CVS isn''t as bad as everyone acts like. I think the reason it has a bad name is all the stupid kids that can''t figure out how to use it.

--------------------------------------------------------------------------------
Good Links: C++ Reference, Java API
SDL Home Page, Lua Scripting Language, Python Scripting Language
Chris Taylor''s Design Document (Downloadabe MS-Word Only), Blitz Basic Homepage

Share this post


Link to post
Share on other sites
I use CVS everyday ( off of sourceforge ) and don''t any major problems with it. WinCVS or Cervisia ( in Linux ), makes it very easy to use to check diffs, commits etc. The only thing that CVS doesn''t have is binary diffs. So you cannot really do good histories on binary files. So if you have a lot of binary resources that you plan on placing in your CVS that will change a lot then I believe Subversion is a good choice ( although I have not used it myself ).

-------
Andrew
PlaneShift - A MMORPG in development.

Share this post


Link to post
Share on other sites
I discussed things with my partner, and we decided to go for SubVersion. I heard about TortoiseSVN being the Win32 client.

But I do not agree on the comment about VSS. I have seen it being used at my internship. I had my own code branch which wasn''t inside the VSS database so I never got to work with it. But I never heard of any problems with VSS. If I would have to make a corporate decision, where everyone was inside the same office, I would run VSS anyway. But I use Microsoft products for almost anything(As long as those products are available ofcourse).

Toolmaker



My site
/* -Earth is 98% full. Please delete anybody you can.*/

Share this post


Link to post
Share on other sites
Subversion''s features are essentially a superset of CVS'' features, and it fixes some of the more serious shortcomings of CVS such as no atomic commits, no renames etc.

This is their current feature list:

Features of Subversion

Most current CVS features.

Subversion is meant to be a better CVS, so it has most of CVS''s features. Generally, Subversion''s interface to a particular feature is similar to CVS''s, except where there''s a compelling reason to do otherwise.
Directories, renames, and file meta-data are versioned.

Lack of these features is one of the most common complaints against CVS. Subversion versions not only file contents and file existence, but also directories, copies, and renames. It also allows arbitrary metadata ("properties") to be versioned along with any file or directory, and provides a mechanism for versioning the `execute'' permission flag on files.
Commits are truly atomic.

No part of a commit takes effect until the entire commit has succeeded. Revision numbers are per-commit, not per-file; log messages are attached to the revision, not stored redundantly as in CVS.
Apache network server option, with WebDAV/DeltaV protocol.

Subversion can use the HTTP-based WebDAV/DeltaV protocol for network communications, and the Apache web server to provide repository-side network service. This gives Subversion an advantage over CVS in interoperability, and provides various key features for free: authentication, path-based authorization, wire compression, and basic repository browsing.
Standalone server option.

Subversion also offers a standalone server option using a custom protocol (not everyone wants to run Apache 2.x). The standalone server can run as an inetd service, or in daemon mode, and offers basic authentication and authorization. It can also be tunnelled over ssh.
Branching and tagging are cheap (constant time) operations

There is no reason for these operations to be expensive, so they aren''t.

Branches and tags are both implemented in terms of an underlying "copy" operation. A copy takes up a small, constant amount of space. Any copy is a tag; and if you start committing on a copy, then it''s a branch as well. (This does away with CVS''s "branch-point tagging", by removing the distinction that made branch-point tags necessary in the first place.)
Natively client/server, layered library design

Subversion is designed to be client/server from the beginning; thus avoiding some of the maintenance problems which have plagued CVS. The code is structured as a set of modules with well-defined interfaces, designed to be called by other applications.
Client/server protocol sends diffs in both directions

The network protocol uses bandwidth efficiently by transmitting diffs in both directions whenever possible (CVS sends diffs from server to client, but not client to server).
Costs are proportional to change size, not data size

In general, the time required for an Subversion operation is proportional to the size of the changes resulting from that operation, not to the absolute size of the project in which the changes are taking place. This is a property of the Subversion repository model.
Efficient handling of binary files

Subversion is equally efficient on binary as on text files, because it uses a binary diffing algorithm to transmit and store successive revisions.
Parseable output

All output of the Subversion command-line client is carefully designed to be both human readable and automatically parseable; scriptability is a high priority.


If you want to use Subversion with Visual Studio, I recommend my addin AnkhSVN(in my signature). It lets you perform most of the common version control operations from within Visual Studio .NET.
Although documentation is something of a sore point for us, there is a "getting started" point in the FAQ at the AnkhSVN wiki: http://ankhsvn.com/wiki/default.aspx/AnkhWiki.FrequentlyAskedQuestions Also, if you encounter any problems, you can come into the #ankhsvn channel on irc.freenode.net at any time.



--
AnkhSVN - A Visual Studio .NET Addin for the Subversion version control system.
[Project site] [Blog] [RSS] [Browse the source] [IRC channel]

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
SourceGear''s Vault would be a viable commercial solution. It is free for 1 user so you would have to pay for another license. Please note that you also need an SQL Server in order to run it. I use it for day to day development because I work alone.


http://www.sourcegear.com/vault/downloads.asp

Share this post


Link to post
Share on other sites
quote:
Original post by Toolmaker
But I do not agree on the comment about VSS. I have seen it being used at my internship. I had my own code branch which wasn''t inside the VSS database so I never got to work with it. But I never heard of any problems with VSS. If I would have to make a corporate decision, where everyone was inside the same office, I would run VSS anyway. But I use Microsoft products for almost anything(As long as those products are available ofcourse).


MS is pretty much ditching VSS. They have never used it internally for major projects - it was unable to scale to the requirements. Instead they used a custom version of Perforce.

VSS has been the laughing stock of the whole version control community for a long time - that''s how bad it is. See this page for some testimonials about VSS: http://www.wadhome.org/svn_vs_vss.txt

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
quote:
Original post by Onemind
CVS isn''t as bad as everyone acts like. I think the reason it has a bad name is all the stupid kids that can''t figure out how to use it.
Right, you''re a cool guy and a good progam should be hard to use. Oh sorry, I was wrong. In both statements.

Having used VSS, CVS, Subversion and Perforce I''d recommend Perforce for a larger development team, but with pricing taken into account Subversion is probably the best choice.

CVS and VSS both suffer from the lack of atomic commits. The file-locking mechanism in VSS has some issues that people often complain about.

If you''re about to introduce a new environment, there''s absolutely no reason for choosing CVS over Subversion.

If you can afford it, Perforce is a great tool. Subversion is nice too once you have it up and running, but the learning curve is somewhat higher.

Share this post


Link to post
Share on other sites
VSS is ASS!! I mean it. Microsoft did a great job with the new Visual Studio, but honestly, VSS is the biggest pain-in-the-ass-source-control-system ever. Getting it to work is a little easier than CVS, but it doesnt scale well and isnt very reliable on anything other than a LAN.

Both Subversion and CVS are great, theyre both far superior to most competing commercial source-control software (except for Perforce and ClearCase), and theyve got everything you need for a mid-size or even a large project.

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
quote:
Original post by Toolmaker
But I do not agree on the comment about VSS. I have seen it being used at my internship. I had my own code branch which wasn''t inside the VSS database so I never got to work with it. But I never heard of any problems with VSS. If I would have to make a corporate decision, where everyone was inside the same office, I would run VSS anyway. But I use Microsoft products for almost anything(As long as those products are available ofcourse).
VSS has several issues with larger projects, but for a single developer or a small team it''s quite ok. If you have much binary data (images, documents etc) things start to run very slow after some time. It''s also not fool-proof if something crashes, given that it builds on locking files from the client (no server).

The fact that you don''t have a server could be an advantage if you run it on your local computer at home, the setup is really easy.

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
quote:
Original post by psamty10
VSS is ASS!! I mean it. Microsoft did a great job with the new Visual Studio, but honestly, VSS is the biggest pain-in-the-ass-source-control-system ever. Getting it to work is a little easier than CVS, but it doesnt scale well and isnt very reliable on anything other than a LAN.

Both Subversion and CVS are great, theyre both far superior to most competing commercial source-control software (except for Perforce and ClearCase), and theyve got everything you need for a mid-size or even a large project.
I basically agree. But if you''re on a LAN, have a very small team and not much code, want to mimimize administration, don''t have anyone really interested in learning CVS etc., VSS could be a descent choice.

Share this post


Link to post
Share on other sites
As others have said, VSS sucks big time - don''t use it.

I''ve never used Subversion but I''ve used Perforce a lot and it''s really good. It''s very widely used in game development as well. If there''s only 2 of you, you can use Perforce for free. If there''s any chance of needing more than 2 users you have to start paying though so you might be better off with Subversion.

Share this post


Link to post
Share on other sites
Well, for now we are only with two of us, but we don''t know how that will be in the future. I will also take a look at Perforce since everybody is so jolly about it

On a side note towards VSS, the integration with VC.NET lacks a bit, because it often generates "Unspecified Error" when accessing data not attached to a VSS server while it still has VSS information files. VSS is moved out of the picture.

Toolmaker

Share this post


Link to post
Share on other sites
*Kicking back to top*

I installed SVN, and I am reading up the docs now, but does anyone have a day to day use guide for SVN? Stuff like when commiting back into the repository, etc.

Toolmaker

Share this post


Link to post
Share on other sites