Re: sparse checkout - weird behavior
Related bug (maybe the same). Reproduction: $ git clone g...@github.com:jekyll/jekyll.git --no-checkout Cloning into 'jekyll'... remote: Counting objects: 41331, done. remote: Compressing objects: 100% (5/5), done. remote: Total 41331 (delta 0), reused 0 (delta 0), pack-reused 41326 Receiving objects: 100% (41331/41331), 11.91 MiB | 9.15 MiB/s, done. Resolving deltas: 100% (26530/26530), done. $ cd jekyll $ git config core.sparsecheckout true $ echo 'CONDUCT.markdown' > .git/info/sparse-checkout $ echo 'Gemfile' >> .git/info/sparse-checkout $ echo 'Rakefile' >> .git/info/sparse-checkout $ echo 'appveyor.yml' >> .git/info/sparse-checkout $ git checkout -- Your branch is up-to-date with 'origin/master'. $ ls CONDUCT.markdown Gemfile Rakefile appveyor.yml lib I was not expecting to see 'lib' in the resulting file list I didn't say so before - I'm on a Mac, with a homebrew installed Git 2.11.0 - Paul
Re: sparse checkout - weird behavior
On Wed, Jan 25, 2017 at 09:59:38PM -0500, Paul Hammant wrote: > Here's a simple reproducible bug - something unexpected in sparse-checkout > mode: > > $ git clone g...@github.com:jekyll/jekyll.git --no-checkout > Cloning into 'jekyll'... > remote: Counting objects: 41331, done. > remote: Compressing objects: 100% (5/5), done. > remote: Total 41331 (delta 0), reused 0 (delta 0), pack-reused 41326 > Receiving objects: 100% (41331/41331), 11.91 MiB | 7.98 MiB/s, done. > Resolving deltas: 100% (26530/26530), done. > $ cd jekyll > $ ls > $ git config core.sparsecheckout true > $ echo 'docs*' > .git/info/sparse-checkout > $ git read-tree -mu HEAD > $ ls > docs rake > > I didn't expect to see 'rake' amongst the results. If you look inside the rake/ directory, you should see that only "docs.rake" was checked out. The sparse-checkout file uses the same parser as .git/info/exclude. One important aspect of that file is that entries are _not_ left-anchored unless they start with "/". So you asked Git to include files named "docs*" anywhere in the tree. You probably wanted just: echo /docs >.git/info/sparse-checkout -Peff
Re: sparse checkout - weird behavior
On Wed, Jan 25, 2017 at 10:21:19PM -0500, Paul Hammant wrote: > Related bug (maybe the same). Reproduction: > > $ git clone g...@github.com:jekyll/jekyll.git --no-checkout > Cloning into 'jekyll'... > remote: Counting objects: 41331, done. > remote: Compressing objects: 100% (5/5), done. > remote: Total 41331 (delta 0), reused 0 (delta 0), pack-reused 41326 > Receiving objects: 100% (41331/41331), 11.91 MiB | 9.15 MiB/s, done. > Resolving deltas: 100% (26530/26530), done. > $ cd jekyll > $ git config core.sparsecheckout true > $ echo 'CONDUCT.markdown' > .git/info/sparse-checkout > $ echo 'Gemfile' >> .git/info/sparse-checkout > $ echo 'Rakefile' >> .git/info/sparse-checkout > $ echo 'appveyor.yml' >> .git/info/sparse-checkout > $ git checkout -- > Your branch is up-to-date with 'origin/master'. > $ ls > CONDUCT.markdown Gemfile Rakefile appveyor.yml lib > > I was not expecting to see 'lib' in the resulting file list Yep, I think this is the same problem. Inside lib, you get only "lib/theme_template/Gemfile", because it matches your unanchored pattern. Using "/Gemfile" in the sparse-checkout file fixes it. -Peff
Re: sparse checkout - weird behavior
Well I feel a bit silly. Thanks for responding. On Wed, Jan 25, 2017 at 11:59 PM, Jeff King wrote: > On Wed, Jan 25, 2017 at 10:21:19PM -0500, Paul Hammant wrote: > >> Related bug (maybe the same). Reproduction: >> >> $ git clone g...@github.com:jekyll/jekyll.git --no-checkout >> Cloning into 'jekyll'... >> remote: Counting objects: 41331, done. >> remote: Compressing objects: 100% (5/5), done. >> remote: Total 41331 (delta 0), reused 0 (delta 0), pack-reused 41326 >> Receiving objects: 100% (41331/41331), 11.91 MiB | 9.15 MiB/s, done. >> Resolving deltas: 100% (26530/26530), done. >> $ cd jekyll >> $ git config core.sparsecheckout true >> $ echo 'CONDUCT.markdown' > .git/info/sparse-checkout >> $ echo 'Gemfile' >> .git/info/sparse-checkout >> $ echo 'Rakefile' >> .git/info/sparse-checkout >> $ echo 'appveyor.yml' >> .git/info/sparse-checkout >> $ git checkout -- >> Your branch is up-to-date with 'origin/master'. >> $ ls >> CONDUCT.markdown Gemfile Rakefile appveyor.yml lib >> >> I was not expecting to see 'lib' in the resulting file list > > Yep, I think this is the same problem. Inside lib, you get only > "lib/theme_template/Gemfile", because it matches your unanchored > pattern. Using "/Gemfile" in the sparse-checkout file fixes it. > > -Peff