| ␊ | 
| /**␊ | 
| * Returns unique certificate values for the given revs and the specific␊ | 
| * cert name␊ | 
| * cert name, optionally prefixed with $prefix␊ | 
| *␊ | 
| * @param array␊ | 
| * @param string␊ | 
| * @param string␊ | 
| * @return array␊ | 
| */␊ | 
| private function _getUniqueCertValuesFor($revs, $certName)␊ | 
| private function _getUniqueCertValuesFor($revs, $certName, $prefix)␊ | 
| {␊ | 
| $certValues = array();␊ | 
| foreach ($revs as $rev)␊ | 
|  | 
| $certs = $this->_getCerts($rev);␊ | 
| if (!array_key_exists($certName, $certs))␊ | 
| continue;␊ | 
| ␊ | 
| $certValues = array_merge($certValues, $certs[$certName]);␊ | 
| foreach ($certs[$certName] as $certValue)␊ | 
| {␊ | 
| $certValues[] = "$prefix$certValue";␊ | 
| }␊ | 
| }␊ | 
| return array_unique($certValues);␊ | 
| }␊ | 
|  | 
| {␊ | 
| $revs = $this->_resolveSelector($commit);␊ | 
| if (count($revs) == 0) return array();␊ | 
| return $this->_getUniqueCertValuesFor($revs, "branch");␊ | 
| return $this->_getUniqueCertValuesFor($revs, "branch", "h:");␊ | 
| }␊ | 
| ␊ | 
| /**␊ | 
|  | 
| }␊ | 
| if ($stanzaline['key'] == "revision")␊ | 
| {␊ | 
| $tags[$stanzaline['hash']] = $tagname;␊ | 
| // FIXME: warn if multiple revisions have␊ | 
| // equally named tags␊ | 
| if (!array_key_exists("t:$tagname", $tags))␊ | 
| {␊ | 
| $tags["t:$tagname"] = $tagname;␊ | 
| }␊ | 
| break;␊ | 
| }␊ | 
| }␊ | 
|  | 
| {␊ | 
| $revs = $this->_resolveSelector($commit);␊ | 
| if (count($revs) == 0) return array();␊ | 
| return $this->_getUniqueCertValuesFor($revs, "tag");␊ | 
| return $this->_getUniqueCertValuesFor($revs, "tag", "t:");␊ | 
| }␊ | 
| ␊ | 
| /**␊ |