likely responded to this, and so shall I.
as part of the scm world -- i like to be true to a real dotted quad notation when referring to build versions. i've never really built code that is deployed to the public world .. only code used on company production servers for public consumption (mostly java based web sites, and middleware)
1.2.3.4 = Major level 1, Minor level 2, Patch 3, Build 4.
Major = major release. no longer compatible with previous versions.
Minor = minor release, still compatible with previous versions (with same Major)
Patch = the number of patch builds required to get to latest production patched code
Build = the daily build number. increments by 1 until dev/qa is complete, and code is released to Staging servers.
build numbers stop, once patching starts. the patching denotes the patch to last known good build.
ie -- dev/qa releases should always be num.num.zero,buildnum. (1.2.0.40)
once released to staging - and if a patch is required -- the rev increments as such for the first patch - 1.2.1.40. second patch 1.2.2.40, and so on.
once in production -- wait until next release.
if code is released to the public, and not running on a company's servers -- always drop the build number. so, if you're delivering 1.2.2.40 binaries to the public, cut it down to 1.2.2 and deliver your rpm/pkg/deb, etc to the world.
if this confuses you, im available for hire at your location. references available upon request. :p