From d535f522e6b94c8426e33e224858a4978e3781a6 Mon Sep 17 00:00:00 2001 From: Chuck Hagenbuch Date: Fri, 12 Jun 2009 23:35:31 -0400 Subject: [PATCH] - throw an error up front if the git binary isn't found - add .git or /.git to the sourceroot path if it doesn't look right --- framework/Vcs/lib/Horde/Vcs/Git.php | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/framework/Vcs/lib/Horde/Vcs/Git.php b/framework/Vcs/lib/Horde/Vcs/Git.php index 9788d97af..047bc318a 100644 --- a/framework/Vcs/lib/Horde/Vcs/Git.php +++ b/framework/Vcs/lib/Horde/Vcs/Git.php @@ -65,8 +65,22 @@ class Horde_Vcs_Git extends Horde_Vcs { parent::__construct($params); + if (!is_executable($this->getPath('git'))) { + throw new Horde_Vcs_Exception('Missing git binary (' . $this->getPath('git') . ' is missing or not executable)'); + } + $v = trim(shell_exec($this->getPath('git') . ' --version')); $this->version = preg_replace('/[^\d\.]/', '', $v); + + // Try to find the repository if we don't have the exact path. @TODO put + // this into a builder method/object and cache the results. + if (!file_exists($this->sourceroot() . '/HEAD')) { + if (file_exists($this->sourceroot() . '.git/HEAD')) { + $this->_sourceroot .= '.git'; + } elseif (file_exists($this->sourceroot() . '/.git/HEAD')) { + $this->_sourceroot .= '/.git'; + } + } } /** -- 2.11.0