See attached patch making the dpkg-mergechangelogs only tolerate bad
versions, leaving the existing strict handling in Dpkg::Version.

I'm a little rusty on perl, but happy to change or update things as
requested. I assume the change in general is acceptable as it looks
like the code currently tries to do something like this but doesn't
quite get it right.

Notes on the patch:

* Moves construction of Dpkg::Version objects upwards into the main
merge loop rather than inside the compare. This prevents over-warning
about the same invalid versions and actually gets a (just barely)
measurable speedup.

* I'm unconvinced by the current compare logic when one version is
undefined, but have left it as it was preexisting (but inactive).
Always returning 0 seems more suitable as that then does no
reordering.

* The added test is very simplistic currently, if there are particular
things we worry about with how the merge should be handled it could be
elaborated. Should I example.com out the data? It's just copied from
the original bug report currently.

Attachment: mergechangelogs_tolerate_bad_versions.patch
Description: Binary data

Reply via email to