mirror of
https://we.phorge.it/source/arcanist.git
synced 2024-11-26 00:32:41 +01:00
Use passthru to run git fetch
in arc land
so password prompts work
Summary: Fixes T10314. In `arc land`, we currently run `git fetch` as a subprocess. However, this can prevent password prompts (when fetching over HTTP with basic authentication) from working properly. Instead, use passthru to redirect stdin/stdout to the subprocess so the user can type their password. This adds a little extra clutter to the `arc land` output but I think that's OK. Test Plan: See T10314, @maxie confirmed this fixes the issue. Reviewers: chad Reviewed By: chad Subscribers: maxie Maniphest Tasks: T10314 Differential Revision: https://secure.phabricator.com/D15233
This commit is contained in:
parent
57f6fb59d7
commit
d6b1531b94
1 changed files with 13 additions and 1 deletions
|
@ -128,10 +128,22 @@ final class ArcanistGitLandEngine
|
|||
pht('FETCH'),
|
||||
pht('Fetching %s...', $ref));
|
||||
|
||||
$api->execxLocal(
|
||||
// NOTE: Although this output isn't hugely useful, we need to passthru
|
||||
// instead of using a subprocess here because `git fetch` may prompt the
|
||||
// user to enter a password if they're fetching over HTTP with basic
|
||||
// authentication. See T10314.
|
||||
|
||||
$err = $api->execPassthru(
|
||||
'fetch -- %s %s',
|
||||
$this->getTargetRemote(),
|
||||
$this->getTargetOnto());
|
||||
|
||||
if ($err) {
|
||||
throw new ArcanistUsageException(
|
||||
pht(
|
||||
'Fetch failed! Fix the error and run "%s" again.',
|
||||
'arc land'));
|
||||
}
|
||||
}
|
||||
|
||||
private function updateWorkingCopy() {
|
||||
|
|
Loading…
Reference in a new issue