private function updateAuxiliaryFields()
 {
     $aux_map = array();
     foreach ($this->auxiliaryFields as $aux_field) {
         $key = $aux_field->getStorageKey();
         if ($key !== null) {
             $val = $aux_field->getValueForStorage();
             $aux_map[$key] = $val;
         }
     }
     if (!$aux_map) {
         return;
     }
     $revision = $this->revision;
     $fields = id(new DifferentialAuxiliaryField())->loadAllWhere('revisionPHID = %s AND name IN (%Ls)', $revision->getPHID(), array_keys($aux_map));
     $fields = mpull($fields, null, 'getName');
     foreach ($aux_map as $key => $val) {
         $obj = idx($fields, $key);
         if (!strlen($val)) {
             // If the new value is empty, just delete the old row if one exists and
             // don't add a new row if it doesn't.
             if ($obj) {
                 $obj->delete();
             }
         } else {
             if (!$obj) {
                 $obj = new DifferentialAuxiliaryField();
                 $obj->setRevisionPHID($revision->getPHID());
                 $obj->setName($key);
             }
             if ($obj->getValue() !== $val) {
                 $obj->setValue($val);
                 $obj->save();
             }
         }
     }
 }