source control beyond VSS

Posts   
1  /  2
 
    
omar avatar
omar
User
Posts: 569
Joined: 15-Oct-2004
# Posted on: 09-Apr-2005 20:56:21   

I am considering departing from VSS for our source control and I am interested in getting some advice in this matter as well as software recomendation for a better alternative to VSS...

jeffreygg
User
Posts: 805
Joined: 26-Oct-2003
# Posted on: 09-Apr-2005 21:56:28   

SourceGear's Vault! Fantastic product; supports VSS-style exclusive checkouts as well as CVS-style concurrent/optimistic checkouts (edit/merge/checkin); has a free single user license; Excellent performance (10x VSS's speed, at least); works very well over the internet; uses SQL Server as its data store, so you get the benefit of its reliability, scalability, and transaction-ness...on and on. It's just an excellent product, and very reasonably priced.

Jeff...

sirshannon
User
Posts: 48
Joined: 26-Jun-2004
# Posted on: 09-Apr-2005 23:02:42   

jeffreygg wrote:

SourceGear's Vault! Fantastic product; supports VSS-style exclusive checkouts as well as CVS-style concurrent/optimistic checkouts (edit/merge/checkin); has a free single user license; Excellent performance (10x VSS's speed, at least); works very well over the internet; uses SQL Server as its data store, so you get the benefit of its reliability, scalability, and transaction-ness...on and on. It's just an excellent product, and very reasonably priced.

Jeff...

I'll second all of that.

I also use Perforce some now (due to the job I am currently at), but Perforce server isn't free.

arschr
User
Posts: 893
Joined: 14-Dec-2003
# Posted on: 09-Apr-2005 23:21:22   

I've moved away from VSS and over to a open source (tm) source control product called subversion. You can find out more at www.tigres.org.

sirshannon
User
Posts: 48
Joined: 26-Jun-2004
# Posted on: 10-Apr-2005 01:15:53   

arschr wrote:

I've moved away from VSS and over to a open source (tm) source control product called subversion. You can find out more at www.tigres.org.

I am not very familiar with Subversion, I've only used it for a very limited amount of time and only at the current job, but almost immediately after I arrived, the move to Perforce began.

Martin Fowler recommends both pretty highly:

On the basis of my informal conversations with my colleagues, Subversion (abbreviated to SVN) is a better system than all the commercial tools except Perforce.

http://martinfowler.com/bliki/Subversion.html

Personally, I was coming from VSS, so SourceGear Vault was a natural replacement for me because it was built to overcome VSS's abundant shortcomings. I've heard nothing but good things about Subversion from my coworkers, though.

Otis avatar
Otis
LLBLGen Pro Team
Posts: 39618
Joined: 17-Aug-2003
# Posted on: 10-Apr-2005 12:47:58   

I use subversion, because I like the way you can write simple .cmd files with svn calls and you get things done, and I also like the explorer add-in style of tortoisesvn.

Though if you're an integration person, and you like to have full vs.net integration, Vault is the way to go. simple_smile

Frans Bouma | Lead developer LLBLGen Pro
Answer
User
Posts: 363
Joined: 28-Jun-2004
# Posted on: 14-Apr-2005 07:58:33   

They make a VS.NET pluging for subversion too. It works quite well.

http://ankhsvn.tigris.org/

swallace
User
Posts: 648
Joined: 18-Aug-2003
# Posted on: 14-Apr-2005 14:51:24   

I hear that in Visual Studio 2005 SourceSafe is completely re-written, and (supposedly) improved. Anyone tried it yet?

Otis avatar
Otis
LLBLGen Pro Team
Posts: 39618
Joined: 17-Aug-2003
# Posted on: 14-Apr-2005 15:44:26   

swallace wrote:

I hear that in Visual Studio 2005 SourceSafe is completely re-written, and (supposedly) improved. Anyone tried it yet?

VSS has been 'updated' with unicode support, internet support and some other tweaks. I wouldn't even consider it.

They also have written team-system, which is a completely new sourcecontrol system (among a lot of other stuff) targeted at large teams (think hundreds of people).

