如何仅对git diff文件运行swiftlint

时间:2019-05-03 05:38:11

标签: swift git version-control swiftlint

我正在研究一个iOS Swift项目。 Git用于版本控制。我只想为新更改的文件运行swiftlint工具。换句话说,我只想检查直到上一次提交之前已编辑的文件的静态问题。如果可能,我将在Build phase -> Run script中添加脚本,以便每个开发人员只能针对他们正在处理的文件找到静态问题。有可能吗?

2 个答案:

答案 0 :(得分:0)

在构建阶段添加以下命令-运行脚本会有所帮助。

下面的代码将适用于暂存文件

git diff --cached --name-only | grep "\.swift" | while read filename; do
    swiftlint lint --path "$filename";
done

对于未暂存的文件,您需要删除--cached自变量

git diff --name-only | grep "\.swift" | while read filename; do
    swiftlint lint --path "$filename";
done

答案 1 :(得分:0)

有一个项目lint-diffs,可以在diff输出文件上运行任何linter。

要报告所有棉绒错误,请将always_report=.*设置为仅在差异行上报告,请将此留空。这样可以逐步改善旧版存储库。