1

我们在工作中使用 TFS 2010,我使用 git-tfs,所以我可以在本地使用 git。我最近升级了我的机器,并复制了我所有的本地存储库文件夹。

我似乎能够从 TFS 中提取并在本地提交。但是,当我这样做时git tfs rcheckin,我现在收到错误消息:

TF26198: The work item does not exist, or you do not have permission to access it.

但是,它在使用git tfs checkintool.

我推测我收到此错误是因为原件git tfs clone是在另一台计算机上完成的。阅读 git-tfs 文档,听起来我应该git clone从我的旧机器上做一个(而不是复制),然后是一个git tfs bootstrap. 但是,在尝试此操作时,我仍然遇到相同的错误。

有什么想法可能导致这种情况吗?我能想到的唯一其他区别是我的旧机器安装了 VS2010 和 VS2012,而我的新机器只安装了 VS2012。

4

2 回答 2

9

git-tfs解析您的提交评论以提供与您的变更集的工作项关联。默认情况下,如果您输入#1234,则git-tfs checkinandrcheckin命令将尝试将工作项 1234 与签入相关联。

如果您#1234在提交消息中使用以将它们与不同的错误跟踪系统相关联,这显然是冲突的。在这种特殊情况下,git-tfs找不到 TFS 工作项并为您提供此消息。

截至最近,您可以提供一个配置值:

git-tfs.work-item-regex

为了覆盖#1234行为。虽然无法禁用此功能,但您可以将其设置为不太可能与之冲突的内容。例如:

git-tfs.work-item-regex=TFS WORK ITEM:(?<item_id>\d+)
于 2014-02-02T05:36:08.373 回答
-2

我推测我收到此错误是因为原始 git tfs 克隆是在另一台计算机上完成的。阅读 git-tfs 文档,听起来我应该从我的旧机器上做一个 git 克隆(而不是复制),然后是一个 git tfs 引导程序。但是,在尝试此操作时,我仍然遇到相同的错误。

它不会改变任何事情,因为当 git-tfs 与 TFS 交互时这是一个问题......

有什么想法可能导致这种情况吗?我能想到的唯一其他区别是我的旧机器安装了 VS2010 和 VS2012,而我的新机器只安装了 VS2012。

更新:请参阅@ethomson 的另一个答案,这确实是一个很好的答案......

于 2014-02-01T10:28:41.037 回答