Archived

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

Hellraisr

MS VC++.NET Version Control Question

Recommended Posts

What does everyone here use for Version Control on their gaming projects? I''ve started using Visual SourceSafe, but I was wondering if maybe there is something out there that is better or more suited to game programming?

Share this post


Link to post
Share on other sites
Well, if you mean like a expiry date for a demo then just do this.

When the program is first executed on the system, create a file that records the system''s data, and that day''s date. Then add fifteen days to that date. Then for every execution do something like this:

if (now >= origdateplus15)
cout<< "Sorry but the demo version is outdated....etc."<else:

//code for the game

That should work but if the person reinstalls the game, you would need a system affecting file, that can write a mark on the system that says that this game is outdated on that computer...

Battleguard


Image by FlamingText.com

Share this post


Link to post
Share on other sites
Well what I am referring to is interal version control for my own purposes.


By the way, anyone know if there is a way to make VC++.NET automatically track the version number? This was possible in VB6.

Share this post


Link to post
Share on other sites
I must admit I have never tried Sourcesafe. However, reading about it[1][2] does not leave me with a good impression. Even MS'' own "Best Practices"[3] for VSS give a pretty bad impression of the product.

And of course, there are always the rumors that MS themselves don''t use VSS for any major internal products. But then again, I read this on /., so take it with a bucket of salt.

[1]http://www.highprogrammer.com/alan/windev/sourcesafe.html
[2]http://www.michaelbolton.net/testing/VSSDefects.html
[3]http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnvss/html/vssbest.asp



AnkhSVN - A Visual Studio .NET Addin for the Subversion version control system.

Share this post


Link to post
Share on other sites
hellraisr,

depending on what you''re trying to do in terms of "versioning", you have several options using the .NET framework. i think you''re referring just to your release/build numbers which you can force in VC++.NET by opening up the Solution Properties, look in the Linker folder, and select the General heading. all of your version/build properties are there and i believe "incremental" is set to default.

the other kind of versioning, i''ve never done it using VC++, only C# (my primary langauge). basically it''s when you strongname an assembly or dll and then force other assemblies to use only "keyed" versions of your preference. this eliminates the world of dll hell but is a little tricky the first couple times around. you can read the documentation in VS.NET; it gives a completely detailed explanation of how to do this via the command line or Global Assembly Cache.

hope this helps...

..:: mirirom ::..

Share this post


Link to post
Share on other sites
quote:
Original post by Arild Fines
I must admit I have never tried Sourcesafe. However, reading about it[1][2] does not leave me with a good impression. Even MS'' own "Best Practices"[3] for VSS give a pretty bad impression of the product.

And of course, there are always the rumors that MS themselves don''t use VSS for any major internal products. But then again, I read this on /., so take it with a bucket of salt.

[1]http://www.highprogrammer.com/alan/windev/sourcesafe.html
[2]http://www.michaelbolton.net/testing/VSSDefects.html
[3]http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnvss/html/vssbest.asp



AnkhSVN - A Visual Studio .NET Addin for the Subversion version control system.


Do you run the server on Windows, or just a client?

Share this post


Link to post
Share on other sites
Assuming you are talking about Subversion, and not VSS: I run both on Windows. There are currently three ways to host a Subversion repository:

- The file:// protocol, which requires local file access to the repository files(and Subversion doesn''t play well with shared network drives, so this is essentially a one-man solution).
- svn:// - This is a custom executable using a custom protocol. Up until recently, it didn''t play very well with Windows, since it required fork to be available. It works well in version 0.24 and up, though. svn+ssh:// is the same protocol, only it sets up an SSH tunnel before doing the data transfer.

- http:// - This is a module for Apache 2, mod_dav_svn.so. It communicates with the client using an extension of WebDAV and DeltaV.

I am using the last alternative.

Share this post


Link to post
Share on other sites
I used SourceSafe for a couple of years and while I didn''t experience any big problems with it, I never felt entirely comfortable using it either. The horror stories about database corruption didn''t help, but the main reasons I stopped using it was because I wanted something a little less proprietary and more convenient for multi-platform development.

I think it''s true that Microsoft doesn''t use it for internal development; one reason could be that it doesn''t scale very well for larger projects. Also, development on the SourceSafe product seems to have stopped (only bugfixes since 6.0) so it might not be supported in the future.

I''ve been using CVS for some time, and it works fine once you get used to it. It''s free, works nicely under Unix platforms and TortoiseCVS is a great tool for using it under Windows. CVS have some quirks and lacks certain features, such as versioned renaming, but it''s stable and there''s a large user base ensuring support.

Subversion is an attempt to fix the problems with CVS, and it looks very promising. I''ll wait for it to mature a bit before using it in production, though.

I''ve heard great things about Perforce, but I''ve never tried it. I believe it''s rather expensive.

Share this post


Link to post
Share on other sites
quote:
Original post by Arild Fines
Assuming you are talking about Subversion, and not VSS: I run both on Windows. There are currently three ways to host a Subversion repository:

- The file:// protocol, which requires local file access to the repository files(and Subversion doesn''t play well with shared network drives, so this is essentially a one-man solution).
- svn:// - This is a custom executable using a custom protocol. Up until recently, it didn''t play very well with Windows, since it required fork to be available. It works well in version 0.24 and up, though. svn+ssh:// is the same protocol, only it sets up an SSH tunnel before doing the data transfer.

- http:// - This is a module for Apache 2, mod_dav_svn.so. It communicates with the client using an extension of WebDAV and DeltaV.

I am using the last alternative.



This sounds like it might work well for my purposes. basically what I am wanting to do is have a way for my animator/artist (will also be editing documents) to access the repository through a GUI tool while the database is on my sever. Would TortiseSVN allow him to do this, used along with say, the apache method of connection? Or is there another GUI tool I can use to do this?

Share this post


Link to post
Share on other sites
Yes, TortoiseSVN(which is a Windows Explorer shell extension) would probably work fine for him. There is also another GUI client called RapidSVN, which might be a little more mature at this point. Both these projects(and AnkhSVN) can be found on www.tigris.org.

Furthermore, since mod_dav_svn.so uses WebDAV(Distributed Authoring and Versioning) it is also possible to mount an Apache-hosted repository as a "Web Folder" in Windows Explorer. If you enable AutoVersioning, your designer can treat the repository as just another shared drive. Some content authoring tools also have integrated support for WebDAV(I know at least Dreamweaver does, but I guess you''re not designing a website).



AnkhSVN - A Visual Studio .NET Addin for the Subversion version control system.

Share this post


Link to post
Share on other sites