# Time Machine vs Source Control?

Finally got convinced to start using some kind of version control for my code instead of zipping down a copy of the project at the end of each day.

Downloaded Tortoise SVN and used it to create a repository localy on my hdd. I've been using it for 2 days now but I have to say that using it is actually more hassle than just copying the project manually in explorer. Sure, you only store incremental changes but with the cheap disks of today I can't really say that's an argument when you only have small projects. I haven't realy found a quick way to browse the older versions of my files eighter.

What I want is an infinite undo that is completely transparent while I code, if I save the file I want a backup. I don't want to check out, check in and don't even get me started on moving files. I haven't tried Time Machine for OS X but it looks like it's exactly what I'm looking for.

Does such a program exist for windows? Preferably free and with some kind of tagging-system so I can tag a timestamp when the project is working etc.

Maybe should add that I mostly work alone on a single computer.

Update: Some of you asked why I want backup. Since I work alone it's mostly to allow me to quickly hack up a solution without worrying that something will screw up.

-

## migrated from stackoverflow.comApr 30 '10 at 17:11

This question came from our site for professional and enthusiast programmers.

The main difference between SCM and Time Machine is that with SCM you explicitely commit and you can retrieve all of your commits whereas with Time Machine backups are automatic (hourly) and some get lost with time: only one backup per week is kept forever (and you don't choose which one). –  mouviciel Feb 18 '09 at 16:24
I think an auto commit on every build that completes without errors, plus a lable whenever the unit tests pass could be good on a local branch for a lot of programmers –  Ian Ringrose Dec 16 '09 at 16:41
The problem with any version control, is that if you are the only developer on a probject, it is very hard to stop files you have not added to the version control system. Having a seperate build server works, but is a lot more to set up. Just backing up ALL files can be safer. –  Ian Ringrose Dec 16 '09 at 16:42

I think that you are really underestimating the benefits of source control. As Dustin pointed out, there's branching, merging, and sharing. Also, using a source control system can let you easily figure out when each line in your code was last changed. SVN can also track the history of files even if they are renamed or moved to a different directory. Merging can even solve problems even if you are only 1 developer, as you can work on your desktop, laptop, and other computers without having to worry about overwriting changes.

-

That would be Auto-Versioning (to stay with Subversion):

Autoversioning is a feature whereby generic WebDAV clients can write to a DeltaV server (like mod_dav_svn), and the server performs commits silently in the background. This means that if you use Apache httpd as your Subversion server, then most modern operating systems can mount the repository as a network share, and non-technical users get "transparent" versioning for free. (Of course, technical users can still use Subversion clients to examine repository history.)

-
Definitely a good answer and a solution similar to what the OP wants, regular backups without explicit commits. –  whatnick Sep 24 '09 at 14:47

Don't confuse backup solutions with version control. They are both important but have different purposes. What you should really be doing is using version control (svn, cvs, mercurial, git, whatever) and having that automatically backed up somewhere else besides your HDD, preferably off-site (paid host or S3). Or go 100% remote and find someone to host your SVN repo. I would suggest Unfuddle. You can set up a free SVN repo there without too much trouble.

Bite the bullet and use SVN. It might not be as easy as what you're used to, but when you have to do a very specific rollback or compare the changes between files, you'll be glad you did.

-

Check out FileHamster @ http://www.mogware.com/FileHamster/ . It automatically backups your files as revisions everytime they change.

-

Full Disclosure : I work for Altaro Software.

If you want a Time Machine for Windows then get on the 'Oops! Backup' BETA list

We are a new software company Altaro Software and we are developing a software backup product / version control product called 'Oops! Backup'. Oops! Backup is a hybrid between a traditional backup product and a lightweight version control system. Oops! Backup automatically tracks changes to documents, photos and other files and allows you to backtrack to any point in time. To a certain extent it's the equivalent of Time Machine for Windows.

Please note that I said lightweight version control - this is not a product that is meant to replace a proper version-control product. Our developers use SVN and Oops! Backup at the same time. They use VSN for proper version control with checkin/out features but they also use Oops! Backup for the Oops moments that they sometimes get and need to quickly find a previous file version without having to go through a whole checkout process.

We invested a lot in user experience AND eye candy - as we understand that eyecandy does NOT imply user experience.

We will be going into BETA soon and are looking for BETA testers - anyone willing to give it a try check out http://www.altaro.com/download.php. On these page you can also see product screenshots.

Your opinions and constructive criticism would be greatly appreciated (would love to hear the bad stuff ... more than the good stuff)

As I said earlier - Oops! Backup does not replace the need for a proper version control product - but it compliments it. It can be used as a way to version control but then you won't have checkin/out and the branching would have to be done manually by creating a new folder.

Sorry for the plug!!

David Vella - david@altaro.com

-

A solution that is very much like Time Machine was presented in German c't magazine some time ago. While the article itself is available for 60cents the scripts themselves are free: http://www.heise.de/ct/ftp/06/09/126/

Basically it uses rsync to backup your data to an external NTFS formatted drive. With each new backup it only stores new files to the backup disk, but creates hardlinks to everything else. Effectively you will see a complete folder structure for each and every backup, but only use the space needed for the first full backup + any changes that come later.

It's not as fancy as Time Machine, but it is the same technology (Time Machine uses rsync as well, as far as I know) under the covers.

-

Time Machine is a somewhat ordinary backup / restore solution. Use any Windows backup tool with automated daily incremental backups and you have pretty much the same. However, even if it is possible to restore previous (daily) states it may not the fastest solution.

-

SVN isn't very effective for solo developers. Check out BZR. I use BZR for all my personal projects and my home directory, use SVN only for the big work project.

-
"SVN isn't very effective for solo developers". That's a pretty blanket statement don't you think? –  mwjackson Nov 9 '08 at 9:37
jacko, educate yourself to the alternatives and you'd agree. –  Dustin Getz Nov 9 '08 at 16:08
phil, there's always a local copy of the repository to make everything fast and to avoid permissions problems, but optionally pushes/syncs to remote anything (share, website, ftp, probably more) if/when you need to work with a team. read the website. –  Dustin Getz Nov 9 '08 at 16:16

Genie Timeline 2.0 is out as of last week.

I know, I know, "yet another timeline plug!" ... but it's not.

Timeline 2.0 has been completely rewritten, and so far, the general consensus on the web has been very positive.

Best of all, almost all the features are available in a new free edition of Genie Timeline.

Specifications of Genie Timeline 2.0 Free: http://www.genie-soft.com/Free_products/free_timeline.aspx

The paid versions of the product add encryption, compression, and auto-purge of older backups.

DISCLOSURE: I was a project leader on version 2.0

-

What are you wanting the source control/multiple backups to do?

There's two reasons for source code control in my view - configuration management, and protection against developer finger trouble/stupidity (much evidenced by me). If the latter is the issue, then the suggestions below (or FileHamster as recommended in another answer) will do the job.

If as Dustin Getz suggests it may be, it's about configuration management, branches, etc then the SVN or other source code control program recommendations are better than my suggestions.

So, not used it, and not free (\$32), but googling showed up

TrackMyFiles - http://www.trackmyfiles.com/en/features/

• Tracks and stores changes to files automatically
• Allows you to view and restore old file versions
• Important file versions can be labeled explicitely
• Compatible with most file types, such as Microsoft Word® Documents and Microsoft Powerpoint® presentations
• Efficient storage of changes through delta compression algorithm
• Integrated into Microsoft Windows® File Explorer for seamless operation

60 day trial version available, according to that website

-

@Lukman and Paul, I like the idea of those simplified versioning systems for regular documents, but i think its a mistake to use them for source code - inability to branch, merge, and share is going to really hold you back.

-
Depends. It fits what the OP asked for. There's two reasons for source code control in my view - configuration management, and protection against developer finger trouble/stupidity (much evidenced by me). If the first is the issue, I agree with you. If the second, all these solutions will do. –  Paul Nov 8 '08 at 17:50

A few thoughts:

You might like SVK, which seems to plug-in to SVN. I haven't tried it myself, but it looks interesting.

http://svk.bestpractical.com/view/HomePage

Tools such as Trac provide decent SVN repository browsing and might be worth looking into.

If you're having trouble figuring out the right jargon to search for, search for 'snapshots'. You might also want to build some kind of archiving process into your build system so that every time you run make, you get a snapshot automatically (or whatever makes sense for your situation).

-

I have cron (search google and pick one you like) and then a command line script to run pkzipc on my souce folders every couple of hours. once I tied the start of cron to my startup I just started it and forgot it. saved me 1 time when in a late nite brainfreeze I typed del /f /s *.cs

-

Windows Vista Business, Enterprise and Ultimate have this feature built in ;)

