Checked out file permissions changed breaking builds

I just spent a day or 2 hunting down a newly failing build. It’s a problem on travis’ side, because the build worked fine when pushed and failed later in a scheduled build.

After digging through phar files with a hex editor I found the cause to be that unlike my local system (and what I’ve read elsewhere) files checked out out by git are no longer being checked out as 644, but as 664 on travis.

Was this permission change deliberate? If so, is there a way to put it back the way it was before?

Here’s a build excerpt to demonstrate the problem. Note the 644 permission from git log and the 664 from ls:

$ ls -l src/
total 60
-rw-rw-r-- 1 travis travis 14910 Dec 14 13:11 CallFinder.php
-rw-rw-r-- 1 travis travis 23188 Dec 14 13:11 Kint.php
drwxrwxr-x 3 travis travis  4096 Dec 14 13:11 Object
drwxrwxr-x 2 travis travis  4096 Dec 14 13:11 Parser
drwxrwxr-x 4 travis travis  4096 Dec 14 13:11 Renderer
-rw-rw-r-- 1 travis travis  7234 Dec 14 13:11 Utils.php
The command "ls -l src/" exited with 0.
$ git log -p -1 src/Utils.php
commit 03b0b2f327b8b4ff9b2f3c22719ec4cf490b006e
Author: Jonathan Vollebregt <>
Date:   Fri Nov 30 10:25:03 2018 +0100
    I keep running into edge cases with text truncating in renderers,
    so I'm moving it into Utils and adding some tests.
diff --git a/src/Utils.php b/src/Utils.php
index 5c24c61..48ba382 100644
--- a/src/Utils.php
+++ b/src/Utils.php