git.cweiske.de
/
phorkie.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
customizable top bar
[phorkie.git]
/
src
/
phorkie
/
Repository.php
diff --git
a/src/phorkie/Repository.php
b/src/phorkie/Repository.php
index 6c71b4733006130fa06b915f7ddcec75001c3887..c854cf167186455fc77049914b2c32212be936de 100644
(file)
--- a/
src/phorkie/Repository.php
+++ b/
src/phorkie/Repository.php
@@
-118,6
+118,16
@@
class Repository
* @return File[] Array of files
*/
public function getFiles()
* @return File[] Array of files
*/
public function getFiles()
+ {
+ $files = $this->getFilePaths();
+ $arFiles = array();
+ foreach ($files as $name) {
+ $arFiles[] = new File($name, $this);
+ }
+ return $arFiles;
+ }
+
+ protected function getFilePaths()
{
if ($this->hash === null) {
$hash = 'HEAD';
{
if ($this->hash === null) {
$hash = 'HEAD';
@@
-129,28
+139,23
@@
class Repository
->setOption('name-only')
->addArgument($hash)
->execute();
->setOption('name-only')
->addArgument($hash)
->execute();
- $files = explode("\n", trim($output));
- $arFiles = array();
- foreach ($files as $name) {
- $arFiles[] = new File($name, $this);
- }
- return $arFiles;
+ return explode("\n", trim($output));
}
public function getFileByName($name, $bHasToExist = true)
{
}
public function getFileByName($name, $bHasToExist = true)
{
- $base = basename($name);
- if ($base != $name) {
- throw new Exception('No directories supported for now');
- }
+ $name = Tools::sanitizeFilename($name);
if ($name == '') {
throw new Exception_Input('Empty file name given');
}
if ($name == '') {
throw new Exception_Input('Empty file name given');
}
- $fullpath = $this->workDir . '/' . $base;
- if ($bHasToExist && !is_readable($fullpath)) {
- throw new Exception_Input('File does not exist');
+
+ if ($bHasToExist) {
+ $files = $this->getFilePaths();
+ if (array_search($name, $files) === false) {
+ throw new Exception_Input('File does not exist');
+ }
}
}
- return new File($
bas
e, $this);
+ return new File($
nam
e, $this);
}
public function hasFile($name)
}
public function hasFile($name)