Personal Productivity Stack Exchange is a question and answer site for people wanting to improve their personal productivity. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I'm a high school student. I've noticed lately that I'm not particularly fond of my current scheme for keeping my files up to date (ferrying around a USB stick, naming files 'essay-1.doc', 'essay-2.doc', 'essay-2_(new).doc', etc.).

I'm currently looking for a better way of keeping my files synchronized and backed up between different computers while being able to cleanly store different versions of a file without resorting to haphazard naming schemes.

I've looked at Dropbox, but it requires administrator rights to install (which I don't always have), and I've also looked at version control (Git or Subversion), but I don't know how effective they would be with PowerPoint presentations, images, or Microsoft Word files. I've also looked at What revision control programs / methods do you use when writing?, but it wasn't much help.

(I'm somewhat techy, so I have a website/server I can put stuff on, if some tools/methods require that.)

share|improve this question

13 Answers 13

up vote 13 down vote accepted

I use Dropbox for a long time and I am very happy with it. I follow the following process:

I've Dropbox installed and all my projects are in the Dropbox folder, so they are synchronized. If I don't have Dropbox installed, I use a web browser to upload or download my files. The nice thing with Dropbox is that you can access your files everywhere. You don't need to install the software all the time.

For the projects where I write code, I also use Subversion (SVN). My projects are also under the Dropbox folder. Since I usually work with MATLAB, and it doesn't create executables each time I run my code, it is OK for me to keep my files under Dropbox. If the code generates outputs each time I run, I select the temporary output folders outside of my Dropbox folder. But as I said, I don't need to do it for most of my projects.

For portable SVN clients, you may check What Subversion clients for Windows are there that do not need installation? and An online Subversion client.

Apart from these, I periodically backup my files.

You didn't ask for it, but it may be relevant. I suppose you also read a lot for your homeworks. To hold the materials that I read, I use Mendeley. It is a wonderful reference management system. It gives you free 500 MB space, but I use Dropbox instead because I want all my files under my hand. I created a folder named as Mendeley in my Dropbox folder, and configured the working folder of Mendeley such that all the PDFs and other files I upload on Mendeley are renamed and saved in this folder. So, all my reading materials are synchronously saved, and I don't need to take care of them separately. Similar to my projects, I can access my reading materials online. And all the notes I take are saved in Mendeley which I again access online if I need.

share|improve this answer
I think the key that Dropbox can be used exclusively as a website is a great one to point out. – Jeanne Boyarsky Nov 4 '11 at 3:00
I think I'll go with this one. I forget my USB from time to time, so being able to access Dropbox from the internet is definitely a plus. I'll look into Mendeley too, although I'm not sure if I'll need to use it that much at this current moment in time. – Michael0x2a Nov 8 '11 at 0:50
You can also exclude subfolders from Dropbox sync which can be useful when you work on dev projects which need to be built often - just exclude the build folders from sync. (I assume you know how to do ignore with SVN for these purposes) – Dmitry Selitskiy Feb 13 '12 at 2:48

I would use a version control system like Git, SVN, or Mercurial.
(A tutorial on SVN vs. Mercurial differences).

I've been using this method at work for several weeks and it's helped immensely.

The main advantage of a VCS over carefully named files (as I suggested here in an answer you already saw), is that a VCS will store meta data, so you can capture what's changed. To get an exact was-is you'll need to use something like the compare feature in MS Word, but in practice I've found that good commit notes are enough to remember what you changed from version to version.

Mercurial by itself doesn't require admin rights (although the TortoiseHg extension might), but for what you're probably doing the command line interface would be easy enough to learn: add, commit, and rename are probably 95% of your use case.

As for keeping things sync'ed between multiple computers I see two options.

  • Store the repository on a server folder and work from that (as as mapped drive or something).
  • Sign up for a free (for 1 person) Kiln account and let them host your repository.

Regarding binaries, I'll answer from the Hg perspective, since I know that best. But this is probably wholly or mostly applicable to anything you choose.

  • Hg itself has no problem storing binaries. Storage won't be as efficient as plain text because it can't store deltas, but any scheme that saves multiple revisions of a binary format (e.g. docx or jpg) is going to have the same issue (so at least you're no worse off).
  • Binaries won't diff and merge easily like plain text, but that's a problem with binary file formats not the VCS. I've heard there are ways to configure Hg to use MS Office diff/merge utilities, but I can't figure it out. And you're unlikely to need to merge anyway since you're the only "developer".
share|improve this answer
+1 for Mercurial + Kiln. – Carles Company Dec 5 '11 at 13:34

Google Docs. There's a complete revision history, and it's available where there's an Internet connection and a browser.

share|improve this answer
This was absolutely essential for me in college and would work much better for a student than dropbox. Sure, you don't have to install dropbox on a computer to use it, but you still have to waste time downloading the file, changing it, and uploading it again. Google Docs don't require any of that. – Yetti Feb 1 '12 at 17:50

Are you required to use ppt and docx files? Proprietary formats have many disadvanges; plain text is generally preferable. Also, of course, version control works better with plain text. Consider using TeX/LaTeX or a similar text based typesetting system if possible. Bear in mind that while text formats can be converted to proprietary formats with little difficulty, the reverse is not always so easy. While TeX/LaTeX is dominant in the hard sciences and engineering, it is not the only game in town. A reasonable halfway house is to use a document format that is text under the hood. For example, I believe open office format is gzipped XML files.

As regards version control, personally I use Mercurial (since spring 2006) and would recommend distributed version control to anyone who uses a computer and manipulates text. This includes many people, at least in the developed world, including most people with a high school education. It is a mystery to me why so many of these people don't use any form of version control.

Personal history: I started using version control only relatively recently, during the spring of 2003, but now cannot imagine my life without it. I started with Subversion, but since 2006 I have used Mercurial exclusively. I greatly prefer distributed version control to a centralized model like Subversion, but even Subversion is way better than no version control at all. I'd recommend Mercurial - I think Git is similar, but may have a steeper learning curve. Also Mercurial may work better on Windows. I'd experiment and see which one you prefer. I estimate that using a decent verson control system enhances your productivity on the order of 10% or more over the long term, with significant gains in terms of organization and book-keeping, among other things. The overhead of learning VCS is negligible in comparison, though it does require some basic level of computer literacy.

Note also that version control works just fine with proprietary formats. It just means you won't be able to use a native diff, but Mercurial and presumably Git can be configured to use an external diff, assuming such a thing exists for these proprietary formats. So, I wouldn't let that stop you.

share|improve this answer

If it is essays and the like, why not just name them subject-date-version (if multiple versions on one day).doc?

Really simple, doesn't require any clever software - inherently intuitive.

share|improve this answer
I do subject-date-version but I also start a new subdirectory each marking period or quarter. (Now that I'm not a student I just start a new directory each year "Writing 2010", "Writing 2011", etc). This works well because I find I rarely need to access old documents; and when I do I know them by date. – TomOnTime Nov 8 '11 at 19:28

If you have several computers where you are working and want to keep the files in sync, UNISON might be a good option for you:

it is

  • free and open source
  • platform independent
  • can be configured very flexibly
  • synchronizes several directories and can also manage conflicts when files have changed on both sides during the last sync
  • can be installed on your server
  • can compile files over a network via ssh and uses the ressources on both synced computers
  • can keep a configurable number of backups of each file
share|improve this answer
It is an excellent solution. I started using it when studying, at the university I was working at my laptop and at home I was using my desktop. It was very nice to have the same content on both placees. You can then put as many git repositories within the directories you sunchronize with unison for things that you want source control of. – hlovdal Dec 8 '11 at 22:39

I've used Subversion (svn) for nearly three years, so my opinion is undoubtedly both biased an lacking in scope, but here it is anyway:

You could install subversion on your server, and TortoiseSVN on the "clients". As I recall, TortioseSVN doesn't require admin access; still, I couldn't find that written down anywhere, so take it with the proverbial grain of salt.

Tortoise will add 3 entries on the contextual menu: Update, Commit, which are self-explanatory, and TortoiseSVN, which opens a large (20+ for folders, about 15 for a file) submenu; the most useful thing in there is Show Log; this will open a window with all changes made to the folder or document on which you started the menu in the first place.

For files, there's also Show Differences, which is very useful with user-readable files, but not so great for .docs. I'm just adding it here as an afterthought; when it comes to versioning docs, the description you'll have to write on commit is probably the most useful when it comes to remmbering what you changed.

Edit: And if that don't work, how about date/time suffix on files? That works too...

share|improve this answer

You need to look just a bit further. Google Docs, as already mentioned, has great version control and commenting options that help you take notes about your work and show all changes. This is all thanks to Google buying a company called Etherpad and using their software.

The problem with Google Docs is formatting. The saved documents are generally not formatted right for MS word and that's a problem for a student. Enter

Windows overshadowed Google Docs and built online document, PowerPoint and Excel editing tools and gave you 25 GB of free storage and quick synchronisation with MS Office products (make a change to your local copy and upload immediately). This preserves the format of the files as well, so they come out beautifully when you need to print or present them.

Check them out...

share|improve this answer

Writeboard is free, and web based so you don't have to drag anything around with your, easily save an iteration as a new revision, take a few minutes to learn markdown and just do your writing on the web. When you're done just copy and paste from the HTML page into open office or whatever, and do a little restyling.

It's also collaborative if you have to work with others.

share|improve this answer

You can do this:

  • Carry around a USB memory stick.

  • Use MS Word's built-in version-control feature. IIRC, to use it, go to File > Versions. I don't know if it allows branching though.

  • Back up your memory stick daily with rsync or similar tools.

What do you really need in a version control system? Branches? Tags? Or just a simple backup feature?

share|improve this answer
Wait, MS Word has a version-control feature? I didn't know that. I really don't need branching, and while tags might be convenient, it's really automatic versioning I'm looking for. – Michael0x2a Jan 19 '12 at 2:15
A memory stick? Really? That seems so 2001 to me. I always looks those things, so I know it's not a reliable storage medium for my needs. – jurassic Feb 5 '12 at 21:11
@m0untain, note that I recommended daily backups. I bet it's even possible to set up a home computer to automatically do a backup when you plug the stick in. – unforgettableid Mar 28 '12 at 4:38

You could take a look at Flashbake, which is a seamless version control system built on top of git. In essence it makes periodic commits to a git repo of all changes that have been made. The point of it is to have running in the background, incrementally saving your work with notes on the conditions of that save. It uses python and git, and you could pretty easily have git push those commits to some remote repo as well. I've always been curious about it, but never really made a big push to use it heavily.

share|improve this answer

I use Windows Live Mesh, it works great. You set it up one time on each computer where you want to have access to your files, and never look at it again. Your files are always automatically synced. As a bonus, all your synced files are also available on the web in your windows live skydrive account.

Skydrive does have revision tracking and Live Mesh used to have it, but it is gone for the moment. Perhaps it will return in a future version.

share|improve this answer

I'm using a version control system, in my case CVS, but that's just because I happen to be most familiar with this one, and like being able to access the underlying files manually if needed. The main advantage of using a version control systems (VCS) to me is, that it allows (or even enforces) commenting versions checked in, so you'll know later on at which stage of work a certain version has been, and can select the version you may need for further development.

Also, most modern VCSs allow collaborative work, which may be of importance when you're working on a project together with a group, or want to give a teacher access to an early draft for correction, or a friend for proof-reading. Which VCS doesn't matter as much as that it fits your style of work, and that you're comfortable using it.

VCSs are best at storing text-based files, where they can keep track of the differences from version to version. Confronted with binary files, such as bitmap images, they can usually do little more than store one blob after the other together with a timestamp and your manually provided version information. So, if you expect binary data to change often, they're not much of an improvement, and tend to fill up your data storage.

Given the resources you mention, it seems that you might be best off with something making use of your webserver, so it might be a good idea to explore which versioning tools you can use there. You don't tell if you're limited by scripting language, choice of database or other possible requirements, but there's a few wikis you might consider which also offer version control over text and attachments. Things to explore include:

  • WebDAV/DeltaV (WebDAV was supposed to be a "Distributed Authoring and Versioning" filesystem, unfortunately the "Versioning" Part of the Filesystem never got specified and didn't really catch on. Hence the concept was reworked as "DeltaV", problem being that there isn't much software around implementing it.)
  • SVN Autoversioning being one of the few notable implementations getting near that goal.
  • There's a MediaWiki planning to integrade WebDAV - You might want to check their status if your Webserver meets the requirements:
  • FosWiki is file-based, and applies version control to both wiki articles and attachments.
  • If you don't mind giving your data to another site, LibreSouce ( looks like a good example of what can be done on a webserver (found through an article comparing several VCSs, 7 Version Control Systems Reviewed)

So maybe there's something down that line for you.

share|improve this answer
Thanks for adding the links - As a new user, I have been limited in my usage of them. – Tatjana Heuser Feb 5 '12 at 21:37

protected by Tom Wijsman Feb 3 '12 at 14:05

Thank you for your interest in this question. Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).

Would you like to answer one of these unanswered questions instead?

Not the answer you're looking for? Browse other questions tagged or ask your own question.