Running analyze with -o pointing at an existing database silently replaces it. Observed: re-running against a different build with the same -o path produced no message of any kind; the previous run's data was fully replaced (not merged, not appended, not rejected).
Since one database per build is the intended workflow, replacing is a reasonable default, but it should be announced. Someone (or some script) comparing builds could easily destroy the first build's database and not notice.
Proposal: print a clear notice when the output file already exists, e.g. Overwriting existing database 'build1.db' (previous contents are discarded). Failing instead and requiring a flag is an alternative, but a visible warning is probably enough and keeps the common iterate-on-one-db loop convenient.
Running
analyzewith-opointing at an existing database silently replaces it. Observed: re-running against a different build with the same-opath produced no message of any kind; the previous run's data was fully replaced (not merged, not appended, not rejected).Since one database per build is the intended workflow, replacing is a reasonable default, but it should be announced. Someone (or some script) comparing builds could easily destroy the first build's database and not notice.
Proposal: print a clear notice when the output file already exists, e.g.
Overwriting existing database 'build1.db' (previous contents are discarded).Failing instead and requiring a flag is an alternative, but a visible warning is probably enough and keeps the common iterate-on-one-db loop convenient.