This gave me an idea you could play with for Tusky, for your case where you frequently roll backwards/forwards:
Instead of versioning a pref file as a whole, suppose you versioned it by sections? E.g, start with a recent past version, vN:
* Section # 0 is baseline preferences, that all versions support and you can always preserve.
* Section # N includes all prefs vN supports, so any fairly stable pref is preserved.
* All newer prefs go into a section by SW version which added them.
@mcc
The code to implement it practically writes itself.