From 5fb561806726df0360ff1ae2d20026c538fb7c89 Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Thu, 16 Mar 2017 22:56:22 -0700 Subject: DONTMERGE git-p4: "name-rev HEAD" is not a way to find the current branch 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 --- git-p4.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'git-p4.py') diff --git a/git-p4.py b/git-p4.py index 0cfc8668d6..6a448a573b 100755 --- a/git-p4.py +++ b/git-p4.py @@ -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") -- cgit v1.2.1