-

You will want to check this out if you're interested in Apple's Time Machine and have a Windows platform OS.

http://www.genietimeline.com

Beta to be released soon... You might wanna sign up for it... Can't wait to get my hands on Genie Timeline...

Apparently, its features include Realtime CDP, endless file versioning, automated backup, window's integration to the core... I've been waiting for this kind of software to be released on Windows for ages...

-

I would suggest using a version control that you can plug into your IDE. That makes working with it a breeze. Just click update/commit in your source tree and you're done!

-

i like to store and work on my projects using dropbox (http://www.getdropbox.com/). not only does it automatically backup your work, it keeps revisions for you as well.

-

Windows Server 2003 and later have a "Shadow Copy" feature, which is similar to Time Machine, but intended for a networked, enterprisey environment. You might be able to set it up locally if you really want to.

However, that would really be an inferior solution to good source code control. With source control, you can view a complete, detailed history of every line of code in your codebase. It's hard to appreciate how valuable that is, until you've tried it.

-

Not sure if this simple utility can fit your purpose: http://downstairs.dnsalias.net/revisionmanagement.html

-

If you are literally looking for "Time Machine for Windows": Windows Vista comes with Time Warp (that's the codename, I forgot what the finished feature is called). It's pretty much the same thing as OS X's Time Machine, only with less hype.

-
It's name is shadow volume copy and it's too grandma-friendly. You can only select what kind of files you want to backup("music", "pictures" etc), not what folders it should monitor. It only runs once a day unless you tell it to do a backup right now. –  Jay Mooney Nov 9 '08 at 12:51

Try Flashbake. It can backup every n minutes (via cron and presumably Windows Scheduler) files that haven't changed in m minutes (can be 0). You would need Python, so Cygwin or ActiveState Pyton. It is based on git and designed for non-technical types.

-

You could use a vm and take snapshots before you make big changes? Its pretty painless to roll back that way - about 5 mins and your done :)

-

SlickEdit has a nice feature that is similar to what you are describing. Every time you save the file you are working on, it creates a local (diffed) backup. At your leisure, you can then look back through the local file history. You can use this to supplement your SVN repository, which SlickEdit can also integrate with.

-

you can try Genie Timeline, it's like windows time machine for windows and and you can go back to the version you need using a time slider to view each version http://www.genietimeline.com

-

Cygwin + rsync + a script Easy Automated Snapshot-Style Backups with Linux and Rsync to handle old versions works good. No GUI, though.

-

www.FolderTrack.com does exactly what you want. The software is free by using discount code: bos

As a disclaimer I work in FolderTrack.

-

Mercurial is perfect for this job.

Whenever you want to take a snapshot of your code, this is all you do in the command line: hg commit and you are done!

If you want to browse for different versions of your file, it's easy with TortoiseHG by using its graphical context menu when right clicking on the file in question.

Also, its nicer than SVN because it does not litter all of your sub-folders with hidden .svn directories.

-