Currently we have 2 attributes for version identification: name and timestamp. The name is used for cosmetic purposes; displaying in the UI etc., while the timestamp is used for ordering.
Now, the question is: how should versions be referenced internally? The available options are:
- Using the name
- Using the timestamp
- Using a new attribute; ID
Using name means internal systems need to be able to handle pretty much anything for the version string, including escaping of the name when required etc. Name can also change, even though it really shouldn't (for example if there was an error when first entering the version name).
Using timestamp means the internal systems don't need to guard themselves as much, the value will always be a fixed width integer. The timestamp to can change though, for the same reason as with the name. Additionally it is harder to memorize than the name.
Adding the new attribute, named ID. It would not be used for sorting, thus not need to change. It would also be an integer, thus more efficient to handle with less required guards against weird values. It would still be hard to remember though, and also add yet another attribute.
Here is a different variant for versioning:
Let versions specify the previous version(s).
Or specify the next version(s)!