Locking functionality in Team System Version Control

After my last post, I received some questions about locking as it relates to changesets. So here's a brief description. As always, if I'm not clear or I'm leaving you confused, please let me know - constructive criticism is always welcomed :)

By default, multiple people can check out a file at the same time.  Naturally, if multiple people make changes to the same file at the same time, the possibility of a merge conflict arises.  If you want to prevent this from happening, you can apply one of two different lock types.

A checkout lock blocks others from checking an item out for edit/rename/deletion, etc. (really, any pending change) until the lock is lifted. When the owner of the lock checks in the locked item, the lock is removed. The owner can also choose to remove the lock before he/she checks the item in.

A checkin lock allows other users to pend changes to an item, but prevents them from checking in until the lock is lifted.

Here's a quick example:

   tf checkout /lock:checkout main.cs

Altenatively, you can use the lock command to manage locks:

   tf lock /lock:none main.cs

In the example above, we're removing a lock previously held on the file main.cs. A user can only unlock a lock held by another user if they have permission to do so. Such permission can be granted to individual users or to groups of users, such as trusted source control system administrators.

Note - A Team System administator has the option to enforce auto-lock for all checkouts, allowing Team System to mimick other common version control systems.