提交给分支机构和主管理员的文件之间不同的文件列表

时间:2019-06-07 11:37:09

标签: git gitlab

我正在尝试在Gitlab上设置一些自动棉绒。

我们有一个包含许多Python脚本和Jupyter笔记本的存储库。

我们会定期从master克隆一个新分支,进行更改,将新的或修改的(或两者)脚本提交到新的远程分支,然后在Gitlab上创建一个合并请求以将文件合并到{ {1}}。

我正在尝试仅在提交时对这些更改过的文件进行梳理,并且仅在强行管线成功之前不希望合并请求(这是我拥有的Gitlab功能)在存储库上启用)。

为此,我需要知道在提交(最好是master)分支之间更改了哪些文件。

首先,我使用以下命令:master

这是独立于git diff-tree --no-commit-id --name-only -r $CI_COMMIT_SH分支(例如,它只是列出了作为提交一部分而更改的所有文件。在个人提交时,这非常出色。

但是,我们遇到了以下问题:

  • 已提交3个文件->全部失败->管道失败,MR被阻止
  • 已修复并提交2个文件->都通过了lint->管道成功
  • MR成为可能,因为尽管有1个文件仍处于“ lint-failed”状态,但最新的管道已成功完成

因此,现在我采用的方法是尝试比较提交-和作为合并请求的一部分被合并的文件(在Gitlab,master中可能)-与{{1 }}分支。

我尝试使用on: merge,但这会返回存储库中的所有文件。

我尝试使用master来在本地完美运行,但是在Gitlab管道中出现错误git diff master --name-status

我在此调用中的语法是否做错了,还是有更好的方法来解决此问题?我正处于尝试手动检索文件大小,然后git diff $CI_COMMIT_REF_NAME..master --name-status到另一个分支并检索该分支的文件大小以进行比较的阶段……但这是很多工作,同样也很难做到。

预先感谢

0 个答案:

没有答案