Epochs are intended to be rarely used, only when the upstream version is inherently 'broken'. Normally some magic version comparison is done that "does the right thing" and determines that 1.4.1 > 1.4.0. However, sometimes this isn't possible, take for example foo-1.4.0, foo-20061010, foo-1.4.1 (released in that order). The normal version comparison won't work, so the epoch provides a workaround by being more significant than the version. In order to make this example collate properly, you'd want to have: { name = foo, epoch = 0, version = 1.4.0, revision = 0 } { name = foo, epoch = 1, version = 20061010, revision = 0 } { name = foo, epoch = 2, version = 1.4.1, revision = 0 } It seems to me that separating the development ports from the official ports is best achieved by manipulating the port sources, not by overloading or redefining the meaning of epochs and revisions. - Kevin On Oct 10, 2006, at 2:49 PM, James Berry wrote:
On Oct 10, 2006, at 2:04 PM, Blair Zajac wrote:
I haven't tried epochs, but will (epoch=1, name=subversion, version=1.4.1, revision=21872) be greater than (epoch=0, name=subversion, version=1.4.0, revision=0)? Here 21872 is the HEAD revision for Subversion's repository. Does epoch trump version and revision numbers.
Yes, epoch is the most significant thing. It will win over version and revision.
epoch defaults to 0 if it's not present, which is why I suggested that you might want to use a negative epoch for your internal use.
James.