1
0
Fork 0
mirror of https://we.phorge.it/source/arcanist.git synced 2024-11-29 18: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:
Nick Harper 2012-01-26 18:36:43 -08:00
parent 02f111ba0b
commit 975b541d26

View file

@ -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(),