topbanner_forum
  *

avatar image

Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length
  • Tuesday December 10, 2024, 9:05 pm
  • Proudly celebrating 15+ years online.
  • Donate now to become a lifetime supporting member of the site and get a non-expiring license key for all of our programs.
  • donate

Author Topic: Versioning Systems, for Small Enterprise ...  (Read 13928 times)

barney

  • Charter Member
  • Joined in 2006
  • ***
  • Posts: 1,294
    • View Profile
    • Donate to Member
Versioning Systems, for Small Enterprise ...
« on: February 28, 2010, 12:00 AM »
Folk,

I've perused several threads here on the subject matter, as well as general search, but nothing I've seen to date seems to fit my needs/wants.  I'm about to get back into production trading code - PHP/HTML/CSS/JS/etc. - for money.  In view of that, I need to set up some kind of versioning repository - learned that lesson a couple of decades ago.  Back then, it was VB.  I started with v0.9x, kept up until v6.0.  At the time, I was using MS Visual Source Safe, but even that was overkill - I was an independent developer, not part of a team.

Now I need to set up something that will let me keep track of my errors - or progress, if any.  Mostly I see CVS/SVN, but that seems like real overkill.  However, I can't seem to find anything small   :tellme:.  I'll be the only one coding, and the whole purpose of this is to:  a; recover when I really screw up, and b; possibly fork if I come up with a really nifty concept.  Since the major part of my work will be done on Windows 7 - some Linux, but mostly Win - I'd prefer a GUI interface.

This will, by preference, be installed on a NAS drive, so SMB compatibility would be nice (for the Linux), but not a game-killer if not available. 

So, the question is whether any of you know of any such beastie?

mwb1100

  • Supporting Member
  • Joined in 2006
  • **
  • Posts: 1,645
    • View Profile
    • Donate to Member
Re: Versioning Systems, for Small Enterprise ...
« Reply #1 on: February 28, 2010, 12:41 AM »
Particularly since you'd like the system to work with Linux as well as for Windows, I'd go with SVN - it doesn't have to be complex.  If you're the only person who's going to be accessing the repository you can just go for a repository that uses the filesystem as the repository 'database'.

If you're the only person who's going to be accessing the repository you only need a subversion client. TortoiseSVN is a popular one for Windows that integrates into Explorer, but there are quite a few you can chose from - any one will do.

As long as the client can access the files that make up the repository (whether they're on you local drive or on a network share), you'll have no problem.  You only need to set up a Subversion server if you're going to access the repository over something like HTTP or SSH or you want fine control over how multiple users might access the repository.  But if you don't need any of that, the repository is just a location in your filesystem that the Subversion client uses to keep track of the versioning data.

Here's a few articles on single-user SVN setups:

  - http://www.guyrutenb...ory-home-repository/
  - http://www.fredshack...ocs/tortoisesvn.html
  - http://shreevatsa.wo...n-for-a-single-user/

barney

  • Charter Member
  • Joined in 2006
  • ***
  • Posts: 1,294
    • View Profile
    • Donate to Member
Re: Versioning Systems, for Small Enterprise ...
« Reply #2 on: February 28, 2010, 01:00 AM »
Thanks, I'll check those links ... never occurred to me to search for single-user setups for CVS/SVN:  I have seen a number of good comments on TortoiseSVN.

Quick question, may be answered in one of the links.  Do you know whether it would be possible to install on a thumb drive, as opposed to NAS?  More I think about it, the more appealing that becomes.  Portability would be a lot more convenient than GoToMyPC or equivalent - cheaper, too  ;).

'Preciate the response.

tomos

  • Charter Member
  • Joined in 2006
  • ***
  • Posts: 11,964
    • View Profile
    • Donate to Member
Re: Versioning Systems, for Small Enterprise ...
« Reply #3 on: February 28, 2010, 05:39 AM »
have you seen this thread-post (link below) and following posts. I'm no expert so cant really comment on these in relation to your request - but may be helpful!

https://www.donation....msg149354#msg149354
there's a discussion of SVN, Mercurial, FileHamster. Mercurial/TortoiseHG seems popular


[edit] and a dc thread: Resources for learning Mercurial? [/edit]
Tom
« Last Edit: February 28, 2010, 10:58 AM by tomos »

mwb1100

  • Supporting Member
  • Joined in 2006
  • **
  • Posts: 1,645
    • View Profile
    • Donate to Member
Re: Versioning Systems, for Small Enterprise ...
« Reply #4 on: February 28, 2010, 11:55 AM »
Do you know whether it would be possible to install on a thumb drive, as opposed to NAS?

Interesting question - I don't know how well that would work. I'd do a bit of research before committing to it.

