如何使用多次提交检查/列出PR中更改的所有文件

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

我想检查一下可能有多次提交的PR中更改的文件。我已经看到了关于如何查看两次提交之间更改的文件的多个答案,但这不是我的用例。我的仓库中有一个名为“test-proxy”的文件夹。只有在测试代理文件夹发生更改时,我才会在管道中触发测试代理部署阶段。说,我打开公关

提交1 - 测试代理文件夹中没有更改 - >测试代理部署阶段不会触发(预期)

commit 2 - 测试代理文件夹中的更改 - >测试代理部署阶段触发器(预期)

提交3 - 测试代理文件夹中没有更改 - >测试代理部署阶段不会触发 - (不是预期的)!

这并不理想,因为测试代理测试用例可能在提交2中失败,如果阶段不再运行,将会被忽略。我们不能让开发人员自行决定是否确保舞台通过。它应该由管道处理。现在,为了运行此PR的测试代理部署阶段,开发人员必须对该文件夹进行虚拟提交。

请帮助解决上述问题。

我已经尝试了在其他答案中找到的大多数git命令进行测试。这两个是我在我的管道中的那些,即使他们没有给出确切的结果 -

  1. git diff-tree --name-only HEAD ^ HEAD | grep test-proxy
  2. git show --no-commit-id --name-only -r $(git log --pretty = format:'%h'-n 1)| grep test-proxy

预期 -

当PR中的任何提交对test-proxy文件夹进行更改时,应始终触发测试代理部署阶段。

git pull-request jenkins-groovy
1个回答
2
投票

你想要检测PR的尖端和PR从当前分支分支的点之间的任何差异(称之为master):

git diff-tree --name-only $(git merge-base master HEAD) HEAD -- test-proxy

如果您只是对是否有变化感兴趣,请投入--quiet--exit-code

git diff-tree --quiet --exit-code $(git merge-base master HEAD) HEAD -- test-proxy

请注意,如果test-proxy没有变化,这将报告成功。

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