In Debian packaging, a version number looks like: x:y~z, where x is called the epoch. According to the Debian policy:

It is provided to allow mistakes in the version numbers of older versions of a package, and also a package's previous version numbering schemes, to be left behind.

While looking at the Debian packages of Vim, I noticed that they used an epoch number as well. What was surprising is that the epoch number was 2, indicating that it had changed twice. What happened during these changes? Were they a purely Debian change, not related to an upstream one?

  • 1
    This doesn't really seem like an appropriate question for vi.SE. The versioning of a distribution's package is the discretion of the packager.
    – jamessan
    Mar 10, 2015 at 16:50
  • I'm voting to close this question as off-topic because it's not really about Vi or Vim as such, but about Debian's package versioning scheme. Mar 10, 2015 at 17:21
  • @Carpetsmoker it's not about Debian's versioning as such. Projects change version schemes (rarely, but it happens, a recent example being KDE Applications moving from 4.13 to 14.12 - date based). I wondered if something like that has happened with Vim as well - the epoch being an indicator of such a change.
    – muru
    Mar 10, 2015 at 17:41
  • @jamessan The question is not about the Debian package as such. It's just that the epoch can indicate a change in upstream version scheme, and I wondered if such a change had happened. Even if the versioning is left to the package maintainer's discretion, there's a reasonable expectation that it correspond to upstream versioning.
    – muru
    Mar 10, 2015 at 17:43

1 Answer 1


Yes, they were both caused by changes to the packaging and unrelated to Vim itself.

The first epoch bump (since all packages without an explicit epoch have an implicit 0 epoch) was introduced when the versioning of the package changed from x.y.patch-debrev to x.y-patch+debrev (i.e., 6.1.263-2 to 6.1-266+1). The latter sorts earlier than the former, so the epoch was needed.

The second epoch bump was introduced due to another change in how the packages were versioned. This time it was related to versioning of pre-releases for major Vim releases. Initially they were being versioned as x.y.patch~snapshot-debrev but then it changed to x.ysnapshot.patch-debrev (1:7.2.0~a-1 to 2:7.2b.001-1).

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.