| $file->author = 'Unknown';␊ |
| }␊ |
| $file->fullpath = ($folder) ? $folder.'/'.$file->file : $file->file;␊ |
| if ($file->type == 'commit') {␊ |
| // We have a submodule␊ |
| $file = $this->getSubmodule($file, $commit);␊ |
| }␊ |
| $res[] = $file;␊ |
| }␊ |
| return $res;␊ |
|
| escapeshellarg($commit));␊ |
| }␊ |
| ␊ |
| /*␊ |
| * =====================================================␊ |
| * Specific Git Commands␊ |
| * =====================================================␊ |
| */␊ |
| ␊ |
| /**␊ |
| * Get submodule details.␊ |
| *␊ |
| * Given a "commit" file in the tree, find the submodule details.␊ |
| *␊ |
| * @param stdClass File description of the module␊ |
| * @param string Current commit␊ |
| * @return stdClass File description␊ |
| */␊ |
| public function getSubmodule($file, $commit)␊ |
| {␊ |
| $file->type = 'extern';␊ |
| $info = $this->getFileInfo('.gitmodules', $commit);␊ |
| if ($info == false) {␊ |
| return $file;␊ |
| }␊ |
| $gitmodules = $this->getBlob($info);␊ |
| if (preg_match('#\[submodule\s+\"'.$file->fullpath.'\"\]\s+path\s=\s(\S+)\s+url\s=\s(\S+)#mi', $gitmodules, $matches)) {␊ |
| $file->extern = $matches[2];␊ |
| }␊ |
| return $file;␊ |
| }␊ |
| ␊ |
| } |