The way I think of it as described to me is when you create your first revision, you are taking a snapshot of your project in its current state:
*[Your Project] <--- Rev 0*
When it asks you to name your revision, it is asking you to name your project in its current state, not what you are about to change. Any changes you make after the first revision are being made in revision 1.
If you create another revision you are now snapshotting revision 1 (noted in *)
[Your Project] <--- Rev 0 | *[Your Project] <--- Rev 1*
Promoting a previous revision grabs the selected snapshot and places it into the next revision number.
EX: Promoting Rev 0
[Your Project] <-- Rev 0 | [Your Project] <-- Rev 1 | [Your Project from Rev 0] <-- Rev 3
I hope this helps and is not too confusing, I had the same questions myself.