<feed xmlns='http://www.w3.org/2005/Atom'>
<title>git/dir.h, branch v2.8.2</title>
<subtitle>Mirror of https://git.kernel.org/pub/scm/git/git.git/
</subtitle>
<id>https://git.shady.money/git/atom?h=v2.8.2</id>
<link rel='self' href='https://git.shady.money/git/atom?h=v2.8.2'/>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/'/>
<updated>2016-04-15T01:37:15Z</updated>
<entry>
<title>Merge branch 'ss/exc-flag-is-a-collection-of-bits' into maint</title>
<updated>2016-04-15T01:37:15Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2016-04-15T01:37:15Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=9fabc7083275f455ef21123cbdcbdd31b21a8251'/>
<id>urn:sha1:9fabc7083275f455ef21123cbdcbdd31b21a8251</id>
<content type='text'>
Code clean-up.

* ss/exc-flag-is-a-collection-of-bits:
  dir: store EXC_FLAG_* values in unsigned integers
</content>
</entry>
<entry>
<title>Revert "Merge branch 'nd/exclusion-regression-fix'"</title>
<updated>2016-03-18T18:06:15Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2016-03-18T18:06:15Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=5cee349370bd2dce48d0d653ab4ce99bb79a3415'/>
<id>urn:sha1:5cee349370bd2dce48d0d653ab4ce99bb79a3415</id>
<content type='text'>
This reverts commit 5e57f9c3dfe7dd44a1b56bb5b3327d7a1356ec7c, reversing
changes made to e79112d21024beb997951381db21a70b087d459d.

We will be postponing nd/exclusion-regression-fix topic to later
cycle.
</content>
</entry>
<entry>
<title>dir: store EXC_FLAG_* values in unsigned integers</title>
<updated>2016-03-01T18:20:22Z</updated>
<author>
<name>Saurav Sachidanand</name>
<email>sauravsachidanand@gmail.com</email>
</author>
<published>2016-03-01T17:02:59Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=f870899864e077a54776af838c6476d5850cfaaf'/>
<id>urn:sha1:f870899864e077a54776af838c6476d5850cfaaf</id>
<content type='text'>
The values defined by the macro EXC_FLAG_* (1, 4, 8, 16) are stored
in fields of the structs "pattern" and "exclude", some functions
arguments and a local variable.  None of these uses its most
significant bit in any special way and there is no good reason to
use a signed integer for them.

And while we're at it, document "flags" of "exclude" to explicitly
state the values it's supposed to take on.

Signed-off-by: Saurav Sachidanand &lt;sauravsachidanand@gmail.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>dir.c: support marking some patterns already matched</title>
<updated>2016-02-15T23:32:32Z</updated>
<author>
<name>Nguyễn Thái Ngọc Duy</name>
<email>pclouds@gmail.com</email>
</author>
<published>2016-02-15T09:03:38Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=c62a91736a6dcd909167cf9fbb751d65c85482dd'/>
<id>urn:sha1:c62a91736a6dcd909167cf9fbb751d65c85482dd</id>
<content type='text'>
Given path "a" and the pattern "a", it's matched. But if we throw path
"a/b" to pattern "a", the code fails to realize that if "a" matches
"a" then "a/b" should also be matched.

When the pattern is matched the first time, we can mark it "sticky", so
that all files and dirs inside the matched path also matches. This is a
simpler solution than modify all match scenarios to fix that.

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>dir: simplify untracked cache "ident" field</title>
<updated>2016-01-25T20:40:17Z</updated>
<author>
<name>Christian Couder</name>
<email>christian.couder@gmail.com</email>
</author>
<published>2016-01-24T15:28:21Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=0e0f761842eafb51c1a5d93fbc84470e2d7ee7c3'/>
<id>urn:sha1:0e0f761842eafb51c1a5d93fbc84470e2d7ee7c3</id>
<content type='text'>
It is not a good idea to compare kernel versions and disable
the untracked cache if it changes, as people may upgrade and
still want the untracked cache to work. So let's just
compare work tree locations and kernel name to decide if we
should disable it.

Also storing many locations in the ident field and comparing
to any of them can be dangerous if GIT_WORK_TREE is used with
different values. So let's just store one location, the
location of the current work tree.

The downside is that untracked cache can only be used by one
type of OS for now. Exporting a git repo to different clients
via a network to e.g. Linux and Windows means that only one
can use the untracked cache.

If the location changed in the ident field and we still want
an untracked cache, let's delete the cache and recreate it.

Note that if an untracked cache has been created by a
previous Git version, then the kernel version is stored in
the ident field. As we now compare with just the kernel
name the comparison will fail and the untracked cache will
be disabled until it's recreated.

Helped-by: Torsten Bögershausen &lt;tboegi@web.de&gt;
Signed-off-by: Christian Couder &lt;chriscool@tuxfamily.org&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>dir: add remove_untracked_cache()</title>
<updated>2016-01-25T20:40:11Z</updated>
<author>
<name>Christian Couder</name>
<email>christian.couder@gmail.com</email>
</author>
<published>2016-01-24T15:28:20Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=07b29bfd8d3de9a16c1c93e285b6980ca6b77b45'/>
<id>urn:sha1:07b29bfd8d3de9a16c1c93e285b6980ca6b77b45</id>
<content type='text'>
Factor out code into remove_untracked_cache(), which will be used
in a later commit.

Signed-off-by: Christian Couder &lt;chriscool@tuxfamily.org&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>dir: add {new,add}_untracked_cache()</title>
<updated>2016-01-25T20:39:58Z</updated>
<author>
<name>Christian Couder</name>
<email>christian.couder@gmail.com</email>
</author>
<published>2016-01-24T15:28:19Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=4a4ca4796df6b81d5995f31e87e9e6a64c2b889d'/>
<id>urn:sha1:4a4ca4796df6b81d5995f31e87e9e6a64c2b889d</id>
<content type='text'>
Factor out code into new_untracked_cache() and
add_untracked_cache(), which will be used
in later commits.

Helped-by: Eric Sunshine &lt;sunshine@sunshineco.com&gt;
Signed-off-by: Christian Couder &lt;chriscool@tuxfamily.org&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</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>Merge branch 'jc/report-path-error-to-dir'</title>
<updated>2015-03-26T18:57:13Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2015-03-26T18:57:12Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=574ee8ae8636ffad8146e0f8e648b866dad725e6'/>
<id>urn:sha1:574ee8ae8636ffad8146e0f8e648b866dad725e6</id>
<content type='text'>
Code clean-up.

* jc/report-path-error-to-dir:
  report_path_error(): move to dir.c
</content>
</entry>
<entry>
<title>report_path_error(): move to dir.c</title>
<updated>2015-03-24T21:12:10Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2015-03-24T21:12:10Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=777c55a61615837d4391facd75cf334b96635801'/>
<id>urn:sha1:777c55a61615837d4391facd75cf334b96635801</id>
<content type='text'>
The expected call sequence is for the caller to use match_pathspec()
repeatedly on a set of pathspecs, accumulating the "hits" in a
separate array, and then call this function to diagnose a pathspec
that never matched anything, as that can indicate a typo from the
command line, e.g. "git commit Maekfile".

Many builtin commands use this function from builtin/ls-files.c,
which is not a very healthy arrangement.  ls-files might have been
the first command to feel the need for such a helper, but the need
is shared by everybody who uses the "match and then report" pattern.

Move it to dir.c where match_pathspec() is defined.

Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
</feed>
