| $parsed_keyinfo = IDF_Scm_Monotone_BasicIO::parse($keyinfo);␊ | 
| }␊ | 
| catch (Exception $e) {␊ | 
| echo $e->getTraceAsString(); exit;␊ | 
| throw new IDF_Scm_Exception(sprintf(␊ | 
| __('Could not parse key information: %s'), $e->getMessage()␊ | 
| ));␊ | 
|  | 
| );␊ | 
| $clientkey_pubdata = self::_mtn_exec($cmd);␊ | 
| ␊ | 
| $cmd = sprintf('au put_public_key --confdir=%s %s',␊ | 
| escapeshellarg($projectpath),␊ | 
| $cmd = sprintf('au put_public_key --db=%s %s',␊ | 
| escapeshellarg($dbfile),␊ | 
| escapeshellarg($clientkey_pubdata)␊ | 
| );␊ | 
| $keyinfo = self::_mtn_exec($cmd);␊ | 
| self::_mtn_exec($cmd);␊ | 
| }␊ | 
| ␊ | 
| //␊ | 
|  | 
| $stdio = $mtn->getStdio();␊ | 
| // if the public key did not sign any revisions, drop it from␊ | 
| // the database as well␊ | 
| if (strlen($stdio->exec(array('select', 'k:' . $mtn_key_id))) == 0) {␊ | 
| $stdio->exec(array('drop_public_key', $mtn_key_id));␊ | 
| try {␊ | 
| if (strlen($stdio->exec(array('select', 'k:' . $mtn_key_id))) == 0) {␊ | 
| $stdio->exec(array('drop_public_key', $mtn_key_id));␊ | 
| }␊ | 
| } catch (IDF_Scm_Exception $e) {␊ | 
| if (strpos($e->getMessage(), 'there is no key named') === false)␊ | 
| throw $e;␊ | 
| }␊ | 
| }␊ | 
| }␊ |