diff options
author | Junio C Hamano <gitster@pobox.com> | 2017-03-16 22:56:22 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2017-03-27 15:14:11 -0700 |
commit | 5fb561806726df0360ff1ae2d20026c538fb7c89 (patch) | |
tree | ee4eb90cb2d4e7c4950944cf0056a17090b75968 | |
parent | 01e054f5f82fc2ab03eaa016286668090e97be1c (diff) | |
download | git-jc/p4-current-branch-fix.tar.gz |
DONTMERGE git-p4: "name-rev HEAD" is not a way to find the current branchjc/p4-current-branch-fix
This function seems to want to learn which branch we are on, and
running "name-rev HEAD" is *NEVER* the right way to do so. If you
are on branch B which happens to point at the same commit as branch
A, "name-rev HEAD" can say either A or B (and it is likely it would
say A simply because it sorts earlier, and the logic seems to favor
the one that was discovered earlier when all else being equal). If
you are on branch B which happens to be pointed by an annotated tag
T, "name-rev HEAD" will say T, not B.
Use "symbolic-ref HEAD" instead.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rwxr-xr-x | git-p4.py | 2 | ||||
-rwxr-xr-x | t/t9807-git-p4-submit.sh | 2 |
2 files changed, 2 insertions, 2 deletions
@@ -549,7 +549,7 @@ def currentGitBranch(): # on a detached head return None else: - return read_pipe(["git", "name-rev", "HEAD"]).split(" ")[1].strip() + return read_pipe(["git", "symbolic-ref", "HEAD"]).strip()[11:] def isValidGitDir(path): if (os.path.exists(path + "/HEAD") diff --git a/t/t9807-git-p4-submit.sh b/t/t9807-git-p4-submit.sh index 4e625fad07..643258500b 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 && ( |