From 94da55d15efb24a36540420273d213a9767d3e67 Mon Sep 17 00:00:00 2001 From: William MARTIN Date: Thu, 26 May 2011 09:56:04 +0200 Subject: [PATCH] Fix tags extraction from git repository (issue 675) --- src/IDF/Scm/Git.php | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/src/IDF/Scm/Git.php b/src/IDF/Scm/Git.php index 926f738..021090e 100644 --- a/src/IDF/Scm/Git.php +++ b/src/IDF/Scm/Git.php @@ -209,7 +209,7 @@ class IDF_Scm_Git extends IDF_Scm return $this->cache['tags']; } $cmd = Pluf::f('idf_exec_cmd_prefix', '') - .sprintf('GIT_DIR=%s %s for-each-ref --format="%%(taggerdate:iso)%%(committerdate:iso) %%(objectname) %%(refname)" refs/tags', + .sprintf('GIT_DIR=%s %s for-each-ref --format="%%(objectname) %%(refname)" refs/tags', escapeshellarg($this->repo), Pluf::f('git_path', 'git')); self::exec('IDF_Scm_Git::getTags', $cmd, $out, $return); @@ -221,15 +221,12 @@ class IDF_Scm_Git extends IDF_Scm rsort($out); $res = array(); foreach ($out as $b) { - $elts = explode(' ', $b, 5); - $tag = substr(trim($elts[4]), 10); - if (false !== strpos($tag, '/')) { - $res[$elts[3]] = $b; - } else { - $res[$tag] = ''; - } + $elts = explode(' ', $b, 2); + $tag = substr(trim($elts[1]), 10); // Remove refs/tags/ prefix + $res[$tag] = ''; } $this->cache['tags'] = $res; + return $res; }