In Team Foundation version control, your changes to files or namespaces are persisted locally until you check them in. These locally-persisted changes are referred to as pending changes. The Check In and Pending Changes windows are used to view and manage pending changes. For more information, see Using the Check In and Pending Changes Windows.
Types of Pending Changes
A pending change is a file revision or namespace change to an item in a workspace. Specifically, a file revision is a change to the content of a file and a namespace change is a change to the location or name of a file or folder in a version control workspace.
The current status of all files and folders in all workspaces for a server is maintained in their workspace definitions on the Team Foundation Server. Any user with appropriate permissions can see if a change is pending against an item, what type of pending change it represents, who made the change, and in which workspace.
Prior to check-in, file revisions are referred to as pending editions and namespace changes as pending additions, pending edits, pending deletions, pending renames, pending moves, pending branch, and pending file encoding.
When you add a file to a version-controlled project, Visual Studio assumes that you intend to edit it in some way prior to making it available to your teammates. Therefore, newly added files are not checked in automatically and are treated as a pending additionto version control until you explicitly check in your uncommitted changes and thereby make them available to teammates.
When you check out a file to edit in your workspace, Team Foundation makes it writable and adds it to the list of pending changes for the workspace. By default, multiple users can check out and edit the same file concurrently from a Team Foundation server. It is possible to lock a file however. For more information, see How to: Lock and Unlock Folders or Files.
When you delete a file, it is deleted from your local disk; however, it stays on the server until the pending deletion gets checked in. For more information, see How to: Delete Files and Folders from Version Control.
When you undelete a file, it will be restored from the server during the check- in process.
Pending Renames and Pending Moves
When you rename or move a file, it is renamed or moved on your local disk, but the changes are not reflected on the server until the pending check-in occurs. You must check in deletions along with all of your other pending changes. For more information, How to: Move, Rename, and Delete Version-Controlled Files and Folders.
When you create a branch, the branch operation on the Team Foundation version control server is not committed until the branch gets checked in. For more information, see How to: Branch Files and Folders.
Pending File Encoding Change
When you change the file encoding of a file, the operation is not committed until the file change gets checked in. For more information see, How to: Configure Version Control File Encoding.
Managing Pending Changes
A pending change is created when you add an item to version control or check out an item from its workspace in order to edit, delete, rename, or move it.
At any time, you can view and manage the pending changes in your current workspace using the Pending Changes window in Visual Studio.
Depending upon your needs, you can perform one of the following four actions to a pending change:
Checking In Pending Changes
When you check in pending changes, Team Foundation creates a new changeset in the server. Thereafter, your teammates can access your code by performing a Get Latest operation.
For information about how to check in your pending changes, see How to: Check In Pending Changes.
Use the Get Latest command prior to checking in your pending changes to download the most recent versions from the server and compile your code to ensure that it does not break the build. For more information about checking in pending changes, see Submitting Changes to the Version Control Server.
Shelving and Unshelving Pending Changes
When necessary, you can move pending changes out of your workspace using the Shelve command. You can also perform an unshelve operation. For more information, see How to: Shelve and Unshelve Pending Changes.
Undoing Pending Changes
Finally, you can remove pending changes from your workspace and revert to the base workspace version using the Undo command.