19

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.

3
  • 4
    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, 2009 at 16:24
  • 2
    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 Dec 16, 2009 at 16:41
  • 1
    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. Dec 16, 2009 at 16:42

27 Answers 27

39

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.

3
  • Jeff's need (and mine) isn't filled by source control because that requires manual commits. There is value in being able to retrace minute-by-minute changes you made in your working copy without having to commit every minute. And without polluting the repository. Some IDE's (like Eclipse) let you browse your project files back in time. But that requires using a particular IDE and setting up a project. It would be nice if there was similar functionality in an independent tool.
    – Vimes
    Aug 22, 2012 at 22:40
  • @JohnB SVN has a feature called "Autoversioning". It allows you to mount your repository as a standard WebDAV folder, and every time you save the file, it will perform a commit. If you save often enough, then you can effectively go back in time to any time you saved the file. It's not as granular as something like VS.Net where you can Ctrl+Z each character but you should save every 10 minutes anyway. If you were a single developer working on a project, it would probably work out, although I don't have much experience with it. (svnbook.red-bean.com/en/1.7/svn.webdav.autoversioning.html)
    – Kibbee
    Aug 23, 2012 at 0:39
  • Thanks, Kibbee. I saw VonC's post about that, below. It's one of the few options I've seen, and the only free one. There are some dedicated products, below, too, that don't require you to set up a source control server, which is nice. But they cost money and look like they have more bells-and-whistles than I need (or, one of them needs some UI work). The closest thing I've seen to what I want is DropBox, with it's Windows Explorer context-menu integration. It saves 30 days of history by default, and if you pay for the Pack Rat feature, it'll save indefinitely. But it's a cloud-app.
    – Vimes
    Aug 23, 2012 at 5:18
21

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.)

1
  • 2
    Definitely a good answer and a solution similar to what the OP wants, regular backups without explicit commits.
    – whatnick
    Sep 24, 2009 at 14:47
12

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.

6

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

6

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 - [email protected]

4
  • I think the feature list is a very good start. Does it support a full restore (like in case of hardware failures; a requirement for a Time Machine for Windows, if you'd ask me)? And, though few may care: can it handle multiple (redundant) backup disks? Or, if not, some way to copy the full backup (like Time Capsule, but which takes a long time)? For next releases: I'd recommend plugins for popular software that needs specific file system usage. Like for email programs: to find and restore messages without knowing how these are to be found on the file system. And: localisation?
    – Arjan
    Sep 16, 2009 at 21:42
  • Hi Arjan - no it does not support disk imaging (ala Acronis & Ghost) and to be honest I am not sure if we should go that way - we will see based on feedback. There already exists good products that you can use for bare metal so we will not go into that market now and focus on making Oops! Backup the best point solution in the market. Instead, we are focusing on the version control part - on actual content as opposed to the bit layer. As of today we have 'application aware' previews as we support previewing MS Office files, pictures, text based files others - we will continue adding that. Sep 17, 2009 at 14:15
  • I said to a certain extent it's the equivalent of Time Machine. From what I heard, the closest to Apple Time Machine is Rebit - never tested it myself. English only for now - but we are ready to start localizing. If you want to try it out in BETA send me an email :) David Vella from Malta (Europe) [email protected] Sep 17, 2009 at 14:16
  • After going through some comments left by Genie's "Candice" aka "Salam": +1 for your disclosure ;-) (superuser.com/questions/7423/time-machine-for-windows/… / stackoverflow.com/questions/274948/time-machine-for-windows/… / serverfault.com/questions/1918/…)
    – Arjan
    Nov 3, 2009 at 10:35
4

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.

2

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.

2

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.

7
  • Interesting. Do you use it with some server, even localhost, or will it works with only local filesystem?
    – PhiLho
    Nov 8, 2008 at 19:47
  • 1
    "SVN isn't very effective for solo developers". That's a pretty blanket statement don't you think?
    – mwjackson
    Nov 9, 2008 at 9:37
  • 1
    jacko, educate yourself to the alternatives and you'd agree. Nov 9, 2008 at 16:08
  • 1
    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. Nov 9, 2008 at 16:16
  • The main difference between BZR and SVN seems to be that BZR is distributed. Since the OP mostly works alone on a single computer, I am not convinced that the benefits of a distributed source control would outweight the added complexity in this case.
    – redtuna
    Sep 15, 2009 at 12:16
2

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

Download: http://download.cnet.com/Genie-Timeline-Free/3000-2242_4-10967059.html?tag=mncol

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

1
  • +1 for the disclosure. See also Time Machine for Windows which, I think, is a better place to continue this question.
    – Arjan
    Apr 30, 2010 at 12:52
1

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

Or, if you're using Vista, there's shadow-copy built in. See http://en.wikipedia.org/wiki/Shadow_Copy

1

@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.

1
  • 1
    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. Nov 8, 2008 at 17:50
1

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).

1

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

1

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

1
  • What is it called, what exactly does it do, what are the tradeoffs? Are you maybe talking about shadow volume copy?
    – redtuna
    Sep 15, 2009 at 12:20
1

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...

1
  • A review: pc-tutorials.suite101.com/article.cfm/… I'd say "automatically detect the most common user files" is just a workaround for it only backs up user created files. How to restore the whole system then? There seems to be no integration with, for example, email software. What to do after deleting some message? Do I need to know where and how the email is located on the hard drive? And can I restore a single message? Backing up virtually everything, and integration with other software, still makes Time Machine one of a kind. Bummer.
    – Arjan
    Sep 15, 2009 at 11:42
1

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!

1

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.

1
  • If you save often this will be a huge waste of revision in the DropBox repository. Sep 15, 2009 at 12:56
1

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.

Shadow Copy

0

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

0

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.

1
  • 1
    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, 2008 at 12:51
0

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.

0

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 :)

1
0

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.

0

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

1
  • Enough plugs for Genie already.
    – Arjan
    Nov 3, 2009 at 10:34
0

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

0

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

As a disclaimer I work in FolderTrack.

1
0

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.

1
  • What if I don't want to spend time commiting, pulling... but just something automatic that keeps track of every change, such as google docs does but local. What would you suggest?
    – skan
    Nov 28, 2016 at 12:01

You must log in to answer this question.