>>1
You could do
GNU-style. I find that type of versioning retarded, however.
I prefer to increment based on some arbitrary subset of features.
Assuming we have major and minor versions and major and minor revisions, a fair but small subset of features would be a major revision increment. Bug fixes would be a minor revision increment. A large feature set would be a minor version increment. A massive feature set would be a major version increment.
Additionally, only 0-9 are to be used. For every 10 minor revisions, increment a major revision, for example.