Changeset View
Changeset View
Standalone View
Standalone View
src/applications/diffusion/editor/DiffusionURIEditor.php
Show First 20 Lines • Show All 457 Lines • ▼ Show 20 Lines | foreach ($uris as $uri) { | ||||
if ($uri->getIoType() != PhabricatorRepositoryURI::IO_OBSERVE) { | if ($uri->getIoType() != PhabricatorRepositoryURI::IO_OBSERVE) { | ||||
continue; | continue; | ||||
} | } | ||||
$observe_uri = $uri; | $observe_uri = $uri; | ||||
break; | break; | ||||
} | } | ||||
$was_hosted = $repository->isHosted(); | |||||
if ($observe_uri) { | if ($observe_uri) { | ||||
$repository | $repository | ||||
->setHosted(false) | ->setHosted(false) | ||||
->setDetail('remote-uri', (string)$observe_uri->getEffectiveURI()) | ->setDetail('remote-uri', (string)$observe_uri->getEffectiveURI()) | ||||
->setCredentialPHID($observe_uri->getCredentialPHID()); | ->setCredentialPHID($observe_uri->getCredentialPHID()); | ||||
} else { | } else { | ||||
$repository | $repository | ||||
->setHosted(true) | ->setHosted(true) | ||||
->setDetail('remote-uri', null) | ->setDetail('remote-uri', null) | ||||
->setCredentialPHID(null); | ->setCredentialPHID(null); | ||||
} | } | ||||
$repository->save(); | $repository->save(); | ||||
$is_hosted = $repository->isHosted(); | |||||
// If we've swapped the repository from hosted to observed or vice versa, | |||||
// reset all the cluster version clocks. | |||||
if ($was_hosted != $is_hosted) { | |||||
$cluster_engine = id(new DiffusionRepositoryClusterEngine()) | |||||
->setViewer($this->getActor()) | |||||
->setRepository($repository) | |||||
->synchronizeWorkingCopyAfterHostingChange(); | |||||
} | |||||
return $xactions; | return $xactions; | ||||
} | } | ||||
} | } |