我想看到所有被锁定的文件。到目前为止,我只发现使用tf.exe状态并查找“!”的任何内容因为它们不会在UI中报告为“锁定,编辑”。有任何想法吗?感谢。
答案 0 :(得分:19)
如果你安装了power tools,那就是单行:
tfstatus . -r -user * | % { $_.pendingchanges } | ? { $_.islock } | select -unique serveritem
如果您更喜欢GUI到脚本,请尝试TFS Sidekicks。
答案 1 :(得分:6)
如果您正在尝试使用TFS Sidekicks,并且无法弄清楚如何,那么它位于Tools,Team Foundation Sidekicks,Status Sidekick下。您将需要展开该窗口,但您将能够搜索用户名的锁。
答案 2 :(得分:4)
我认为使用tf.exe甚至tfpt.exe (The Power Tool command line)无法做到这一点。您需要查看挂起的更改集以查找锁定的更改。您可以使用Power Tool commandlets在powershell中执行此操作,或者您可以使用以下一些运行TFS API的.NET代码来执行此操作:
using Microsoft.TeamFoundation.Client;
using Microsoft.TeamFoundation.VersionControl.Client;
namespace TfsApiExample
{
class Program
{
static void Main(string[] args)
{
GetLockedFiles("http://tfsserver:8080","$/TeamProject");
}
private static void GetLockedFiles(string serverUrl, string serverPath)
{
TeamFoundationServer tfs = new TeamFoundationServer(serverUrl);
VersionControlServer vcServer = (VersionControlServer)tfs.GetService(typeof(VersionControlServer));
// Search for pending sets for all users in all
// workspaces under the passed path.
PendingSet[] pendingSets = vcServer.QueryPendingSets(
new string[] { serverPath },
RecursionType.Full,
null,
null);
Console.WriteLine(
"Found {0} pending sets under {1}. Searching for Locks...",
pendingSets.Length,
serverPath);
foreach (PendingSet changeset in pendingSets)
{
foreach(PendingChange change in changeset.PendingChanges)
{
if (change.IsLock)
{
// We have a lock, display details about it.
Console.WriteLine(
"{0} : Locked for {1} by {2}",
change.ServerItem,
change.LockLevelName,
changeset.OwnerName);
}
}
}
}
}
}
答案 3 :(得分:-5)
我找到了一个GUI选项。
那么简单:)