[PATCH] checkout-cache fix
authorJunio C Hamano <junkio@cox.net>
Thu, 12 May 2005 00:02:45 +0000 (17:02 -0700)
committerPetr Baudis <xpasky@machine.sinus.cz>
Thu, 12 May 2005 19:36:27 +0000 (21:36 +0200)
commit1126b419d6835f6b8c45ccfffc0ada9b09e32d87
treecf4636b1dedf52ac77749a71b95d5b6df60fbae8
parent14242464811bff9e8d1af8eb33367a01480a18d0
[PATCH] checkout-cache fix

Fix checkout-cache when existing work tree interferes with the checkout.

This is essentially the same one as the last one I sent to the
GIT list, except that the patch is rebased to the current tip of
the git-pb tree, and an unnecessary call to create_directories()
removed.

The checkout-cache command gets confused when checking out a
file in a subdirectory and the work tree has a symlink to the
subdirectory.  Also it fails to check things out when there is a
non-directory in the work tree when cache expects a directory
there, and vice versa.  This patch fixes the first problem by
making sure all the leading paths in the file being checked out
are indeed directories, and also fixes directory vs
non-directory conflicts when '-f' is specified by removing the
offending paths.

Signed-off-by: Junio C Hamano <junkio@cox.net>
Signed-off-by: Petr Baudis <pasky@ucw.cz>
checkout-cache.c