I’m working on my own open-source project. I’ve recently released the first workable version but I doubt anyone is using it. I’m the only one working on it. I’m using mercurial and my question is I’m planing a pretty big redesign. Not many stones will remain unturned. How to I tackle this in term of source control? Just continue from current head or create a branch?
How often do I commit? Some classes might disappear (split into 2 or functionality moved elsewhere, interface changes).
I’d branch the new version if there were any current users of the code (including yourself) who should stay on that for a while. Merge it back in when the new version is (by whatever measure) equal or better to the old version.
Another consideration is “if a new user comes to look, would I want them to use the old version I am abandoning or try the version I’m making that’ll be in even more flux”. If they should stay on the old version then again branch off for the new one.
More likely though your choices are between