mirror of
https://we.phorge.it/source/arcanist.git
synced 2024-12-01 19:22:41 +01:00
Fix arc patch in git-svn repos
Summary: Check that the base revision is a valid git ref before trying to create a branch starting at that rev. When arc patch is used in a git repo using the git-svn bridge, the base reversion is a uri for the svn rev, not a git ref. Test Plan: run arc patch on a git-svn repo, run it on a pure git repo, and verify it works for both Reviewers: epriestley, btrahan CC: jungejason, aran, epriestley Differential Revision: https://secure.phabricator.com/D1505
This commit is contained in:
parent
02f111ba0b
commit
975b541d26
1 changed files with 10 additions and 1 deletions
|
@ -256,7 +256,16 @@ EOTEXT
|
||||||
$repository_api = $this->getRepositoryAPI();
|
$repository_api = $this->getRepositoryAPI();
|
||||||
$base_revision = $bundle->getBaseRevision();
|
$base_revision = $bundle->getBaseRevision();
|
||||||
|
|
||||||
if ($base_revision) {
|
// verify the base revision is valid
|
||||||
|
// in a working copy that uses the git-svn bridge, the base revision might
|
||||||
|
// be a svn uri instead of a git ref
|
||||||
|
list($err) = exec_manual(
|
||||||
|
'(cd %s; git rev-parse --verify %s)',
|
||||||
|
$repository_api->getPath(),
|
||||||
|
$base_revision
|
||||||
|
);
|
||||||
|
|
||||||
|
if ($base_revision && !$err) {
|
||||||
execx(
|
execx(
|
||||||
'(cd %s; git checkout -b %s %s)',
|
'(cd %s; git checkout -b %s %s)',
|
||||||
$repository_api->getPath(),
|
$repository_api->getPath(),
|
||||||
|
|
Loading…
Reference in a new issue