From 5be7649131379e49f27d89cb6dd5bd8d0912a3d6 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Thu, 28 Sep 2006 07:00:38 +0200 Subject: [PATCH] When creating branch c/d check that branch c does not already exists. With packed refs, there may not be a ".git/refs/heads/c" file when branch c exists. And currently in this case, there is no check to prevent creation of branch c/d. This should probably be rewritten in C and done after the ref lock has been taken to make sure no race exists though. This is mainly to make all test cases in "t3210-pack-refs.sh" work. Signed-off-by: Christian Couder Signed-off-by: Junio C Hamano --- git-branch.sh | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/git-branch.sh b/git-branch.sh index bf84b30695..c61683033d 100755 --- a/git-branch.sh +++ b/git-branch.sh @@ -121,6 +121,16 @@ then done fi +branchdir=$(dirname $branchname) +while test "$branchdir" != "." +do + if git-show-ref --verify --quiet -- "refs/heads/$branchdir" + then + die "$branchdir already exists." + fi + branchdir=$(dirname $branchdir) +done + prev='' if git-show-ref --verify --quiet -- "refs/heads/$branchname" then -- 2.11.4.GIT