How can I see all items checked out by other users

2020-02-23 06:00发布

问题:

I want a list of all the checked out files, by all users, in a project in TFS 2005. All I can see now are my checked out files - in the pending changes window. I remember that in Source Safe there was such an option - is there one in TFS 2005?

回答1:

The October 2008 edition of the TFS Power Tools includes "Team Members" functionality that allows you to do this, and more.

There is more information on this feature on Brian Harry's blog.



回答2:

I use:

tf status itemspec /user:* /recursive 

in the VS Command Prompt. itemspec is the TFS path to the item you want to search for checkouts. No extra installations needed ;)



回答3:

I usually use TFS SideKicks for this.



回答4:

Power Tools option: "Open Visual Studio > Click File > Source Control > Find In Source Control > Status Select "Display all checked out" or "Display files checked out to" (to filter changes by user) Hit Find"

http://geekswithblogs.net/MikeParks/archive/2009/09/16/tfs---view-all-pending-changes-for-all-users.aspx

__

Another way using .net (complete source)

using(var tfsPc=new TfsTeamProjectCollection(tfsUri))

    {
        var vcs=tfsPc.GetService<Microsoft.TeamFoundation.VersionControl.Client.VersionControlServer>();

        var srcRoot=vcs.GetItem(srcpath);


        var pendings=vcs.QueryPendingSets(new[]{srcRoot.ServerItem}, RecursionType.Full,null,null).AsEnumerable();
        if(onlyLocks)
            pendings=pendings.Where(pq=>pq.PendingChanges.Any(pc=>pc.IsLock));
        if(minDate.HasValue)
            pendings=pendings.Where(pq => pq.PendingChanges.Any( pc => pc.CreationDate > minDate.Value));
        var pendingQuery=pendings
            .OrderByDescending(p=>p.PendingChanges.Max(d=>d.CreationDate));
        pendingQuery.Dump("pending");   


    }

similar to above, but join the ActiveDirectory to get a user's name



标签: tfs