Although the only reasonable answer is to never break the trunknever break the trunk, some times it is not possible. For example, svn can break commit if you commit too much (maybe an option, or a feature, I am not sure). In such special cases, just check in in pieces. Since you are a single programmer it is not going to disturb anyone.
Therefore, I would go for option 1. If not possible, then option 2.
Option 3 requires much effort, and it simply isn't worth it.