Non-WTF Subversion Host



  • Anyone have any recommendation on a good subversion host? Preferably one that has decent bug tracking and can also handle large projects later on. Large meaning a few gigs being quite a possibility due to data and artwork.

    Thanks!



  •  svn is free.   Just google "svn server" and a bunch of things come up that you can download and launch to host your own server.



  • @Kermos said:

    Anyone have any recommendation on a good subversion host? Preferably one that has decent bug tracking and can also handle large projects later on. Large meaning a few gigs being quite a possibility due to data and artwork.
    I know that you can shove anything you like into svn, but I'm not sure that shoving artwork and datafiles is the right idea.  It's "version control" and is geared toward source control and config files.  Of course, there's nothing wrong with putting a few pictures into svn that will be necessary to run your app.  Personally, I put jars in for APIs that any developer will need to run or maintain my app.

    In short, version control is for things that can be versioned.  Text files can be easily versioned.  Binary data can't be versioned (ie you can't diff the two binary files and find the differences ... or if you do, they won't make sense to you). For your data and artwork, there's probably a better solution that's more geared toward it.  Even datablobs on a database that is regularly backed up would be better than svn in my opinion.

    Hope I didn't miss anything.  Someone else here probably knows a lot more about svn than me.

    PS I just clicked on the "Powered By Community Server" icon at the bottom of the "Post message" page.  It came up with an error.  Does it normally do that?



  • @belgariontheking said:

    Binary data can't be versioned (ie you can't diff the two binary files and find the differences ... or if you do, they won't make sense to you).
    In svn, it totally can. There's still the question of whether you really need to.



  • @belgariontheking said:

    Binary data can't be versioned (ie you can't diff the two binary files and find the differences ... or if you do, they won't make sense to you). For your data and artwork, there's probably a better solution that's more geared toward it.  Even datablobs on a database that is regularly backed up would be better than svn in my opinion.

    While binary data can't be versioned as per text (although I believe that you can store binary diffs), one of the reasons for having an SCCS is to tag a release. If the binary files that your release depends on are not in your SCCS then you can't really do that.

    So if you put binary files in some other system then in order to reap the benefits of a SCCS you will have to manually create the same functionality. IE manually recreate the 'get', 'commit' and 'tag' functionality and then tie them into the existing SCCS. That seems like a lot of work compared to just dropping binary files straight into the SCCS.

    I have even seen whole development environments dropped into a SCCS so that not only could you ensure you always had a history of the code, you also had a history of the tools used to build that code. The next step beyond that would of course be archiving the OS, but that is not too extreme in some cases.



  • @belgariontheking said:

    ]I know that you can shove anything you like into svn, but I'm not sure that shoving artwork and datafiles is the right idea.  It's "version control" and is geared toward source control and config files.

    n00b.

     

    I use svn for everything necessary for my apps.  Now, if you have graphics that will change frequently, you may want to just add functionality to the app that lets users upload their own.  However, for things like icons, svn is great.  You can have everything stored and backed-up in one place, you get version control for when icons are modified and it simplifies build scripts because you don't have to pull files from several different places. 



  • @belgariontheking said:

    In short, version control is for things that can be versioned.  Text files can be easily versioned.  Binary data can't be versioned (ie you can't diff the two binary files and find the differences ... or if you do, they won't make sense to you). For your data and artwork, there's probably a better solution that's more geared toward it.  Even datablobs on a database that is regularly backed up would be better than svn in my opinion.

    Actually I use subversion for version control with all my Solidworks files, which can be large and are binaries. The point here isn't diff as I don't care between the differences of two files. It's rather "Management decided we aren't going to do the previous ultra-important-omg-world-will-end-if-we-don't design changes and I need to revert 10 hours worth of now useless work back to the previous state". Works beautifully for that!

     



  • @tster said:

     svn is free.   Just google "svn server" and a bunch of things come up that you can download and launch to host your own server.

    Oh yea, I know how to setup my own SVN server. Got my own sitting on a dell poweredge right to my left hand side.

    However, in this case I'm needing a server for a personal project of mine so I can't really use the company server and I don't have a spare system at home to use as a server. Besides, I'd like to be able to access the server from anywhere and also may need to give other people access to it so something hosted online would be better.

     I guess since nobody seems to have any experience with any one particular host I'll just grab one from google and see how it works out. =)



  • @Kermos said:

    @tster said:

     svn is free.   Just google "svn server" and a bunch of things come up that you can download and launch to host your own server.

    Oh yea, I know how to setup my own SVN server. Got my own sitting on a dell poweredge right to my left hand side.

    However, in this case I'm needing a server for a personal project of mine so I can't really use the company server and I don't have a spare system at home to use as a server. Besides, I'd like to be able to access the server from anywhere and also may need to give other people access to it so something hosted online would be better.

     I guess since nobody seems to have any experience with any one particular host I'll just grab one from google and see how it works out. =)

    Why not just use Sourceforge or Assembla?


  • @bstorer said:

    Why not just use Sourceforge or Assembla?

    As far as Sourceforge goes, while this is a personal project of mine it isn't exactly open source so I don't think Sourceforge would be appropriate. 

    Assembla I haven't heard about yet so I'll go check that out. Thanks =)



  • @morbiuswilters said:

    I use svn for everything necessary for my apps.  Now, if you have graphics that will change frequently, you may want to just add functionality to the app that lets users upload their own.  However, for things like icons, svn is great.  You can have everything stored and backed-up in one place, you get version control for when icons are modified and it simplifies build scripts because you don't have to pull files from several different places. 
    Absolutely. 

    I'm trying to separate the application from the data.  Icons, etc should go in your svn if they're part of your app.  It sounds like the artwork is a part of the data, which I don't believe benefits hugely from being versioned in svn.



  • @belgariontheking said:

    I'm trying to separate the application from the data.  Icons, etc should go in your svn if they're part of your app.  It sounds like the artwork is a part of the data, which I don't believe benefits hugely from being versioned in svn.
     

    The artwork thing depends on the sitaution a bit.

    If you go out and buy premade artwork or are otherwise supplied with artwork that won't change I agree, it won't benefit from being in SVN a lot. Well, there is the benefit that if you need to load the project onto another computer, you can just grab everything from SVN in one go, convenient. 

    However, when you're creating artwork, versioning is just as useful as it is for code. The ability to go back to a prior version with nothing more than a couple of mouse clicks or revert changes when you realize what you're doing isn't going to work out can be an absolute lifesaver at times.

    In my case, the second applies as I've always been a major fan of game programming and I started working on a project in my spare time. So I'll have to do both code and artwork which means I need versioning for both. =)



  • @Kermos said:

    In my case, the second applies as I've always been a major fan of game programming and I started working on a project in my spare time. So I'll have to do both code and artwork which means I need versioning for both. =)
    I would suggest two svn repositories then:  one for your app and one for the artwork.  The app may be done in a few months, but you will probably be creating artwork to show in the app for some many years.  That way, in the future, if you want to give the app to a friend, open source it, or sell it, the job is much simpler and you don't have to remove all your artwork from your app.



  • @belgariontheking said:

    @Kermos said:

    In my case, the second applies as I've always been a major fan of game programming and I started working on a project in my spare time. So I'll have to do both code and artwork which means I need versioning for both. =)
    I would suggest two svn repositories then:  one for your app and one for the artwork.  The app may be done in a few months, but you will probably be creating artwork to show in the app for some many years.  That way, in the future, if you want to give the app to a friend, open source it, or sell it, the job is much simpler and you don't have to remove all your artwork from your app.

     

    True, definitely not a bad idea!



  • @Kermos said:

    @belgariontheking said:

    @Kermos said:

    In my case, the second applies as I've always been a major fan of game programming and I started working on a project in my spare time. So I'll have to do both code and artwork which means I need versioning for both. =)
    I would suggest two svn repositories then:  one for your app and one for the artwork.  The app may be done in a few months, but you will probably be creating artwork to show in the app for some many years.  That way, in the future, if you want to give the app to a friend, open source it, or sell it, the job is much simpler and you don't have to remove all your artwork from your app.

     

    True, definitely not a bad idea!

    You may want to check out svn externals.  It allows you to create directories in one project that point to other directories or even other repositories.  It makes it simple to keep a separate repo that is still visible in your normal directory hierarchy.



  • Setup a local SVN repository if this is just personal. Then backup to whatever you backup to now.

    If you are going to collaborate then take a look at Mercury (Hg) which is kindof a peer-to-peer SVN.



  • There are countless commercial subversion hosts out there; some provide a free account but if you need lots of disk space for your repository, it will probably cost money.

    Tigris.org used to have a nice list of subversion hosts, but they removed it recently. I could, shamelessly, promote my own subversion host, which aims for the European market but has hundreds of users in North-America as well. And yes, there is a free plan available there. If you want to make it cheap (and if you don't need support...), Dreamhost offers Subversion with each shared hosting account, which could be interesting.

    Good luck!

    Thijs Leydens


Log in to reply