mirror of
https://we.phorge.it/source/phorge.git
synced 2024-11-19 13:22:42 +01:00
Don't try to synchronize repositories with no working copy
Summary: Ref T4292. Sometimes, we may not have a working copy for a repository. The easiest way to get into this condition is to deactivate a repository. We could try to clone + fetch in this case, but that's kind of complex, and there's an easy command that administrators can run manually. For now, just tell them to do that. This affects the inactive repositories on `secure`, like rGITCOINS. Test Plan: Removed working copy, got message. Reviewers: chad Reviewed By: chad Maniphest Tasks: T4292 Differential Revision: https://secure.phabricator.com/D15786
This commit is contained in:
parent
ab20f243b3
commit
00885edc47
1 changed files with 15 additions and 1 deletions
|
@ -2528,8 +2528,22 @@ final class PhabricatorRepository extends PhabricatorRepositoryDAO
|
||||||
|
|
||||||
private function synchronizeWorkingCopyFromBinding($binding) {
|
private function synchronizeWorkingCopyFromBinding($binding) {
|
||||||
$fetch_uri = $this->getClusterRepositoryURIFromBinding($binding);
|
$fetch_uri = $this->getClusterRepositoryURIFromBinding($binding);
|
||||||
|
$local_path = $this->getLocalPath();
|
||||||
|
|
||||||
if ($this->isGit()) {
|
if ($this->isGit()) {
|
||||||
|
if (!Filesystem::pathExists($local_path)) {
|
||||||
|
$device = AlmanacKeys::getLiveDevice();
|
||||||
|
throw new Exception(
|
||||||
|
pht(
|
||||||
|
'Repository "%s" does not have a working copy on this device '.
|
||||||
|
'yet, so it can not be synchronized. Wait for the daemons to '.
|
||||||
|
'construct one or run `bin/repository update %s` on this host '.
|
||||||
|
'("%s") to build it explicitly.',
|
||||||
|
$this->getDisplayName(),
|
||||||
|
$this->getMonogram(),
|
||||||
|
$device->getName()));
|
||||||
|
}
|
||||||
|
|
||||||
$argv = array(
|
$argv = array(
|
||||||
'fetch --prune -- %s %s',
|
'fetch --prune -- %s %s',
|
||||||
$fetch_uri,
|
$fetch_uri,
|
||||||
|
@ -2546,7 +2560,7 @@ final class PhabricatorRepository extends PhabricatorRepositoryDAO
|
||||||
->setProtocol($fetch_uri->getProtocol())
|
->setProtocol($fetch_uri->getProtocol())
|
||||||
->newFuture();
|
->newFuture();
|
||||||
|
|
||||||
$future->setCWD($this->getLocalPath());
|
$future->setCWD($local_path);
|
||||||
|
|
||||||
$future->resolvex();
|
$future->resolvex();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue