Using SCM for Spectrum projects

edited June 2014 in Development
I wonder if anyone use SCM ( CVS, SVN, GIT etc. ) for Zx Spectrum projects.
It may seem as overkill for a small project but my friend argue that with SCM he changes code more agresively as he knows there is easy way to rollback.

So what you do ?
Post edited by catmeows on

Comments

  • edited June 2014
    You mean some version control system? So I could automatically create a backup of my code from a certain time and restore it later if I want to cancel my changes.

    Well actually I have never used it, neither for Spectrum nor professionally.
    Some people told me that it is very useful but it was always enough for me just to make manually a backup of my files on a pendrive (in case my hard disk failed) every few days.
  • edited June 2014
    Ralf wrote: »
    You mean some version control system? So I could automatically create a backup of my code from a certain time and restore it later if I want to cancel my changes.

    Well actually I have never used it, neither for Spectrum nor professionally.
    Some people told me that it is very useful but it was always enough for me just to make manually a backup of my files on a pendrive (in case my hard disk failed) every few days.

    I use the free version of TFS
    http://www.visualstudio.com/en-gb/products/visual-studio-online-basic-vs

    GIT appears to be the de facto standard now and as TFS supports GIT I get best of both worlds, I certainly wouldn't use anything other than one of these two.
  • edited June 2014
    Korinel wrote: »
    I use the free version of TFS
    http://www.visualstudio.com/products/visual-studio-online-overview-vs

    GIT appears to be the de facto standard now and as TFS supports GIT I get best of both worlds, I certainly wouldn't use anything other than one of these two.

    I use the same for my Windows/WP/Windows Store projects. I've not used anything for Spectrum code yet, but would like to eventually. Saying that, backing up the data to multiple places (pendrive/online/another HDD) tends to work fine at the moment.
    So far, so meh :)
  • edited June 2014
    Bomb Munchies was final released at version 600. Backup source code saved to 3 different devices, I still have access to the previous versions of the source code (and I can shake my head and laugh at how some bits were written). Currently at version 755 with many many under the hood inprovements in speed, better writing of routines and saving those bytes, along with some new features and graphics.

    Before I make any serious changes to a block of code I copy it to notepad, then alter the
    real code, if it fails to work then the original code can be copy/paste back in and resaved.
  • edited June 2014
    I just keep saving files with an incrementing version number in the title. It can get complicated if it's a project with lots of links, but I find that's rare on Speccy development. If it's a more complex project, then I just ZIP the lot and drag it to the external drive.

    Version control tools always seem to me more trouble than they're worth - especially the one we have at work. I seem to spend more time faffing about with raising and closing task numbers for checking in updates than I do writing code.
    Joefish
    - IONIAN-GAMES.com -
  • edited June 2014
    All my projects are in svn repositories on my server, but I have git installed too. I just have too much momentum to change to git at the moment.
  • edited June 2014
    joefish wrote: »
    Version control tools always seem to me more trouble than they're worth - especially the one we have at work. I seem to spend more time faffing about with raising and closing task numbers for checking in updates than I do writing code.

    Thing is, they get progressively more complex and fiddly when more people are working on code together as you have to handle all those things, but they're also essential to avoid everyone just breaking everything with every change. Imagine the chaos if a huge 10 million line project was being edited off one copy of source and backed up to zip every now and then :lol:

    For a small project with one or maybe a couple of developers you don't need to use every feature of the system. Just check in changes often and with reasonably detailed commit messages and 90% of the time it's just an easy way of keeping incremental backups that involves so little effort you can do it as often as you recompile.
    The great advantage comes when you break something but aren't sure why, or you realise you've gone down a blind alley somewhere and have all the tools to do diffs of different revisions of source etc at your fingertips.
  • edited June 2014
    I copy my files on to Google drive then move them to a working folder. That way I can work from home or at work and have a back-up in multiple places. Very handy the other day when TommyGun trashed loads of my files :(
  • edited June 2014
    Oh man.. I couldn't work without source control. Not only is it just not worth the risk, but it's also makes things easier. I've used lots of different source control packages over the years and always found them a bit awkward. But then a couple of years ago I started using Mercurial (also known as Hg) with Tortoise Hg as a front end. It's safe to say that it's changed the way I do software development. My repositories are hosted online on BitBucket, which is free for small teams. We also use Mercurial and BitBucket at work now (obviously with a paid account) and it's amazing how well it scales from a single coder with a few source files to big commercial projects.

    Intro to Mercurial: http://hginit.com/
    Tortoise Hg: http://tortoisehg.bitbucket.org/
    BitBucket: https//bitbucket.org
  • edited June 2014
    Git via Github. With something as complex as SE Basic IV, it can be several versions down the line before I realize I've broken something, so being able to roll back to any specific point and step through changes is a must.
  • edited June 2014
    joefish wrote: »
    Version control tools always seem to me more trouble than they're worth - especially the one we have at work. I seem to spend more time faffing about with raising and closing task numbers for checking in updates than I do writing code.

    If that's the case, you are either using CVS/SVN at work and not Git, and/or your work's branch model is dreadful.

    A good branch model and Git would make your life so much easier, and also protect you from mistakes and wasting valuable time, if it doesn't then the VCS is inadequate and/or the branch model is wrong.

    guesser wrote: »
    All my projects are in svn repositories on my server, but I have git installed too. I just have too much momentum to change to git at the moment.

    Git is an order of magnitude better than SVN, make the change! For private repos BitBucket is free, Github is obviously free for public ones, and if you don't like the command line try something like SourceTree (obviously only if you have Windows/Mac).



    For anyone who writes any code, and doesn't use a VCS, just ask yourself the following questions and if you answer yes to any of them you should spend a short amount of time learning the basics of Git and you'll never go back...
    • Have you ever created an archive of your source code when you made a new version?
    • Have you ever switched between versions of your code trying to find when something broke?
    • Have you ever compared one version of your source with another?
    • Have you ever started adding a feature but abandoned it?
    • Have you ever needed to bug fix an older release?
    • Have you ever backed up your code to a remote location?
    • Have you ever been unable to release a new version because an unfinished feature is holding everything else up?
    • Have you ever had to manually add someones changes to your code?
    • Have you ever needed to work with other people on your code base?
  • edited June 2014
    RobeeeJay wrote: »
    • Have you ever created an archive of your source code when you made a new version?
    • Have you ever switched between versions of your code trying to find when something broke?
    • Have you ever compared one version of your source with another?
    • Have you ever started adding a feature but abandoned it?
    • Have you ever needed to bug fix an older release?
    • Have you ever backed up your code to a remote location?
    • Have you ever been unable to release a new version because an unfinished feature is holding everything else up?
    • Have you ever had to manually add someones changes to your code?
    • Have you ever needed to work with other people on your code base?

    Yep, Yep, Yep, Yep, Yep, Yep, Yep, Yep, and Yep, :D hehe
    So far, so meh :)
  • edited June 2014
    polomint wrote: »
    Yep, Yep, Yep, Yep, Yep, Yep, Yep, Yep, and Yep, :D hehe
    Ditto!!!
    I wanna tell you a story 'bout a woman I know...
  • edited June 2014
    RobeeeJay wrote: »
    Git is an order of magnitude better than SVN
    It's different, and if I understood it at all I'd probably agree, but I understand SVN :)
    RobeeeJay wrote: »
    make the change!
    Um, No :p
    I might use Git for future projects, maybe. I'm not changing everything from a system that works find for no reason though that's mental.
    RobeeeJay wrote: »
    For private repos BitBucket is free, Github is obviously free for public ones, and if you don't like the command line try something like SourceTree (obviously only if you have Windows/Mac).
    I run my own subversion server, I would do the same for Git. I have TortoiseSVN and TortoiseGit installed on this PC for shell integration etc.


    I certainly agree that using version control of some sort is a must, it just makes everything easier. I used to think the same way as some people commenting here do and kept everything with multiple datestamped folders and zips because that was "easier".
    I installed SVN to check out the spectranet sources and realised what a fool I'd been to dismiss the idea before :)
  • edited June 2014
    I'm not working on anything complex enough to require proper SCM tools at home, so simple dated zip backups do it for me.

    I do use SVN and ClearCase at work, so if I ever needed to I'd use SVN out of familiarity.

    B
    The Spectrum Resuscitation Thread - bringing dead Spectrums back to life
    zx-diagnostics - Fixing ZX Spectrums in the 21st Century (wiki)
    Sinclair FAQ Wiki
  • edited June 2014
    I'm currently using Git by way of BitBucket for Zero. The main reasons are to keep a track of all the changes as I seem to break a lot of stuff between revisions and to have them stored in some place other than my hard drive. :D
Sign In or Register to comment.