Parameter order matters for cvs update – lesson learned on Bugzilla
It looked like a straightforward job – upgrade my heavily customized Bugzilla from 3.6.1 to security fix 3.6.2. I know I just need to run cvs up to get my files updated to the latest Bugzilla_Stable branch and resolve conflicts. But wait we want to get new files and prune empty directories, so I typed cvs up -Dp. No warnings, ok, go ahead run ./checkconfig go to Bugzilla – oops too many changes – version 4.1 is up. Ok, downgrade and next time use cvs up -Pd, if I have typed cvs up -pD I would finished with a warning about missing date. But cvs up -Dp was understood as -D with value p, that got actually ignored.
Downgrading took quite a couple of hours – Bugzilla caches complete database structure in bz_schema, which is not recommended to be touched – but this time the problem was change of type in table fielddefs for some columns like classification and component.
Debugging seemed quite a lot like the movie Inception – on each deeper level you spent more time and you understand less.