I managed to shoot myself in the foot this morning by doing the following:
Not really Subversion specific, but if you're working with Eclipse, you can try your luck in the local history.
Now, something a little bit more Subversion specific: if you don't want to make a branch for every change you do, you can keep a couple of trunk checked out locally (trunk-modif-1, trunk-modif-2...). Each "modification" is done on a separate tree and you only need to keep a list of which check out correspond to which modification.
Or you could use Git locally but I never tried it.