我们正在将我们的TFS回购迁移到Mercurial,因为我们有足够的TFS.不幸的是TFS在它让我们走之前就把最后一个曲线球抛向了我们.我们编写了一个脚本,我们打算"获取"每个变更集(包括时间戳,签到注释等),然后将它们添加到Mercurial仓库并检查它.
不幸的是,当我们执行tf get * /version:C111 /overwrite命令时,TFS表现得非常奇怪.它会立即返回"所有文件都是最新的".但这是不可能的.工作区文件夹是空的!并且查看111变更集的详细信息非常清楚地表明变更集包含"内容",即repo肯定不是空的.
可能是什么导致了这个?
Rob*_*ott 15
如果找不到您传入的itemspec, TF将返回"所有文件都是最新的" .如果不包含绝对路径,则假定为相对路径.
例如,如果您发送
tf get myFile.cs /version:1009 /force
Run Code Online (Sandbox Code Playgroud)
它在myFile.cs的当前目录中查找,该目录不存在,因此返回"所有文件都是最新的".我们真正想要的是
tf get C:\myproject\myFile.cs /version:1009 /force
Run Code Online (Sandbox Code Playgroud)
与通配符相同,例如
tf get D:\project\* /version:C111 /overwrite
Run Code Online (Sandbox Code Playgroud)
查看itemspec链接了解更多信息.
我之前也遇到过同样的问题,在拔掉头发后,唯一为我们纠正的方法是取消映射工作区,删除所有本地文件,然后将工作区重新映射到磁盘 - TFS 最终会得到然后是文件的新副本。
我们使用的是 TFS 2005,因为它的价值 - 我很遗憾听到新版本中仍然出现这种情况。如果您找到其他解决方案,请将其发布在这里,因为我很想知道您是如何解决的。
| 归档时间: |
|
| 查看次数: |
20386 次 |
| 最近记录: |