summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke Diamand <luke@diamand.org>2017-04-15 11:36:09 +0100
committerJunio C Hamano <gitster@pobox.com>2017-04-16 21:13:26 -0700
commiteff451101dcdc6fe023861c6c02a9bacc43f372e (patch)
tree0b421a145c7ed74a7a2d3157d611a012d82bdfee
parent78871bf46f18cd92e744a993c1d6422ff30d8bca (diff)
downloadgit-ld/p4-current-branch-fix.tar.gz
git-p4: don't use name-rev to get current branchld/p4-current-branch-fix
git-p4 was using "git name-rev" to find out the current branch. That is not safe, since if multiple branches or tags point at the same revision, the result obtained might not be what is expected. Instead use "git symbolic-ref". Signed-off-by: Luke Diamand <luke@diamand.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rwxr-xr-xgit-p4.py7
-rwxr-xr-xt/t9807-git-p4-submit.sh2
2 files changed, 2 insertions, 7 deletions
diff --git a/git-p4.py b/git-p4.py
index 584b817757..8d151da91b 100755
--- a/git-p4.py
+++ b/git-p4.py
@@ -602,12 +602,7 @@ def p4Where(depotPath):
return clientPath
def currentGitBranch():
- retcode = system(["git", "symbolic-ref", "-q", "HEAD"], ignore_error=True)
- if retcode != 0:
- # on a detached head
- return None
- else:
- return read_pipe(["git", "name-rev", "HEAD"]).split(" ")[1].strip()
+ return read_pipe_text(["git", "symbolic-ref", "--short", "-q", "HEAD"])
def isValidGitDir(path):
return git_dir(path) != None
diff --git a/t/t9807-git-p4-submit.sh b/t/t9807-git-p4-submit.sh
index ae05816e09..3457d5db64 100755
--- a/t/t9807-git-p4-submit.sh
+++ b/t/t9807-git-p4-submit.sh
@@ -139,7 +139,7 @@ test_expect_success 'submit with master branch name from argv' '
)
'
-test_expect_failure 'allow submit from branch with same revision but different name' '
+test_expect_success 'allow submit from branch with same revision but different name' '
test_when_finished cleanup_git &&
git p4 clone --dest="$git" //depot &&
(