我们正在使用TFS Git来创建和合并拉取请求。这适用于现有用户,但是当我们在AD中添加新用户(复制与现有用户完全相同的权限)时,来自新用户的拉取请求会收到错误(合并失败)。
通常可以通过将用户添加到项目团队来授予对TFS的访问权限 - 没有用户似乎拥有我们可以找到的任何其他访问权限。
我们已经尝试过多个具有不同名称的新用户(其他所有用户都与现有用户相同),但我们并没有真正了解为何会发生这种情况。
我们还验证了使用现有用户在完全相同的代码上创建的拉取请求没有此问题。
我们可以做些什么来调查合并失败的原因?
答案 0 :(得分:0)
尝试合并Visual Studio中的分支,以查看是否会出现冲突或详细错误消息。如果存在冲突,请使用合并工具解决冲突,然后提交并推送合并。
答案 1 :(得分:0)
在eventvwr.exe中检查Applications and Services Logs => Microsoft-Team Foundation Server => Debug
以获取以下信息:
LibGit2Sharp.LibGit2SharpException:无法解析签名 - “name”和“email”都不应包含尖括号字符。 在LibGit2Sharp.Core.Ensure.HandleError(Int32结果) at LibGit2Sharp.Core.Proxy.git_signature_new(String name,String email,DateTimeOffset when) at LibGit2Sharp.Core.Proxy.git_commit_create(RepositorySafeHandle repo,String referenceName,签名作者,签名提交者,字符串消息,树状树,GitOid [] parentIds) at LibGit2Sharp.ObjectDatabase.CreateCommit(签名作者,签名提交者,字符串消息,树状树,IEnumerable`1父母,布尔值美化消息,Nullable`1 commentChar) at LibGit2Sharp.ObjectDatabase.CreateCommit(签名作者,签名提交者,字符串消息,树树,IEnumerable`1父母,布尔值美化消息) 在Microsoft.TeamFoundation.Git.Server.Native.LibGit2NativeLibrary.TryMerge(MergeParameters mergeParameters,CustomerIntelligenceData ciData) 在Microsoft.TeamFoundation.Git.Server.ITfsGitRepositoryExtensions.CreateNativeMerge(ITfsGitRepository存储库,IVssRequestContext requestContext,TfsGitPullRequest pullRequest,String targetRefName,Sha1Id targetBranchTipCommit,Sha1Id sourceCommit,CustomerIntelligenceData ciData,GitPullRequestCompletionOptions completionOptions,Nullable`1& mergeCommitId,List`1& includedCommits) 在Microsoft.TeamFoundation.Git.Server.TeamFoundationGitPullRequestService.CreateUpToDateMerge(IVssRequestContext requestContext,ITfsGitRepository repository,TfsGitPullRequest pullRequest,TfsGitRef& targetRef,Boolean forCompletion,CustomerIntelligenceData ciData)
我们的案例中的问题是需要从违规用户中移除尖括号(< >
)&#39;电子邮件。
注意:有一个替代解决方案涉及TFS托管的Git文件路径,指向开发人员上的URI&#39;笔记本电脑here。