我们在工作中使用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。
答案 0 :(得分:9)
git-tfs parses your commit comments提供与您的变更集的工作项关联。默认情况下,如果您输入#1234
,则git-tfs checkin
和rcheckin
命令会尝试将工作项1234与签入相关联。
如果您在提交消息中使用#1234
以将这些与不同的错误跟踪系统相关联,那么这显然是冲突的。在这种特殊情况下,git-tfs
无法找到TFS工作项,并且正在为您提供此消息。
从recently开始,您可以提供配置值:
git-tfs.work-item-regex
以覆盖#1234
行为。虽然无法禁用此功能,但您可以将其设置为不太可能与之冲突的内容。例如:
git-tfs.work-item-regex=TFS WORK ITEM:(?<item_id>\d+)
答案 1 :(得分:-2)
我认为我收到此错误是因为原始的git tfs克隆是在另一台计算机上完成的。阅读git-tfs文档,听起来我应该从我的旧机器(而不是复制)进行git克隆,然后是git tfs bootstrap。但是,在尝试此操作时,我仍会遇到同样的错误。
它会改变什么,因为当git-tfs与TFS交互时会出现问题......
任何可能导致这种情况的想法?我能想到的另一个不同之处是我的旧机器安装了VS2010和VS2012,而我的新机器只安装了VS2012。
更新:请参阅@ethomson的其他答案,这确实是一个很好的答案......