使用 jQAssistant 和 Git 插件来确定作者更改的文件

问题描述 投票:0回答:1

我正在尝试构建一个查询来列出作者更改的所有文件(以便稍后根据基于构造型的其他信息来过滤它们)。

当前查询返回许多文件 - 可能是由于合并(?)

我对Git / Graph Model的理解是这样的:

我当前使用的查询:

MATCH (author:Git:Author)-[:COMMITTED]->(commit:Git:Commit)-[cc:CONTAINS_CHANGE]->(change:Git:Change)-[]->(file:Git:File)
WHERE author.email="[email protected]"
RETURN file.relativePath
ORDER BY file.relativePath ASC

这会返回太多文件。我查看的一些随机样本并未在该文件的 git 历史记录中显示该开发人员。我认为这是由于一些合并而发生的?

随机样本显示感兴趣的作者和文件的一些路径:

但是使用 IDE 查看该文件的 git 历史记录并没有显示作者。

使用 git 命令返回的列表更接近我的预期结果:

git log --no-merges --author="developer-of-interest" --name-only --pretty=format:"" | sort -u

我很确定 Neo4j 查询有问题?

如何忽略那些由合并引起的提交? (如果这是问题所在)

git neo4j cypher jqassistant
1个回答
0
投票

也许您只需要返回不同的文件:

MATCH (author:Git:Author)-[:COMMITTED]->(:Git:Commit)-[:CONTAINS_CHANGE]->(:Git:Change)-->(file:Git:File)
WHERE author.email="[email protected]"
WITH DISTINCT file
RETURN file.relativePath
ORDER BY file.relativePath ASC

此外,如果返回相同的结果,请从查询中省略

:Git
标签。通过较少的过滤,查询将运行得更快。

© www.soinside.com 2019 - 2024. All rights reserved.