When an resource is versioned, it means that a non-modifiable copy of it is stored in a repository.
If you change (edit and save) a resource in your workbench after synchronizing, then you have modified the resource.
You can (implicitly) version a file or folder without versioning the project that holds it by synchronizing with the stream.
The stream contents is the version of a resource that is currently released on the stream.
A version of a resource is a non-modifiable copy of the resource that has been released to the repository.
The base version of a resource is what was released on the stream at the time of synchronization. Thus the base version of a resource in the workbench denotes its corresponding state in the repository. This remains true even after modifying the resource locally: the base version denotes what the resource looked like before you started modifying it. This allows you to determine, for example, the modifications you've made to a resource by comparing it to its base version.
Projects do not have a base version.
The local history of a resource is reset when you synchronize. A new history for that resource is created the first time you modify the base version of a resource. For more information see Local History.
Projects do not have a local history.