Azure DevOps API 代码搜索返回旧文件(已重命名)
AzureDevOps API CodeSearch is returning old file (that has been renamed)
我有一个请求我们所有存储库的服务,然后对于每个存储库,我在存储库中获取所有 csproj 和 vbproj。
我的问题是它 return 同一个文件的两个版本!
例如:
以这种方式创建了一个项目 => MYPROJECT.csproj 并提交,
然后重命名为 MyProject.csproj 并提交。
但是 CodeSearch Api 正在 return 这两个文件!
我怎么知道哪一个是正确的?
文档似乎没有提到它,或者我不明白我需要发送哪些属性,或者哪些属性告诉我这是一个旧文件。
文档
https://docs.microsoft.com/en-us/rest/api/azure/devops/search/code%20search%20results/fetch%20code%20search%20results?view=azure-devops-rest-5.1
URL
https://almsearch.dev.azure.com/MyOrganisation/MyProject/_apis/search/codesearchresults?api-version=5.1-preview.1
BODY
{
'searchText': 'ext:csproj',
'includeFacets': false,
'$skip': 0,
'$top': 1000,
'filters': {
'Project': ['MyProject']
},
'$orderBy': [{
'field': 'filename',
'sortOrder': 'ASC'
}]
}
当我直接在 DevOps 上进行相同的研究时,我在旧文件上看到了这个标志
所以必须有一种方法来判断它是否是旧文件!
我怎样才能得到它?
我收到了相同的消息(我使用 git mv
命令重命名了文件):
我在提交重命名的文件后单击搜索按钮时收到此消息。但是,当我刷新页面时,警告消失了:
对我来说,它看起来像是基于某种本地缓存索引的网络搜索,但它知道某些文件已更改。因此,您将无法通过 REST API 调用实现此目的。
我可以在我这边重现这个问题。在 Tfvc Repo 中,代码搜索结果将 return 文件的所有版本。
根据我的测试,它们之间的区别是versions -> changeid
。
一般changeid
是增量的,可以根据changeid的值来判断新旧版本。这是一个解决方法。
另一方面,我会帮助您在我们的Developer Community论坛上报告这个问题,在我们的工程师确认后,这个问题会报告给产品团队。如果他们查看更新,产品团队将提供更新。
我有一个请求我们所有存储库的服务,然后对于每个存储库,我在存储库中获取所有 csproj 和 vbproj。
我的问题是它 return 同一个文件的两个版本!
例如: 以这种方式创建了一个项目 => MYPROJECT.csproj 并提交, 然后重命名为 MyProject.csproj 并提交。
但是 CodeSearch Api 正在 return 这两个文件! 我怎么知道哪一个是正确的?
文档似乎没有提到它,或者我不明白我需要发送哪些属性,或者哪些属性告诉我这是一个旧文件。
文档
https://docs.microsoft.com/en-us/rest/api/azure/devops/search/code%20search%20results/fetch%20code%20search%20results?view=azure-devops-rest-5.1
URL
https://almsearch.dev.azure.com/MyOrganisation/MyProject/_apis/search/codesearchresults?api-version=5.1-preview.1
BODY
{
'searchText': 'ext:csproj',
'includeFacets': false,
'$skip': 0,
'$top': 1000,
'filters': {
'Project': ['MyProject']
},
'$orderBy': [{
'field': 'filename',
'sortOrder': 'ASC'
}]
}
当我直接在 DevOps 上进行相同的研究时,我在旧文件上看到了这个标志
所以必须有一种方法来判断它是否是旧文件!
我怎样才能得到它?
我收到了相同的消息(我使用 git mv
命令重命名了文件):
我在提交重命名的文件后单击搜索按钮时收到此消息。但是,当我刷新页面时,警告消失了:
对我来说,它看起来像是基于某种本地缓存索引的网络搜索,但它知道某些文件已更改。因此,您将无法通过 REST API 调用实现此目的。
我可以在我这边重现这个问题。在 Tfvc Repo 中,代码搜索结果将 return 文件的所有版本。
根据我的测试,它们之间的区别是versions -> changeid
。
一般changeid
是增量的,可以根据changeid的值来判断新旧版本。这是一个解决方法。
另一方面,我会帮助您在我们的Developer Community论坛上报告这个问题,在我们的工程师确认后,这个问题会报告给产品团队。如果他们查看更新,产品团队将提供更新。