2016-04-29 52 views
5

TFS 2015年更新2带来的Git LFS支持,但是当我试图用它与布赖恩·凯勒VS2015ALM虚拟机(升级到更新2),我得到这个异常:使用git LFS与TFS 2015年更新2 OnPremise

git-lfs/1.2.0 (GitHub; windows amd64; go 1.6.1; git 386c5d8) 
git version 2.8.1.windows.1 

$ git-lfs.exe smudge -- Image1.jpg 
Error downloading object: Image1.jpg (968bda1e0a17e295e265311f93bc4e631e171 
d776d51c6d7a43b52185c82631a) 

Your user name must be of the form DOMAIN\user. It is currently brian%!(EXTRA st 
ring=string) 
goroutine 1 [running]: 
github.com/github/git-lfs/lfs.Stack(0x0, 0x0, 0x0) 
     C:/Users/techn/go/src/github.com/github/git-lfs/lfs/errors.go:566 +0x87 
github.com/github/git-lfs/commands.logPanicToWriter(0x1a42c0, 0xc082020020, 0x1b 
54a0, 0xc0823ae1a0) 
     C:/Users/techn/go/src/github.com/github/git-lfs/commands/commands.go:195 
+0xf87 
github.com/github/git-lfs/commands.logPanic(0x1b54a0, 0xc0823ae1a0, 0x0, 0x0) 
     C:/Users/techn/go/src/github.com/github/git-lfs/commands/commands.go:159 
+0x419 
github.com/github/git-lfs/commands.handlePanic(0x1b54a0, 0xc0823ae1a0, 0x0, 0x0) 

     C:/Users/techn/go/src/github.com/github/git-lfs/commands/commands.go:134 
+0x55 
github.com/github/git-lfs/commands.LoggedError(0x1b54a0, 0xc0823ae1a0, 0xa25980, 
0x21, 0xc082029c88, 0x2, 0x2) 
     C:/Users/techn/go/src/github.com/github/git-lfs/commands/commands.go:84 
+0x89 
github.com/github/git-lfs/commands.smudgeCommand(0xc52680, 0xc0820f81e0, 0x1, 0x 
2) 
     C:/Users/techn/go/src/github.com/github/git-lfs/commands/command_smudge. 
go:79 +0xdd2 
github.com/github/git-lfs/vendor/_nuts/github.com/spf13/cobra.(*Command).execute 
(0xc52680, 0xc0820f8040, 0x2, 0x2, 0x0, 0x0) 
     C:/Users/techn/go/src/github.com/github/git-lfs/vendor/_nuts/github.com/ 
spf13/cobra/command.go:477 +0x3fb 
github.com/github/git-lfs/vendor/_nuts/github.com/spf13/cobra.(*Command).Execute 
(0xc536c0, 0x0, 0x0) 
     C:/Users/techn/go/src/github.com/github/git-lfs/vendor/_nuts/github.com/ 
spf13/cobra/command.go:551 +0x593 
github.com/github/git-lfs/commands.Run() 
     C:/Users/techn/go/src/github.com/github/git-lfs/commands/commands.go:99 
+0x2a 
main.main() 
     C:/Users/techn/go/src/github.com/github/git-lfs/git-lfs.go:34 +0x135 

ENV: 
LocalWorkingDir=C:\Users\Brian\Source\Repos\DemoGitLfs 
LocalGitDir=C:\Users\Brian\Source\Repos\DemoGitLfs\.git 
LocalGitStorageDir=C:\Users\Brian\Source\Repos\DemoGitLfs\.git 
LocalMediaDir=C:\Users\Brian\Source\Repos\DemoGitLfs\.git\lfs\objects 
LocalReferenceDir= 
TempDir=C:\Users\Brian\Source\Repos\DemoGitLfs\.git\lfs\tmp 
ConcurrentTransfers=1 
BatchTransfer=true 
GIT_DIR=.git 
GIT_LFS_PATH=C:\Program Files\Git LFS 
GIT_PREFIX= 

当我尝试使用git.exe推送并在VS2015U2第一次推送后工作时,会附加此消息。但是现在当我尝试用git.exe或VS2015U2重新克隆我的回购库(结帐失败)时,我得到了此错误。顺便说一句,VS在这种情况下完全崩溃。我尝试了与VSTS相同的操作,并没有发生错误(使用git.exe,GitExtensions或VS2015U2)。所以这似乎是一个问题,如何提供凭据,但如何解决它?

回购步骤:

  1. 创建于TFS门户网站回购
  2. 克隆它与VS或Git的
  3. 执行 “混帐LFS安装”
  4. 执行 “混帐LFS滤波道” *。 JPG“”
  5. 添加图片到工作区
  6. 提交
  7. 执行“混帐推原稿在主” =>失败,git.exe
  8. 执行‘混帐推起源大师’=>与VS作品
  9. 添加第二个图像,并承诺
  10. 推现在与git.exe
  11. 删除本地库
  12. 克隆回购=>失败上结帐用git.exe或VS

我“克隆-n”试图避免即时结帐,然后我执行“的git LFS安装”和“GIT中结帐主” ,发生同样的例外情况: 您的用户nam e必须是DOMAIN \ user形式。它目前是brian%!(另外st ring =字符串)

+0

可能重复[LFS:GX凭证for..XXXX..not found。您的用户名必须是DOMAIN \ user形式(https://stackoverflow.com/questions/42986608/lfs-git-credentials-for-xxxx-not-found-your-user-name-must-be-of -the形式-DO) –

回答

3

Git Credential Manager for Windows帮助我得到它的工作。

只需使用GCMW并在第一凭据提示(证书存储在Windows凭据管理器):

  • 用户名: “vsalm \布赖恩”
  • 密码: “P2ssw0rd”

它工作。

  • 没有GCMW,它不起作用。
  • 它的工作原理与通过GIT中2.8安装,1.2.2和1.3手动安装提供的GCMW(通过添加在gitconfig“[凭证]助手=经理”)

注:克隆与VS2015U2没有按没有工作,修复计划在U3。更多信息:https://connect.microsoft.com/VisualStudio/feedback/details/2657886/cant-use-git-lfs-with-tfs-2015-update-2-onpremise

0

根据错误异常,您的TFS服务器正在使用“NTLM”进行身份验证。通过此身份验证,您必须输入用户名:{DOMAIN} {user}和密码:{pass}。因此,请将您的git凭证更新为此格式,然后重试。查看此链接了解详情:NTLM Authentication With Git-Lfs

如果LFS服务器返回。“WWW验证:NTLM”头,我们将 一套LFS {}终点。访问是NTLM和重新提交的HTTP请求。 后续请求将通过ntlm认证流程。

我们将NTLM证书存储在凭证助手中。当用户 被提示输入其凭据,他们必须使用 用户名:{DOMAIN} {}用户和密码:{}传递

的NTLM通讯协定将由隐藏 实施InitHandshake的ntlm.go类进行处理,身份验证和挑战。这个 允许对现有的client.go类进行模仿改变。