| ... | @@ -237,9 +237,13 @@ pub fn build(b: *Builder) !void { | ... | @@ -237,9 +237,13 @@ pub fn build(b: *Builder) !void { |
| 237 | // Detect dirty changes. | 237 | // Detect dirty changes. |
| 238 | const diff_untrimmed = b.execAllowFail(&[_][]const u8{ | 238 | const diff_untrimmed = b.execAllowFail(&[_][]const u8{ |
| 239 | "git", "-C", b.build_root, "diff", "HEAD", | 239 | "git", "-C", b.build_root, "diff", "HEAD", |
| 240 | }, &code, .Ignore) catch |err| { | 240 | }, &code, .Ignore) catch |err| switch (err) { |
| 241 | std.debug.print("Error executing git diff: {}", .{err}); | 241 | // when there is a big diff, usually after resolving merge conflicts, but before a commit |
| 242 | std.process.exit(1); | 242 | error.StreamTooLong => "dirty_diff_too_big", |
| | 243 | else => { |
| | 244 | std.debug.print("Error executing git diff: {}\n", .{err}); |
| | 245 | std.process.exit(1); |
| | 246 | }, |
| 243 | }; | 247 | }; |
| 244 | const trimmed_diff = mem.trim(u8, diff_untrimmed, " \n\r"); | 248 | const trimmed_diff = mem.trim(u8, diff_untrimmed, " \n\r"); |
| 245 | const dirty_suffix = if (trimmed_diff.len == 0) "" else s: { | 249 | const dirty_suffix = if (trimmed_diff.len == 0) "" else s: { |