How are uncommitted changes tracked?

Uncommitted changes remain on the developers’ workstation. The repository does keep track of who has checked out what files (and what revision they checked out from). Developers have the option of checking in or “shelving” their work in progress to a ShelveSet which does not affect the primary branch but does stores the uncommitted work up on the server. This is useful for backing up, transferring work in progress, passing around code for code reviews, and handling general workflow interruptions (i.e. working on New Feature X, must revert to latest revision to perform Hot Fix Y, and then go back to work in progress to complete Feature X).