<feed xmlns='http://www.w3.org/2005/Atom'>
<title>git/dir.c, branch v2.5.3</title>
<subtitle>Mirror of https://git.kernel.org/pub/scm/git/git.git/
</subtitle>
<id>https://git.shady.money/git/atom?h=v2.5.3</id>
<link rel='self' href='https://git.shady.money/git/atom?h=v2.5.3'/>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/'/>
<updated>2015-09-17T19:12:29Z</updated>
<entry>
<title>Merge branch 'dt/untracked-subdir' into maint</title>
<updated>2015-09-17T19:12:29Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2015-09-17T19:12:29Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=8833ccd7d020a6160240a4933be91370e6f59c48'/>
<id>urn:sha1:8833ccd7d020a6160240a4933be91370e6f59c48</id>
<content type='text'>
The experimental untracked-cache feature were buggy when paths with
a few levels of subdirectories are involved.

* dt/untracked-subdir:
  untracked cache: fix entry invalidation
  untracked-cache: fix subdirectory handling
  t7063: use --force-untracked-cache to speed up a bit
  untracked-cache: support sparse checkout
</content>
</entry>
<entry>
<title>Merge branch 'cb/uname-in-untracked' into maint</title>
<updated>2015-08-19T21:41:28Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2015-08-19T21:41:27Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=b083703ce34b27a0f97d7e2d4d2eec196a53b707'/>
<id>urn:sha1:b083703ce34b27a0f97d7e2d4d2eec196a53b707</id>
<content type='text'>
An experimental "untracked cache" feature used uname(2) in a
slightly unportable way.

* cb/uname-in-untracked:
  untracked: fix detection of uname(2) failure
</content>
</entry>
<entry>
<title>untracked cache: fix entry invalidation</title>
<updated>2015-08-19T17:40:55Z</updated>
<author>
<name>Nguyễn Thái Ngọc Duy</name>
<email>pclouds@gmail.com</email>
</author>
<published>2015-08-19T13:01:26Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=73f9145fbf748d39dd1e145ec846a5481cf7a36f'/>
<id>urn:sha1:73f9145fbf748d39dd1e145ec846a5481cf7a36f</id>
<content type='text'>
First, the current code in untracked_cache_invalidate_path() is wrong
because it can only handle paths "a" or "a/b", not "a/b/c" because
lookup_untracked() only looks for entries directly under the given
directory. In the last case, it will look for the entry "b/c" in
directory "a" instead. This means if you delete or add an entry in a
subdirectory, untracked cache may become out of date because it does not
invalidate properly. This is noticed by David Turner.

The second problem is about invalidation inside a fully untracked/excluded
directory. In this case we may have to invalidate back to root. See the
comment block for detail.

Signed-off-by: Nguyễn Thái Ngọc Duy &lt;pclouds@gmail.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>untracked-cache: fix subdirectory handling</title>
<updated>2015-08-19T17:40:24Z</updated>
<author>
<name>David Turner</name>
<email>dturner@twopensource.com</email>
</author>
<published>2015-08-19T13:01:25Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=2e5910f27695b1b24e8a6870940bfac2a03ef0d7'/>
<id>urn:sha1:2e5910f27695b1b24e8a6870940bfac2a03ef0d7</id>
<content type='text'>
Previously, some calls lookup_untracked would pass a full path.  But
lookup_untracked assumes that the portion of the path up to and
including to the untracked_cache_dir has been removed.  So
lookup_untracked would be looking in the untracked_cache for 'foo' for
'foo/bar' (instead of just looking for 'bar').  This would cause
untracked cache corruption.

Instead, treat_directory learns to track the base length of the parent
directory, so that only the last path component is passed to
lookup_untracked.

Helped-by: Nguyễn Thái Ngọc Duy &lt;pclouds@gmail.com&gt;
Signed-off-by: David Turner &lt;dturner@twopensource.com&gt;
Signed-off-by: Nguyễn Thái Ngọc Duy &lt;pclouds@gmail.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>untracked-cache: support sparse checkout</title>
<updated>2015-07-31T17:56:18Z</updated>
<author>
<name>David Turner</name>
<email>dturner@twopensource.com</email>
</author>
<published>2015-07-31T17:35:01Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=7687252f3f7def11a862a0fd118c531ee630bd05'/>
<id>urn:sha1:7687252f3f7def11a862a0fd118c531ee630bd05</id>
<content type='text'>
Remove a check that would disable the untracked cache for sparse
checkouts.  Add tests that ensure that the untracked cache works with
sparse checkouts -- specifically considering the case that a file
foo/bar is checked out, but foo/.gitignore is not.

