1

我一直在与我们的一位 Linux 管理员合作,以从我们的 Linux 环境中获取对 TFS 服务器的命令行访问权限,但我们并不是很成功。

使用 TF 命令登录时,我们没有收到任何反馈,没有关于登录是否成功的信息,也没有提示我们输入密码。如果我们使用 Help 命令,我们能够从中获得正常的反馈,在这种情况下,我们会获得我们正在寻找的任何命令的帮助。

TFS 服务器上的事件查看器日志中没有任何内容,Linux 机器上也没有与这些尝试和(失败?)登录尝试有关的任何内容。我们已经确认我们可以从 Linux 机器访问 TFS Web 服务,并且测试人员可以访问至少一个团队项目。

根据此处的文章:http: //msdn.microsoft.com/en-us/library/hh190725 (v=vs.100).aspx我们应该收到凭据提示,或者至少是密码,如果其中一个/两个都是未指定:

“如果您没有存储凭据,并且您尝试运行不带此选项的 tf 命令,系统将提示您指定凭据。如果您尝试使用此选项运行 tf 命令但未指定密码,系统将提示您指定一个。”

当前设置:

TFS 服务器正在运行带有 Team Foundation Server 2010 的 Windows Server 2008 R2

Linux 环境正在运行带有 JRE 1.7 和 Team Explorer Everywhere CLC 12.0.1 的 Red Hat Enterprise Linux Server 版本 5.8 (Tikanga),从http://www.microsoft.com/en-us/download/details.aspx?id=40785下载

TEE CLC 是按照下载页面中的说明安装的,我们不使用 Eclipse。确切的安装步骤(帮助不大):

To install the Cross-Platform Command-Line Client for Team Foundation Server
1) Unzip the archive (TEE-CLC-12.0.0.zip file) that contains the client.
2) Configure your shell or system path to include the folder to which you unzipped the archive.
3) To verify that the client is working, at a command prompt, type tf, and then press the ENTER key.
If the client is correctly installed, output appears, starting with "Microsoft Team Explorer Everywhere Command-line Client (version 12.0.0)".

We do get the "Microsoft Team Explorer Everywhere Command-line Client (version 12.0.0)" verbiage when we run tf by itself.

以下是在 Linux 机器上尝试过的命令列表:

tf -login
tf -login:<username>
tf -login:<username>@<companyurl>.com
tf -login:<username>@<domain>
tf -login: <username>@<domain>
tf -login:<username>@<domain>
tf -login:<username>@<tfsservername>
tf -login:<username>@<tfsservername>.<companyurl>.com
tf -login: <username>@<tfsservername>.<companyurl>.com
tf -login:http://<tfsservername>:8080/tfs/<username>
tf -login: <username>@http://<tfsservername>:8080/tfs
tf -login: <username>@<tfsservername>
tf -login:<username>@<tfsservername>
tf -login:<username>@http://<tfsservername>:8080/tfs
tf -login:<username>@http://<tfsservername>:8080/tfs,<password>
tf -login:<username>@<tfsservername>
tf -login|<username>@<tfsservername>
tf -login|<username>@<domain>
tf -login:<username>@<domain>,<password>
tf -login:<username>@<domain>,
tf -login:<username>@<companyurl>
tf -login:<username>@<domain>
tf -login:<username>@<domain>,<password>
tf -login:<username>@<domain>,
tf -login:<username>@<domain>,
tf -login:
tf -login:<domain>\<username>,<password>
tf -login:<domain>\<username>,<password>
tf -login:<username>@<domain>
tf -login:<username>@<domain>
tf -login:<username>
tf -login:<domain>\<username>
tf -login:http://<tfsservername>:8080/tfs\<username>
tf -login:<domain>\<username> -server:http://<tfsservername>:8080/tfs
tf -login:<domain>\<username> -server:http://<tfsservername>/tfs
tf -login:<username>@<domain> -server:http://<tfsservername>/tfs
tf -login:<username>@<domain> -server:http://<tfsservername>/tfs
tf -login:<username>@<domain>,<password>
tf -login:<username>@<domain>,
tf -login:<username>@<domain> -server:sudo less /var/log/messages
tf -login:<domain>\<username> -server:http://<tfsservername>:8080/tfs
tf -login:<username>@<domain>  -server:http://<tfsservername>:8080/tfs
tf -login:<username>@<domain>  -server:http://<tfsservername>
tf -login:<username>@<domain>  -server:http://<tfsservername>/tfs
tf -login:<username>@<domain>  -server:http://<tfsservername>/
tf -login:<username>@<domain>  -server:http://<tfsservername>:8080/tfs/
tf -login:<username>@<companyurl>.com  -server:http://<tfsservername>:8080/tfs/
tf -login:<username>@<companyurl>  -server:http://<tfsservername>:8080/tfs/
tf -login:<username>@<domain>  -server:http://<tfsservername>:8080/tfs/

当我们尝试这些时,我们得到一个错误(这是预期的,参数是错误的):

tf workspaces /collection:http://<servername>:8080/tfs/<collectionname>
An input validation error occurred: The workspace name '/collection:http://<servername>:8080/tfs/<collectionname>' contains invalid characters.  Only valid NTFS characters are permitted.
tf workspaces collection:http://<servername>:8080/tfs/<collectionname>
An input validation error occurred: The workspace name '/collection:http://<servername>:8080/tfs/<collectionname>' contains invalid characters.  Only valid NTFS characters are permitted.

(注意:服务器和集合名称是简单的字母数字字符串,根本没有特殊字符)

当我们尝试以下命令时,我们(再次)没有得到任何反馈:

tf workspaces -collection:http://<servername>:8080/tfs/<collectionname>

tf dir $/<projectname>

tf dir $/<project name> -collection:http://<servername>:8080/tfs/<collectionname>

根据另一项建议,我们在用户配置文件下查找 ~/Microsoft/Team Foundation/4.0/Logs 文件夹,该文件夹不存在。事实上,Linux 机器上的任何地方都不存在带有不区分大小写单词“Foundation”的文件夹。

由于我们没有收到来自该命令的任何反馈,因此我们不知道问题可能是什么,也不知道接下来我们的故障排除应该带我们去哪里。

4

1 回答 1

1

日志不在~/Microsoft它们在~/.microsoft。(注意点。)

没有日志很难说问题出在哪里:您没有在第一个示例中指定命令,因为-login它不是命令,而是一个选项。您需要指定登录凭据选项和命令。例如:

tf workspaces -login:... -collection:...

但是如果没有日志,就很难判断问题出在哪里。

于 2014-03-24T20:53:41.133 回答