+ /**
+ * Decodes unicode characters in git filenames
+ * They begin and end with double quote characters, and may contain
+ * backslash + 3 letter octal code numbers representing the character.
+ *
+ * For example,
+ * > "t\303\244st.txt"
+ * means
+ * > täst.txt
+ *
+ * On the shell, you can pipe them into "printf" and have them decoded.
+ *
+ * @param string Encoded git file name
+ *
+ * @return string Decoded file name
+ */
+ protected function decodeFileName($name)
+ {
+ $name = substr($name, 1, -1);
+ $name = str_replace('\"', '"', $name);
+ $name = preg_replace_callback(
+ '#\\\\[0-7]{3}#',
+ function ($ar) {
+ return chr(octdec(substr($ar[0], 1)));
+ },
+ $name
+ );
+ return $name;
+ }
+
+ /**
+ * Return array with all file paths in this repository
+ *
+ * @return array
+ */