Azure devops AzureDevOps API CodeSearch正在返回旧文件(已重命名)

Azure devops AzureDevOps API CodeSearch正在返回旧文件(已重命名),azure-devops,azure-devops-rest-api,Azure Devops,Azure Devops Rest Api,我有一个请求所有存储库的服务,然后对于每个存储库,我将获得存储库中的所有csproj和vbproj 我的问题是它返回同一文件的两个版本 例: 这样创建了一个项目=>MYPROJECT.csproj并提交, 然后重命名为MyProject.csproj并提交 但是CodeSearchAPI正在返回这两个文件! 我怎么知道哪一个是正确的 文档似乎没有提到它,或者我不理解需要发送哪些属性,或者哪些属性告诉我它是一个旧文件 文件 https://docs.microsoft.com/en-us/rest

我有一个请求所有存储库的服务,然后对于每个存储库,我将获得存储库中的所有csproj和vbproj

我的问题是它返回同一文件的两个版本

例: 这样创建了一个项目=>MYPROJECT.csproj并提交, 然后重命名为MyProject.csproj并提交

但是CodeSearchAPI正在返回这两个文件! 我怎么知道哪一个是正确的

文档似乎没有提到它,或者我不理解需要发送哪些属性,或者哪些属性告诉我它是一个旧文件

文件

https://docs.microsoft.com/en-us/rest/api/azure/devops/search/code%20search%20results/fetch%20code%20search%20results?view=azure-devops-rest-5.1
网址

身体

当我直接在DevOps上进行同样的研究时,我在旧文件上看到了这个标志

因此,必须有一种方法来判断它是否是一个旧文件

如何获取它?

我收到了相同的消息(我使用git mv命令重命名了文件):

我在提交重命名的文件并单击搜索按钮后收到此消息。然而,当我刷新页面时,警告消失了:


对我来说,它看起来像是基于某种本地缓存索引的web搜索,但它知道某些文件已更改。因此,您将无法通过RESTAPI调用实现这一点。

我可以在我这方面重复这个问题。在Tfvc Repo中,代码搜索结果将返回文件的所有版本

根据我的测试,它们之间的区别是
versions->changeid

一般来说,
changeid
是增量的,所以您可以根据changeid的值来判断新旧版本。这是一个解决办法


另一方面,我将帮助您在我们的论坛上报告此问题,在我们的工程师确认后,此问题将报告给产品团队。产品团队在查看时会提供更新。

这是一个TFVC存储库,刷新仍会在文件上显示消息。但我只需要一个布尔值或其他东西,表明这是一个旧版本,如果他们可以显示消息,他们必须是某个地方的属性?感谢您的时间和支持,它也可以帮助,发送给我们的内部Microsoft联系人?changeId是一个GUID,我如何知道它是否递增?是的。你是对的。Changeid只能用于手动比较,不能使用Changeid仅获取最新文件。它有很大的局限性。您可以等待我们的PG团队调查此问题。我也希望这个问题能够从根本上得到解决。
https://almsearch.dev.azure.com/MyOrganisation/MyProject/_apis/search/codesearchresults?api-version=5.1-preview.1
{
    'searchText': 'ext:csproj',
    'includeFacets': false,
    '$skip': 0,
    '$top': 1000,
    'filters': {
        'Project': ['MyProject']
    },
    '$orderBy': [{
        'field': 'filename',
        'sortOrder': 'ASC'
    }]
}