From: Junio C Hamano Date: Wed, 20 Feb 2008 23:42:52 GMT Subject: Re: Built-in checkout: wrong behaviour in subdirectories Message-ID: <7vd4qr2o03.fsf@gitster.siamese.dyndns.org> In-Reply-To: <7vhcg32p0i.fsf@gitster.siamese.dyndns.org> Junio C Hamano writes: > Daniel Barkalow writes: > >> Junio: it looks like something used to cause read-tree to be run with >> pwd being the working tree root in git-checkout.sh. > > "Something"? I think we explicitly cdup when switching > branches, and we should do the same in C rewrite. > > # We are switching branches and checking out trees, so > # we *NEED* to be at the toplevel. > cd_to_toplevel Isn't it just the matter of not passing prefix to topts in merge_working_tree()? Your other calls to unpack_trees() do not seem to pass bogus prefix to it. IIRC, the "prefix" to unpack_trees() is not about the path limiter, but grafting a tree into a place where it originally was not intended to be (i.e. to support "read-tree --prefix").