I'm testing out the sparse checkout feature of Git on my large (14GB) repository and am running into a problem. When I add "dir1/" to sparse-checkout and then run "git read-tree -mu HEAD" I see dir1 as expected. But when I add "dir2/" to sparse-checkout and read-tree again I see dir2 and dir3 appear and they're not nested. If I replace "dir2/" with "dir3/" in the sparse-checkout file, then I see dir1 and dir3 but not dir2 as expected again. How can I debug this problem?
threads / discuss / 31864
Unexpected directories from read-tree
Subject: Unexpected directories from read-tree
Re: Unexpected directories from read-tree
On Fri, Oct 19, 2012 at 6:10 AM, Uri Moszkowicz <uri@4refs.com> wrote:
Show 7 quoted lines
> I'm testing out the sparse checkout feature of Git on my large (14GB) > repository and am running into a problem. When I add "dir1/" to > sparse-checkout and then run "git read-tree -mu HEAD" I see dir1 as > expected. But when I add "dir2/" to sparse-checkout and read-tree > again I see dir2 and dir3 appear and they're not nested. If I replace > "dir2/" with "dir3/" in the sparse-checkout file, then I see dir1 and > dir3 but not dir2 as expected again. How can I debug this problem?
Posting here is step 1. What version are you using? You can look at unpack-trees.c The function that does the check is excluded_from_list. You should check "ls-files -t", see if CE_SKIP_WORKTREE is set correctly for all dir1/*, dir2/* and dir3/*. Can you recreate a minimal test case for the problem?
-- Duy
Re: Unexpected directories from read-tree
I am using 1.8.0-rc2 but also tried 1.7.8.4. Thanks for the suggestion to use "ls-files -t" - that's exactly what I was looking for. With that I was easily able to tell what the problem is: missing "/" from the sparse-checkout file.
On Thu, Oct 18, 2012 at 10:34 PM, Nguyen Thai Ngoc Duy <pclouds@gmail.com> wrote:
Show 16 quoted lines
> On Fri, Oct 19, 2012 at 6:10 AM, Uri Moszkowicz <uri@4refs.com> wrote: >> I'm testing out the sparse checkout feature of Git on my large (14GB) >> repository and am running into a problem. When I add "dir1/" to >> sparse-checkout and then run "git read-tree -mu HEAD" I see dir1 as >> expected. But when I add "dir2/" to sparse-checkout and read-tree >> again I see dir2 and dir3 appear and they're not nested. If I replace >> "dir2/" with "dir3/" in the sparse-checkout file, then I see dir1 and >> dir3 but not dir2 as expected again. How can I debug this problem? > > Posting here is step 1. What version are you using? You can look at > unpack-trees.c The function that does the check is excluded_from_list. > You should check "ls-files -t", see if CE_SKIP_WORKTREE is set > correctly for all dir1/*, dir2/* and dir3/*. Can you recreate a > minimal test case for the problem? > -- > Duy