Signed-off-by: David Turner &lt;dturner@twopensource.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>untracked: fix detection of uname(2) failure</title>
<updated>2015-07-17T21:39:59Z</updated>
<author>
<name>Charles Bailey</name>
<email>cbailey32@bloomberg.net</email>
</author>
<published>2015-07-17T17:09:41Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=100e433741715968b815e4b9fb3e638b625bf472'/>
<id>urn:sha1:100e433741715968b815e4b9fb3e638b625bf472</id>
<content type='text'>
According to POSIX specification uname(2) must return -1 on failure
and a non-negative value on success.  Although many implementations
do return 0 on success it is valid to return any positive value for
success.  In particular, Solaris returns 1.

Signed-off-by: Charles Bailey &lt;cbailey32@bloomberg.net&gt;
Reviewed-by: Johannes Schindelin &lt;johannes.schindelin@gmx.de&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'rs/janitorial'</title>
<updated>2015-06-01T19:45:15Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2015-06-01T19:45:15Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=4ba5bb5531c6ec64a57ae2754ba51ce477eebaf0'/>
<id>urn:sha1:4ba5bb5531c6ec64a57ae2754ba51ce477eebaf0</id>
<content type='text'>
Code clean-up.

* rs/janitorial:
  dir: remove unused variable sb
  clean: remove unused variable buf
  use file_exists() to check if a file exists in the worktree
</content>
</entry>
<entry>
<title>Merge branch 'nd/untracked-cache'</title>
<updated>2015-05-26T20:24:46Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2015-05-26T20:24:45Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=38ccaf93bbf5a99dbff908068292ffaa5bafe25e'/>
<id>urn:sha1:38ccaf93bbf5a99dbff908068292ffaa5bafe25e</id>
<content type='text'>
Teach the index to optionally remember already seen untracked files
to speed up "git status" in a working tree with tons of cruft.

* nd/untracked-cache: (24 commits)
  git-status.txt: advertisement for untracked cache
  untracked cache: guard and disable on system changes
  mingw32: add uname()
  t7063: tests for untracked cache
  update-index: test the system before enabling untracked cache
  update-index: manually enable or disable untracked cache
  status: enable untracked cache
  untracked-cache: temporarily disable with $GIT_DISABLE_UNTRACKED_CACHE
  untracked cache: mark index dirty if untracked cache is updated
  untracked cache: print stats with $GIT_TRACE_UNTRACKED_STATS
  untracked cache: avoid racy timestamps
  read-cache.c: split racy stat test to a separate function
  untracked cache: invalidate at index addition or removal
  untracked cache: load from UNTR index extension
  untracked cache: save to an index extension
  ewah: add convenient wrapper ewah_serialize_strbuf()
  untracked cache: don't open non-existent .gitignore
  untracked cache: mark what dirs should be recursed/saved
  untracked cache: record/validate dir mtime and reuse cached output
  untracked cache: make a wrapper around {open,read,close}dir()
  ...
</content>
</entry>
<entry>
<title>dir: remove unused variable sb</title>
<updated>2015-05-20T20:50:22Z</updated>
<author>
<name>René Scharfe</name>
<email>l.s.r@web.de</email>
</author>
<published>2015-05-19T22:13:33Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=22570b68e3cb9380403d903680be3b3112a26490'/>
<id>urn:sha1:22570b68e3cb9380403d903680be3b3112a26490</id>
<content type='text'>
It had never been used.

Signed-off-by: Rene Scharfe &lt;l.s.r@web.de&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'jc/gitignore-precedence'</title>
<updated>2015-05-19T20:17:51Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2015-05-19T20:17:50Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=20cf8b548ebd7d5ec98729b4bb8ae5af435a22ff'/>
<id>urn:sha1:20cf8b548ebd7d5ec98729b4bb8ae5af435a22ff</id>
<content type='text'>
core.excludesfile (defaulting to $XDG_HOME/git/ignore) is supposed
to be overridden by repository-specific .git/info/exclude file, but
the order was swapped from the beginning. This belatedly fixes it.

* jc/gitignore-precedence:
  ignore: info/exclude should trump core.excludesfile
</content>
</entry>
</feed>