Now, the brilliant mind who cooked up VSS also designed the SCCS of team system. So I'm pretty sure they'll make files read-only in there too, (but I'm not sure, I hope not).

The incredible bad design of the SCC integration in VS.NET 2003 (use VSS style or go away) hasn't been updated that much either, so 3rd party SCCS systems still have to follow VSS style of using SCCS systems (check out, edit, check in), which for example gives read-only files on the system in a lot of SCCS systems. That alone is a reason not to use it.

Though I have to use another SCCS for websites now, as SVN comes with this .svn folder and vs.net can't handle that. Then you suddenly understand how great the explorer integration of tortoisesvn is, how great it is that files are just editable and no nagging about 'file is writable, do you want to write it or leave it?' and the addition of VSS goo to the .sln and csproj files... frowning

I now use a single user vault db for 2 the code of two webapps which are not changed that often. It works ok, but it doesn't give me another experience, which isn't Vault's fault, as it's the way SCC integration works in vs.net 200crap (that's 2 and 3): no support for edit-commit style (CVS/SVN) and thus you still get the read-only files, the goo inside your sln/csproj files. That said, what's missing is IMHO the shell integration. I could leave the vs.net crap out of it if Vault would have a shell integrated application. Though they use a repository explorer similar to VSS (but better). Still useful, but a bit of a step back. But it's just for 2 websites so I'm not that unhappy with it.

Ok, enough ranting, back to docs writing! smile

(I know tortoisesvn comes with a _svn supporting version, but that's a bit cumbersome, as I use a lot of repositories with .svn folders)

Frans Bouma | Lead developer LLBLGen Pro
swallace
User
Posts: 648
Joined: 18-Aug-2003
# Posted on: 14-Apr-2005 18:54:07   

Now, the brilliant mind who cooked up VSS also designed the SCCS of team system.

God help us all...

jeffreygg
User
Posts: 805
Joined: 26-Oct-2003
# Posted on: 14-Apr-2005 20:03:20   

Otis wrote:

<snip>comments on VSS badness and the crap integration module it provides...

Just a couple of weeks ago I finally decided to manually pull all of that VSS goo out of my solution and project files. It is a bit of a pain not having integration, but now we have no problems using source control (Vault) across the team. Nice and clean...I'll have to check out Subversion. I've heard a lot about the shell integration. /e wonders well that would work for document management, too...

Jeff...

Cadmium avatar
Cadmium
User
Posts: 153
Joined: 19-Sep-2003
# Posted on: 14-Apr-2005 20:53:05   

Otis wrote:

Though I have to use another SCCS for websites now, as SVN comes with this .svn folder and vs.net can't handle that.

There is a custom version of Tortoise svn that uses _svn instead of .svn to avoid that error message, however I think you can't use it with another svn server.

I'm an ASP.Net developer who uses svn everyday and the best technique I've found is to not use web projects! As far as I'm concerned web projects are just class library projects that load really, really slowly. All you have to do is tweak the bin directory path and make a few small changes to some vs config files so you can add web items to class libraries.

I've been working this way for over a year and I wouldn't dream of going back to using web projects for anything but quick tests.

erichar11
User
Posts: 268
Joined: 08-Dec-2003
# Posted on: 14-Apr-2005 21:08:51   

Cadmium,

I'm an ASP.Net developer who uses svn everyday and the best technique I've found is to not use web projects! As far as I'm concerned web projects are just class library projects that load really, really slowly. All you have to do is tweak the bin directory path and make a few small changes to some vs config files so you can add web items to class libraries.

Is there any documentation about how to do this? I use svn (Tortise, with the _svn trick for web projects). Looking for a better solution and this may be the ticket. My web projects load soooo.... slowly.

Are there any other benfits?

Thanks

Otis avatar
Otis
LLBLGen Pro Team
Posts: 39618
Joined: 17-Aug-2003
# Posted on: 14-Apr-2005 22:00:20   

indeed, Cadmium could you please give some info on this? Very interesting! simple_smile

Frans Bouma | Lead developer LLBLGen Pro
Cadmium avatar
Cadmium
User
Posts: 153
Joined: 19-Sep-2003
# Posted on: 14-Apr-2005 22:14:54   

Sure, here's a pretty good guide http://pluralsight.com/wiki/default.aspx/Fritz/AspNetWithoutWebProjects.html

The hardest part is modifying 1 or 2 vs files so you can add webitems (.aspx, .html, etc) to class library projects and that only takes a minute or two.

After that you just create a class library project instead of an asp.net project. You tweak the output directories it \bin instead of \bin\debug or \bin\release. If you want asp.net debugging you can set that up in about 30 seconds as well (see the guide for more info). Oh, you'll have to set up a virtual directory if you need one (right click->properties->web sharing).

Converting an existing project just requires a single line change in the csproj/vbproj file.

That's it. Your projects will load alot faster (since vs doesn't have to connect to iis) and you won't get the subversion related errors.

Otis avatar
Otis
LLBLGen Pro Team
Posts: 39618
Joined: 17-Aug-2003
# Posted on: 14-Apr-2005 23:35:43   

amazing! thanks! smile

Frans Bouma | Lead developer LLBLGen Pro
Cadmium avatar
Cadmium
User
Posts: 153
Joined: 19-Sep-2003
# Posted on: 14-Apr-2005 23:52:40   

Otis wrote:

amazing! thanks! smile

No problem wink

Answer
User
Posts: 363
Joined: 28-Jun-2004
# Posted on: 15-Apr-2005 01:58:11   

What problems are you guys having with .svn folder and webapps/ cuase it seems to work fine on my webprojects. I do get an error message about not being able to load the folder, i just hit ok and go my merry way..

Devildog74
User
Posts: 719
Joined: 04-Feb-2004
# Posted on: 15-Apr-2005 02:05:35   

I have been using Cadmium's approach to web development for over a year now and its the only way to go.

erichar11
User
Posts: 268
Joined: 08-Dec-2003
# Posted on: 15-Apr-2005 03:34:29   

What problems are you guys having with .svn folder and webapps/ cuase it seems to work fine on my webprojects. I do get an error message about not being able to load the folder, i just hit ok and go my merry way..

With svn, folders prefixed with '.' don't work correctly with web projects in VS.NET 2003. I belive this is fixed in vs.net 2005. It's pretty well known (google svn and web projects should provide several insights) and svn created a special version to solve this problem. SVN works well with class libraries projects but not web projects, hence the interest in the way Cadmium uses class libraries projects to create web projects. I'm going to give this a go tonight. After I finish my taxes rage

erichar11
User
Posts: 268
Joined: 08-Dec-2003
# Posted on: 15-Apr-2005 06:30:57   

OK, via Cadmium and devdog suggestions, I tried this creating a new web project (well, a class library project) and it works well. I haven't updated my existing project as I'm a little nervous about doing that. One question though, why does it work? In other words, for this new web project, I just marked the folder as shared and everything worked great. I'm just not sure why it worked. Why in the past do I have to create a virtual directory and so forth to get my web projects to work. Just looking for some insight here as I'm a little confused.

Otis avatar
Otis
LLBLGen Pro Team
Posts: 39618
Joined: 17-Aug-2003
# Posted on: 15-Apr-2005 09:12:40   

Cadmium wrote:

Otis wrote:

amazing! thanks! smile

No problem wink

simple_smile You know, I already wondered why the petshop example was a class library. I couldn't debug the code, so I cursed them for this approach, but now I know. simple_smile I'll migrate the code to the library approach today! simple_smile

Frans Bouma | Lead developer LLBLGen Pro
Otis avatar
Otis
LLBLGen Pro Team
Posts: 39618
Joined: 17-Aug-2003
# Posted on: 15-Apr-2005 09:19:15   

Answer wrote:

What problems are you guys having with .svn folder and webapps/ cuase it seems to work fine on my webprojects. I do get an error message about not being able to load the folder, i just hit ok and go my merry way..

If you use a webproject, vs.net accesses IIS directly, and the .svn folder then causes problems. (as in: "Can't load project blabla". ) With the library project you don't have this, as the project isn't loaded via IIS but directly from disk (as it should be).

erichar11 wrote:

OK, via Cadmium and devdog suggestions, I tried this creating a new web project (well, a class library project) and it works well. I haven't updated my existing project as I'm a little nervous about doing that. One question though, why does it work? In other words, for this new web project, I just marked the folder as shared and everything worked great. I'm just not sure why it worked. Why in the past do I have to create a virtual directory and so forth to get my web projects to work. Just looking for some insight here as I'm a little confused.

A webapplication IS a library simple_smile See it as this: - you have a compiled assembly with the code behind code. These are classes. - you have a set of .aspx and .ascx files. These have references to the parent classes they inherit from, these are located in the compiled assembly. - the asp.net worker process then fires up the C# compiler and generates stub code for every aspx and ascx file and in fact makes them inherit from the assembly you compiled. The stubs use the HTML in the aspx and ascx files to produce html, so if you overwrite these, they're used immediately.

This means that in fact, the application you're writing is a library, namely the code behind library. The rest is compiled on the fly on the webserver. simple_smile

Frans Bouma | Lead developer LLBLGen Pro
Otis avatar
Otis
LLBLGen Pro Team
Posts: 39618
Joined: 17-Aug-2003
# Posted on: 15-Apr-2005 11:54:00   

I just migrated the petshop project I've been working on, works like charm! simple_smile It's back in SVN, and everything is good. simple_smile

Frans Bouma | Lead developer LLBLGen Pro
swallace
User
Posts: 648
Joined: 18-Aug-2003
# Posted on: 15-Apr-2005 14:59:58   

FYI, for those who are migrating VS solutions/projects from one source code control system to another, here's a tool that wipes clean the solution's understanding of it's versioning, allowing you to then move it cleanly into another.

Close everything, mark all files as non-readonly, run this tool... What version control? I don't see any version control. Then check in using your new tool.

http://projectdistributor.net/Projects/Project.aspx?projectId=56

Saved me amazing amounts of headaches.

From the readme:

This utility cleans up Solution directories, for all solutions created with Visual Studio.Net 2003.

It can:

  • Remove links to source code control (Visual SourceSafe, SourceGear Vault, ...)
  • Remove bin, obj, Debug, Release directories
  • Remove *.user files (which can cause file reference problems)
  • Clear the Visual Studio.Net Web Cache (which can also cause Web project compilation problems)

Simply copy the program to your hard disk and run it. Check the options you want and click the "Clean up" button. Make sure that Visual Studio.Net is closed and that all files and directories you wish to delete are not read-only. If necessary, use right-click/Properties on the directory containing your solution to turn read-only mode off.

This utility is freeware; it is provided at no cost and with no guarantees whatsoever. Use at your own risk! Only for Visual Studio.Net 2003 solutions. This utility does not remove source code control links from Visual Studio.Net 2002 or Visual Studio 2005 projects.

Written by Roy Dictus (roy.dictus@gmail.com); see also my blog on .Net development at http://www.dotnetjunkies.com/weblog/roydictus. Feedback is always welcome!

1  /  2