| // As we are limiting to a given folder, we need to find␊ |
| // the tree corresponding to this folder.␊ |
| $found = false;␊ |
| foreach ($this->getTreeInfo($co->tree) as $file) {␊ |
| foreach ($this->getTreeInfo($co->tree, true, $folder) as $file) {␊ |
| if ($file->type == 'tree' and $file->file == $folder) {␊ |
| $found = true;␊ |
| $tree = $file->hash;␊ |
|
| * @param bool Do we recurse in subtrees (true)␊ |
| * @return array Array of file information.␊ |
| */␊ |
| public function getTreeInfo($tree, $recurse=true)␊ |
| public function getTreeInfo($tree, $recurse=true, $folder='')␊ |
| {␊ |
| if ('tree' != $this->testHash($tree)) {␊ |
| throw new Exception(sprintf(__('Not a valid tree: %s.'), $tree));␊ |
| }␊ |
| $cmd_tmpl = 'GIT_DIR=%s git ls-tree%s -t -l %s';␊ |
| $cmd_tmpl = 'GIT_DIR=%s git ls-tree%s -t -l %s %s';␊ |
| $cmd = sprintf($cmd_tmpl, ␊ |
| escapeshellarg($this->repo), ␊ |
| ($recurse) ? ' -r' : '',␊ |
| escapeshellarg($tree));␊ |
| escapeshellarg($tree), escapeshellarg($folder));␊ |
| $out = array();␊ |
| $res = array();␊ |
| IDF_Scm::exec($cmd, $out);␊ |