Re: [PATCH 2/3] When creating branch c/d check that branch c does not already exists.
- From
Christian Couder <chriscool@tuxfamily.org>
- Date
- Mar 24, 2007, 05:34 UTC
- Message-ID
- <200703240634.14284.chriscool@tuxfamily.org>
- In-Reply-To
- <20070324063010.a114722e.chriscool@tuxfamily.org>
Oops, sorry this is an old mail that was in my Draft folder and should not have been sent...
Christian.
Le samedi 24 mars 2007 06:30, Christian Couder a écrit :
Show 35 quoted lines
> 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 <chriscool@tuxfamily.org> > --- > git-branch.sh | 10 ++++++++++ > 1 files changed, 10 insertions(+), 0 deletions(-) > > diff --git a/git-branch.sh b/git-branch.sh > index 4826c75..4a1e7d9 100755 > --- a/git-branch.sh > +++ b/git-branch.sh > @@ -122,6 +122,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 > + > if git-show-ref --verify --quiet -- "refs/heads/$branchname" > then > if test '' = "$force"