23:52 Mon 05 Mar 2007. Updated: 00:55 06 Mar 2007
[, , , , ]

I’m gradually moving more and more of my personal files into my various Subversion repositories, and figuring out how to organize those repositories. I highly recommend Subversion (or some form of version control, but Subversion is free (and libre)) to anyone who uses computers to create documents that they consider important.

I haven’t set up Subversion on Windows, but it looks like it would be fairly easy, so for those of you without access to servers running it, I suggest having a look at running a local Subversion repository. (OS X users might be able to get away with waiting for Time Machine—but you might also prefer to have full control using Subversion.)

I wrote an introduction to version control last August. Reading over that introduction, though, I’m not sure I made clear how easy it is to use, or how much of a bonus it is. Again, if you have documents you care about on your computer, you should use version control. If you’re on Windows, get Subversion, and get TortoiseSVN, which plugs right into Windows Explorer and makes using Subversion really easy.

Anyway, back in that earlier post I wrote about the categories of repository I had created:

* code
* config
* graphics
* misc
* personal
* web
* writing

I’ve since reversed my decision and put writing back into personal. I’ve been on the fence, and found this easier because it didn’t then require having “personal” writing and “public” writing in separate repositories. I can see myself changing my mind again on this in the future.

In any case, I’ve come up with a structure for that personal repository, which was harder than I anticipated. These are its primary directories:

  • academic
  • contact
  • correspondence
  • culture
  • financial
  • games
  • misc
  • notes
  • writing

This is pruned down from rather more, and seems about the right amount.

academic covers the relatively meager materials I have from my academic life. I didn’t keep digital notes until quite late in my academic career—partly because I didn’t take that many notes at all—so it’s weighted to my M.Sc. and M.A. It’s divided into subdirectories according to course.

contact covers contact information. This could perhaps be a subdirectory of notes, but seems important enough to warrant being at the top level.

correspondence covers letters, primarily. Not email, because email is outside of my version control system (although I’m conflicted about that at the moment). Since I don’t really write letter anymore, this is primarily historical, rather than being something I’ll be updating in future. On the other hand, it’ll be updated automatically if I put my IM logs in it.

culture covers lots of things, mainly writing I have that isn’t my own, and records of what cultural experiences I’ve had (primarily lists of books read and films seen).

financial should be self-explanatory.

games covers my gaming life. There’s some tension here between it and writing (should my MTG reports be in writing, or in here?). Also, this could clearly go in culture, but is probably important enough in my life to be at the top level.

misc because no organizational system is complete without a category for miscellany. Includes random stuff written by others that ended up going via my machines (e.g for typing), like Helen’s first-year German essay from 1994, The origins, manifestations and character of xenophobia in modern Germany, and the responses it has provoked in German society.

notes covers what you’d expect. Lists, schedules, flight numbers, party times/addresses. Chaotic indeed, because I didn’t have TiddlyWiki until last year.

writing covers both personal and public writing, divided according to form (novel, poetry, etc.) and/or purpose/medium (blog, morning pages, etc.).

I hope some reader gets inspired by this to use version control, and/or derives some organizational insight from how I’ve organized my stuff. For no particular reason, here’s a random file I came across while sorting my archives:

Questioner: Mollen Commission, appointed my Mayor Dinkins (New York) to investigate police corruption.
Answerer: Bernard Cawley, ex-police officer now serving three years to life.

Q: While you were at the 48th Precinct, Mr Cawley, did you develop a nickname?
A: Yes, I did.
Q: What was that nickname?
A: The Mechanic
Q: And why were you given this nickname?
A: Because I used to tune people up.
Q: What do you mean tune people up?
A: It’s the police word for beating up people.
Q: Did you beat up people who you arrested?
A: No, we just beat people up in general…
—Irish Times, 02/10/1993

« (previous)

4 Responses to “Subversion/Organization”

  1. Lindsay Says:

    I’m considering keeping a subverion repository for my personal files as well. I’m already using it for my work files (98% not code) and it’s working well.

    So I’m wondering where you keep your repository? Locally on your computer? Hosted somewhere? I’m considering using Amazon S3 to host mine, mainly because I want to use it as a means to recover if something happens to my computer or I need access to my files on the road. But then I get into the issues of security (I can’t encrypt a working SVN repository, at least, I don’t think I can) and ultimately it’s just scary to trust my “digital life” to someone else. But keeping it local kind of defeats the purpose of having offsite backup…

    Also, do you ever worry that your repository might be corrupted and you lose all your data? It’s a lot of faith to put in one “device”. I’m having a hard time with that leap, psycologically, myself!

    Just curious about your thoughts!

  2. Tadhg Says:

    Lindsay: Yes, I do worry that the repository might become corrupt and I’d lose all my data! However, I am assuming that corruption of this kind would be more or less immediately noticeable, and that my local copies are some proof against it. Furthermore, the Ultimate Backup Plan calls for backing up the repository offsite every week, so once that’s in place, it’ll be a lot easier to recover from such a disaster.

    Besides that, though, Subversion is a very, very, very heavily-used app, and I do have a fair amount of faith in its robustness (I’m a little more worried about low-level hard drive corruption).

    I keep my repository on a server on my local network; it’s on-site but not on my desktop machine. When I get the full backup system working, I’ll be pushing a copy of the repository itself (and a copy of the current working copy) to a remote server every week. I haven’t thought much about Amazon S3, but it might be a possibility.

    Fomr the sounds of it, a similar setup might suit you: keep the repository locally (either on your desktop or local server), and then encrypt and compress it and push it offsite once a week. If your repository is colossal, this might be expensive, but otherwise seems like it would work.

  3. Lindsay Says:

    I’m trying out a test with some of my personal project files stored in subversion on S3. I’m using Jungle Disk to give me WebDAV access to an S3 bucket I set up and so far it looks like it’s working ok with TortiseSVN.. It’s pretty darn slow importing my data into the repository (Jungle Disk does some caching in the background, but apparently, that’s also what actually lets things work because SVN can get the file locks it needs). Speed isn’t really an issue ultimately, since once I get things set up I will only be committing as needed. An experiment for now, but if it goes well, maybe I’ll use that as my main and backup my working copies somewhere else just in case…

  4. Tadhg Says:

    That’s an interesting approach–totally different from mine! Is S3 really more convenient than running your own dedicated server? I guess it could be if your only need is for storage and no other services.

Leave a Reply