protected function getCustomTransactionOldValue(PhabricatorLiskDAO $object, PhabricatorApplicationTransaction $xaction)
 {
     switch ($xaction->getTransactionType()) {
         case PhabricatorRepositoryTransaction::TYPE_VCS:
             return $object->getVersionControlSystem();
         case PhabricatorRepositoryTransaction::TYPE_ACTIVATE:
             return $object->isTracked();
         case PhabricatorRepositoryTransaction::TYPE_NAME:
             return $object->getName();
         case PhabricatorRepositoryTransaction::TYPE_DESCRIPTION:
             return $object->getDetail('description');
         case PhabricatorRepositoryTransaction::TYPE_ENCODING:
             return $object->getDetail('encoding');
         case PhabricatorRepositoryTransaction::TYPE_DEFAULT_BRANCH:
             return $object->getDetail('default-branch');
         case PhabricatorRepositoryTransaction::TYPE_TRACK_ONLY:
             return array_keys($object->getDetail('branch-filter', array()));
         case PhabricatorRepositoryTransaction::TYPE_AUTOCLOSE_ONLY:
             return array_keys($object->getDetail('close-commits-filter', array()));
         case PhabricatorRepositoryTransaction::TYPE_UUID:
             return $object->getUUID();
         case PhabricatorRepositoryTransaction::TYPE_SVN_SUBPATH:
             return $object->getDetail('svn-subpath');
         case PhabricatorRepositoryTransaction::TYPE_NOTIFY:
             return (int) (!$object->getDetail('herald-disabled'));
         case PhabricatorRepositoryTransaction::TYPE_AUTOCLOSE:
             return (int) (!$object->getDetail('disable-autoclose'));
         case PhabricatorRepositoryTransaction::TYPE_REMOTE_URI:
             return $object->getDetail('remote-uri');
         case PhabricatorRepositoryTransaction::TYPE_LOCAL_PATH:
             return $object->getDetail('local-path');
         case PhabricatorRepositoryTransaction::TYPE_HOSTING:
             return $object->isHosted();
         case PhabricatorRepositoryTransaction::TYPE_PROTOCOL_HTTP:
             return $object->getServeOverHTTP();
         case PhabricatorRepositoryTransaction::TYPE_PROTOCOL_SSH:
             return $object->getServeOverSSH();
         case PhabricatorRepositoryTransaction::TYPE_PUSH_POLICY:
             return $object->getPushPolicy();
         case PhabricatorRepositoryTransaction::TYPE_CREDENTIAL:
             return $object->getCredentialPHID();
         case PhabricatorRepositoryTransaction::TYPE_DANGEROUS:
             return $object->shouldAllowDangerousChanges();
         case PhabricatorRepositoryTransaction::TYPE_SLUG:
             return $object->getRepositorySlug();
         case PhabricatorRepositoryTransaction::TYPE_SERVICE:
             return $object->getAlmanacServicePHID();
         case PhabricatorRepositoryTransaction::TYPE_SYMBOLS_LANGUAGE:
             return $object->getSymbolLanguages();
         case PhabricatorRepositoryTransaction::TYPE_SYMBOLS_SOURCES:
             return $object->getSymbolSources();
         case PhabricatorRepositoryTransaction::TYPE_STAGING_URI:
             return $object->getDetail('staging-uri');
         case PhabricatorRepositoryTransaction::TYPE_AUTOMATION_BLUEPRINTS:
             return $object->getDetail('automation.blueprintPHIDs', array());
         case PhabricatorRepositoryTransaction::TYPE_CALLSIGN:
             return $object->getCallsign();
     }
 }
 protected function getCustomTransactionOldValue(PhabricatorLiskDAO $object, PhabricatorApplicationTransaction $xaction)
 {
     switch ($xaction->getTransactionType()) {
         case PhabricatorRepositoryTransaction::TYPE_VCS:
             return $object->getVersionControlSystem();
         case PhabricatorRepositoryTransaction::TYPE_ACTIVATE:
             return $object->isTracked();
         case PhabricatorRepositoryTransaction::TYPE_NAME:
             return $object->getName();
         case PhabricatorRepositoryTransaction::TYPE_DESCRIPTION:
             return $object->getDetail('description');
         case PhabricatorRepositoryTransaction::TYPE_ENCODING:
             return $object->getDetail('encoding');
         case PhabricatorRepositoryTransaction::TYPE_DEFAULT_BRANCH:
             return $object->getDetail('default-branch');
         case PhabricatorRepositoryTransaction::TYPE_TRACK_ONLY:
             return array_keys($object->getDetail('branch-filter', array()));
         case PhabricatorRepositoryTransaction::TYPE_AUTOCLOSE_ONLY:
             return array_keys($object->getDetail('close-commits-filter', array()));
         case PhabricatorRepositoryTransaction::TYPE_UUID:
             return $object->getUUID();
         case PhabricatorRepositoryTransaction::TYPE_SVN_SUBPATH:
             return $object->getDetail('svn-subpath');
         case PhabricatorRepositoryTransaction::TYPE_NOTIFY:
             return (int) (!$object->getDetail('herald-disabled'));
         case PhabricatorRepositoryTransaction::TYPE_AUTOCLOSE:
             return (int) (!$object->getDetail('disable-autoclose'));
         case PhabricatorRepositoryTransaction::TYPE_REMOTE_URI:
             return $object->getDetail('remote-uri');
         case PhabricatorRepositoryTransaction::TYPE_LOCAL_PATH:
             return $object->getDetail('local-path');
         case PhabricatorRepositoryTransaction::TYPE_HOSTING:
             return $object->isHosted();
         case PhabricatorRepositoryTransaction::TYPE_PROTOCOL_HTTP:
             return $object->getServeOverHTTP();
         case PhabricatorRepositoryTransaction::TYPE_PROTOCOL_SSH:
             return $object->getServeOverSSH();
         case PhabricatorRepositoryTransaction::TYPE_PUSH_POLICY:
             return $object->getPushPolicy();
         case PhabricatorRepositoryTransaction::TYPE_CREDENTIAL:
             return $object->getCredentialPHID();
         case PhabricatorRepositoryTransaction::TYPE_DANGEROUS:
             return $object->shouldAllowDangerousChanges();
         case PhabricatorRepositoryTransaction::TYPE_CLONE_NAME:
             return $object->getDetail('clone-name');
     }
 }