On the other hand, if you want to be able to get to your repository from anywhere, there are several cheap Subversion hosting outfits (there might even be some free ones left), and Dreamhost includes SVN hosting in their webhosting package. This might up the complexity a bit, but probably not much since the setup of the server side is already done for you. And you'll be able to get to your sources from anywhere - the host would generally also provide a web interface so you could get to files even from a machine that didn't have an already installed SVN client.

Here's a bunch of links to cheap SVN hosting (though note that I haven't used any of these - it's just a bunch a of links I collected from Google, so check them out before using):


I'm currently using Dreamhost for my personal SVN stuff, but I consider what I have in Dreamhost to be a convenience that I could live with losing if push came to shove and Dreamhost did something awful. I have the sources locally, too - all I'd lose is the history, which for my personal stuff isn't too big a deal.  I'm not sure I'd trust Dreamhost or any of the above with my business repository without a backup - so make sure that if you do set up a hosted SVN service that they let you easily backup the repository. I'm pretty sure I can do this with Dreamhost, I just haven't looked into it and I'm not sure how easy it would be.

« Last Edit: February 28, 2010, 11:59 AM by mwb1100 »

f0dder

  • Charter Honorary Member
  • Joined in 2005
  • ***
  • Posts: 9,153
  • [Well, THAT escalated quickly!]
    • View Profile
    • f0dder's place
    • Read more about this member.
    • Donate to Member
Re: Versioning Systems, for Small Enterprise ...
« Reply #5 on: February 28, 2010, 04:07 PM »
barney, it might take a bit getting used to using a VCS, but even for a single-person "team" it's not overkill. Yes, it's going to be slightly cumbersome remembering to do commits, doing them often enough, writing commit messages etc... but after a month it'll be pretty automatic for you, and you'll thank yourself plenty when you screw up, or need to backport fixes for a released  branch :)

I've been using subversion for quite a while myself, and it's a pretty decent system - but I'd suggest you pick up a DVCS instead, probably opting for Mercurial (git really works best if you're willing to mock around in a command prompt, and I sense that's probably not what you're after :)).

A Distributed VCS might sound even more overkill than a normal VCS, considering you're a single guy, but there's a couple of advantages. One is that local commits are very fast, whereas subversion takes a few seconds even on a gigabit lan. Branching and merging are faster and work better. And (at least for git, but I think mercurial as well) you have a single repository folder, whereas subversion sticks a .svn folder in every subfolder of your tracked project.
- carpe noctem

barney

  • Charter Member
  • Joined in 2006
  • ***
  • Posts: 1,294
    • View Profile
    • Donate to Member
Re: Versioning Systems, for Small Enterprise ...
« Reply #6 on: February 28, 2010, 05:15 PM »
Oh, no, that's not a problem.  I used VSS for years, then migrated to WinCVS (?) when I left MCI.  The overkill to which I referred is the overhead of the revision system.  I'd just like something a bit less resource intensive than [I assume] the current products are.  I could always go back to WinCVS, but I was never wild about that implementation, and the more I ponder, the more I like the idea of something on a thumb drive.  I'm trying at the moment to set up SVN that way, with RapidSVN Portable as a client, although it appears that Mercurial might be better suited, or perhaps Bazaar.

Yeah, on line repositories would work - I could even set one up on my own site - but I might not be always on line when I want to work.  On line strikes me as better suited for backups & storage.  In that light, a DVCS would make even more sense, but methinks I need to walk before I start any marathons <chortle />.

Oh, the other reason for wanting a thumb-drive installation is that I won't always know what OS I'll be working on, so server-based access from a thumb drive would seem to be a practical approach.  I will, of course, live with whatever constraints come to be, but that doesn't mean I can't push the limits a bit <chuckle />.

Edit:  that overhead mentioned might just be due to the VSS experience - never had cause to check it with WinCVS.
« Last Edit: February 28, 2010, 05:17 PM by barney »

Eóin

  • Charter Member
  • Joined in 2006
  • ***
  • Posts: 1,401
    • View Profile
    • Donate to Member
Re: Versioning Systems, for Small Enterprise ...
« Reply #7 on: February 28, 2010, 06:29 PM »
Well I consider the msysgit and TortoiseGit combo to be really intuitive and easy. Definitely worth looking into.

f0dder

  • Charter Honorary Member
  • Joined in 2005
  • ***
  • Posts: 9,153
  • [Well, THAT escalated quickly!]
    • View Profile
    • f0dder's place
    • Read more about this member.
    • Donate to Member
Re: Versioning Systems, for Small Enterprise ...
« Reply #8 on: February 28, 2010, 07:30 PM »
Resource intensive?

