| $this->project = $project;␊ |
| }␊ |
| ␊ |
| /**␊ |
| * @see IDF_Scm::getChanges()␊ |
| *␊ |
| * Git command output is like :␊ |
| * M doc/Guide utilisateur/Manuel_distrib.tex␊ |
| * M doc/Guide utilisateur/Manuel_intro.tex␊ |
| * M doc/Guide utilisateur/Manuel_libpegase_exemples.tex␊ |
| * M doc/Guide utilisateur/Manuel_page1_version.tex␊ |
| * A doc/Guide utilisateur/images/ftp-nautilus.png␊ |
| * M doc/Guide utilisateur/textes/log_boot_PEGASE.txt␊ |
| *␊ |
| * Status letters mean : Added (A), Deleted (D), Modified (M), Renamed (R)␊ |
| */␊ |
| public function getChanges($commit)␊ |
| {␊ |
| $cmd = sprintf('GIT_DIR=%s '.Pluf::f('git_path', 'git').' show %s --name-status --pretty="format:" --diff-filter="[A|D|M|R]"',␊ |
| escapeshellarg($this->repo),␊ |
| escapeshellarg($commit));␊ |
| $out = array();␊ |
| $cmd = Pluf::f('idf_exec_cmd_prefix', '').$cmd;␊ |
| self::exec('IDF_Scm_Git::getChanges', $cmd, $out);␊ |
| ␊ |
| $return = (object) array(␊ |
| 'additions' => array(),␊ |
| 'deletions' => array(),␊ |
| 'renames' => array(),␊ |
| 'patches' => array(),␊ |
| 'properties' => array(),␊ |
| ); ␊ |
| ␊ |
| foreach ($out as $line) {␊ |
| $line = trim($line);␊ |
| if ($line != '') {␊ |
| $action = $line[0];␊ |
| $filename = trim(substr($line, 1));␊ |
| ␊ |
| if ($action == 'A') {␊ |
| $return->additions[] = $filename;␊ |
| } else if ($action == 'D') {␊ |
| $return->deletions[] = $filename;␊ |
| } else if ($action == 'M') {␊ |
| $return->patches[] = $filename;␊ |
| } else if ($action == 'R') {␊ |
| $return->renames[] = $filename;␊ |
| } ␊ |
| }␊ |
| }␊ |
| ␊ |
| return $return;␊ |
| }␊ |
| ␊ |
| public function getRepositorySize()␊ |
| {␊ |
| if (!file_exists($this->repo)) {␊ |