• S
    Don't allow contrib/workdir/git-new-workdir to trash existing dirs · ea09ea22
    Shawn O. Pearce 提交于
    Recently I found that doing a sequence like the following:
    
      git-new-workdir a b
      ...
      git-new-workdir a b
    
    by accident will cause a (and now also b) to have an infinite cycle
    in its refs directory.  This is caused by git-new-workdir trying
    to create the "refs" symlink over again, only during the second
    time it is being created within a's refs directory and is now also
    pointing back at a's refs.
    
    This causes confusion in git as suddenly branches are named things
    like "refs/refs/refs/refs/refs/refs/refs/heads/foo" instead of the
    more commonly accepted "refs/heads/foo".  Plenty of commands start
    to see ambiguous ref names and others just take ages to compute.
    
    git-clone has the same safety check, so git-new-workdir should
    behave just like it.
    Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
    Signed-off-by: NJunio C Hamano <gitster@pobox.com>
    ea09ea22
git-new-workdir 1.8 KB