Both subversion and git (and, I wager, mercurial and bazaar) only take processing power and memory when you're doing versioning operations (the Tortoise* shell integration family does keep a caching process running, but it's overhead is negligible, and it helps speed stuff up). The disk overhead isn't really bad either, as all versioning systems try to minimize the redundancy - some systems store changesets (with the occasional full-file snapshot to speed things up), whereas git stores all files in their entirety, but only has one copy of each unique file content (based on SHA-1 hash of files). Disk space is cheap anyway :) (and you probably aren't going to have databases or .psd graphics under version control? :)).

Be careful with thumb drives, and definitely do not use one as the main source of your repository. There's no telling which quality flash memory they contain, they get lost easily, the electronics might fry, et cetera. Having a thumbdrive as an additional (backup) location isn't a bad idea, though - and this is probably easier to achieve with a DVCS then a traditional CVCS.

In that light, a DVCS would make even more sense, but methinks I need to walk before I start any marathons <chortle />
Probably easier to start with a DVCS than learning and then unlearning a CVCS... for single-developer usecases, the differences aren't that big, really - basically, commits go to local storage, and if you want serverside you "push" :)
- carpe noctem

barney

  • Charter Member
  • Joined in 2006
  • ***
  • Posts: 1,294
    • View Profile
    • Donate to Member
Re: Versioning Systems, for Small Enterprise ...
« Reply #9 on: February 28, 2010, 08:37 PM »
f0dder,

The more you write, the more I think I'm approaching this from the wrong vector.  'Course part of that could be because I'm in the midst of reading installation/usage instructions  :-\.

When I was using VSS, it had a significant footprint, running in the background.  But, as I said, that was years ago.  And -also years ago, just not so many <chuckle /> - there was a footprint from WinCVS, or so it seemed.

However, after reading the instruction set for SVN and your comments on learning, then unlearning/relearning, methinks I've adopted the wrong approach.  Luckily, that is something that is relatively easy to change at this stage.

As you say, disk space is cheap, and I have a lot of it free, for the nonce.  My use of the thumb-drive is not for long-term storage, but for convenience.  If I can take it (the files) with me, I'm not reliant upon a network being available when I need it - or said connection being fast enough to be worthwhile.  Long-term storage will be on both a local hard drive and on the NAS drive, as well as periodic backups to DVD.  I currently use SyncBackSE to perform data backups, including the thumb-drive, on a daily basis, with system [restore] backups weekly.  So I'm not too concerned about the thumb-drive data being lost.

<Sigh />  Looks as though I need to change directions and start researching DVCS entities.  Hopefully I could set the VCS primary on the server, then the DVCS on the thumb.  Oh, well ... back to search <ouch />.  Prolly Mercurial & Bazaar 1st, then wherever the engines take me.

Thanks!

widgewunner

  • Member
  • Joined in 2009
  • **
  • Posts: 93
    • View Profile
    • Donate to Member
Re: Versioning Systems, for Small Enterprise ...
« Reply #10 on: February 28, 2010, 08:52 PM »
I've been programming a very long time (can you say "punch cards"?) but have only recently started using source control software (all of my projects were solo and I'd simply use periodic zip archives as backups). After recently doing a bit of research on the subject I decided on Git for use on my own local system. CVS and SVN both litter your source tree by adding their own CVS and .svn subdirectories into every single directory in your tree. I found this to be very annoying! Git adds only one directory and the entire history of the project (the repository) is kept in this one folder. The design of Git is such that the integrity of all your source code, (and its entire history) is guaranteed to be good because every object is stored and referenced using its SHA1 hash. If any single bit has changed in the repository (due to data corruption or what-not), you will know because the SHA1 hashes will change. It is also very fast and has excellent data compression. However, the msysgit distribution for windows (which like cygwin includes a mini-linux bash environment), is probably not appropriate for installation on a flash drive. The Gitk GUI tool for viewing the changes to the source code history is very cool.

It was this talk given by Linus Torvalds that got me interested in Git in the first place. Note that when Git first came out it was reputed to be difficult to use, but that has all changed - it has since matured and is now as easy to use as CVS and SVN with excellent online documentation available.

JavaJones

  • Review 2.0 Designer
  • Charter Member
  • Joined in 2005
  • ***
  • Posts: 2,739
    • View Profile
    • Donate to Member
Re: Versioning Systems, for Small Enterprise ...
« Reply #11 on: February 28, 2010, 10:15 PM »
I'm not a programmer, but it seems like if you don't want to deal with the hassle of maintaining your own SVN server, go with a hosted solution. The nice thing about hosted solutions is they take care of software and security updates for you, plus your code is available anywhere there's a 'net connection (which might address your thumb drive desires). A good one will also use proper security, so there's no concern about that (provided you use secure passwords of course :D). Another nice feature that many offer is a project management tool like Trac or Redmine. Even if it's just you coding, this can be useful to have, especially if your product is public and will have a userbase that you might want to give you feedback or even file bugs. Trac and Redmine in particular can allow you to open up the bug submission process to whomever you want, so you can have your testers and customers/users giving direct feedback.

