Undo Checkout for Unchanged Items in TFS

The pending changes list of TFS is a lie. It shows all files checked out for edit, not those with actual changes. A TFS power tools command can save the day.

A key factor of successful source control usage is to always review pending changes before check in. Without reviewing the pending changes it is far to easy to have unrelated changes slipping in with the commit.

Working with TFS, reviewing pending changes can be a pain because of the check out before edit model. Any file that has been touched, even with all changes undone, is listed as a pending change. I’m currently working with a large Entity Framework model where hundreds of files are regenerated on each change, even if only one of those files is actually updated with new content. Finding the actual changes among hundreds of false entries in the list is impossible.

The saviour is part of the TFS power tools (I can’t understand why it’s a separate add on and not part of the core TFS client.

tfpt uu . /recursive /noget

Using the command daily, I’ve found a couple of gotchas that are good to be aware of:

  • Always save all files in visual studio first. If visual studio tries to save a file that it thinks is checked out and writable and it isn’t, it is very easy to loose data, especially in the project files. Always hit save all (Ctrl+Shift+S) first.
  • It only affects the current directory and subdirectories (exclude sub directories by omiting the /recursive switch.
  • Albin Sunnanbo on 2013-06-17

    If the command is not too slow to execute I think I would put it as a post build command.

  • Michael Clark on 2014-03-27

    This hint is going to save a lot of time every day. At my workplace, we deal with a large codebase and much of our code review time is taken up with comparing files that are unchanged. It breaks the flow of the review. This tip will work well until Microsoft improves the Pending Changes window.

  • yashesrushes on 2015-12-09

    Really helps, Saves hours of unnecessary vaidation

  • Leave a Reply

    Your name as it will be displayed on the posted comment.
    Your e-mail address will not be published. It is only used if I want to get in touch during comment moderation.
    Your name will be a link to this address.
Software Development is a Job – Coding is a Passion

I'm Anders Abel, an independent systems architect and developer in Stockholm, Sweden.

profile for Anders Abel at Stack Overflow, Q&A for professional and enthusiast programmers

Code for most posts is available on my GitHub account.

Popular Posts

Archives

Series

Powered by WordPress with the Passion for Coding theme.