My 2 cents (again, not a developer myself :D).

- Oshyan

f0dder

  • Charter Honorary Member
  • Joined in 2005
  • ***
  • Posts: 9,153
  • [Well, THAT escalated quickly!]
    • View Profile
    • f0dder's place
    • Read more about this member.
    • Donate to Member
Re: Versioning Systems, for Small Enterprise ...
« Reply #12 on: March 01, 2010, 01:01 AM »
I wouldn't feel comfortable using a hosted solution for subversion - if something goes wrong, *b00m*, there goes your entire version history. With a DVCS where you've got a full local copy of the repository, matters are different :)
- carpe noctem

barney

  • Charter Member
  • Joined in 2006
  • ***
  • Posts: 1,294
    • View Profile
    • Donate to Member
Re: Versioning Systems, for Small Enterprise ...
« Reply #13 on: March 01, 2010, 09:06 PM »
@JavaJones,
@f0dder,

I tend to agree with f0dder on this, but I've some ulterior motives, as well.

While I'll be the mainstay as far as getting this mishmash set up, at some point my client's folk will be taking over the maintenance, upgrades, changes, whatever.  At that time, my only activity will be responding to, "Help!  It broke!"  At that point, it would be much easier to check the archives to find out where the design forked into disaster.  Granted, I'll have to inculcate a willingness to use whatever VCS system is installed, but that's gonna be easier than trying to get some inexperienced coder to remember what was done.  Who knows?  It might even work <chortle />.

Oh, BTW, the primary repository will be on one of my sites, as well as backed up to my local system server.  I may be dense on VCS systems, but backup has saved my financial bacon on more than one occasion, and I'll not be lax about it on this one.

As for getting 'em to use the revision system, learned that trick at MCI.  I purposely created a faulty fork of a departmental application - it never went public, but was invaluable in showing VSS' utility to the young lady that took over maintenance after I finished a task - presented it to her as job security, and it worked <chortle />.

JavaJones

  • Review 2.0 Designer
  • Charter Member
  • Joined in 2005
  • ***
  • Posts: 2,739
    • View Profile
    • Donate to Member
Re: Versioning Systems, for Small Enterprise ...
« Reply #14 on: March 01, 2010, 10:18 PM »
Most of the decent online hosters for this sort of thing offer a backup funtion. SourceRepo.com which my company is using has both automatic backup and a manual backup option. I wouldn't strictly rely on the automatic backup, but a once weekly manual backup for a not-too-active code base is fine.

Glad you found a solution. :)

- Oshyan

drich291

  • Supporting Member
  • Joined in 2008
  • **
  • default avatar
  • Posts: 1
    • View Profile
    • Donate to Member
Re: Versioning Systems, for Small Enterprise ...
« Reply #15 on: March 08, 2010, 05:18 PM »
I use CS-RCS for my product development.  Since I am a single developer, I can use the free version.  Check it out.

http://www.component...re.com/products/rcs/

f0dder

  • Charter Honorary Member
  • Joined in 2005
  • ***
  • Posts: 9,153
  • [Well, THAT escalated quickly!]
    • View Profile
    • f0dder's place
    • Read more about this member.
    • Donate to Member
Re: Versioning Systems, for Small Enterprise ...
« Reply #16 on: March 09, 2010, 01:04 AM »
I use CS-RCS for my product development.  Since I am a single developer, I can use the free version.  Check it out.

http://www.component...re.com/products/rcs/
People still using RCS in 2010? Unbelievable :)
- carpe noctem

nevf

  • Charter Honorary Member
  • Joined in 2005
  • ***
  • Posts: 115
    • View Profile
    • Clibu, accessible knowledge
    • Donate to Member
Re: Versioning Systems, for Small Enterprise ...
« Reply #17 on: March 11, 2010, 06:52 PM »
If you are still interested in Subversion I wrote: "Get up and running with TortoiseSVN and Subversion in 15 minutes." at http://blog.surfulat...rsion-in-15-minutes/
Neville Franks, Clibu a better way to collect, use, manage and share information across all devices.

f0dder

  • Charter Honorary Member
  • Joined in 2005
  • ***
  • Posts: 9,153
  • [Well, THAT escalated quickly!]
    • View Profile
    • f0dder's place
    • Read more about this member.
    • Donate to Member
Re: Versioning Systems, for Small Enterprise ...
« Reply #18 on: March 12, 2010, 05:23 AM »
IMHO it's best skipping svn and moving directly to a DVCS - if you're only going to use a local repository, there's hardly any difference from the subversion workflow. And TortoiseGit makes it just as easy.

Don't get me wrong, subversion is a decent system and I've used it for years, but DVCS are better, and today they're mature enough for general consumption.
- carpe noctem