<feed xmlns='http://www.w3.org/2005/Atom'>
<title>git/read-cache.c, branch v2.1.2</title>
<subtitle>Mirror of https://git.kernel.org/pub/scm/git/git.git/
</subtitle>
<id>https://git.shady.money/git/atom?h=v2.1.2</id>
<link rel='self' href='https://git.shady.money/git/atom?h=v2.1.2'/>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/'/>
<updated>2014-09-19T21:05:11Z</updated>
<entry>
<title>Merge branch 'rs/refresh-beyond-symlink' into maint</title>
<updated>2014-09-19T21:05:11Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2014-09-19T21:05:11Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=92ea1ac8267a14f4eae55f175ac7ff0aeaaddc89'/>
<id>urn:sha1:92ea1ac8267a14f4eae55f175ac7ff0aeaaddc89</id>
<content type='text'>
* rs/refresh-beyond-symlink:
  read-cache: check for leading symlinks when refreshing index
</content>
</entry>
<entry>
<title>read-cache: check for leading symlinks when refreshing index</title>
<updated>2014-08-10T18:16:20Z</updated>
<author>
<name>René Scharfe</name>
<email>l.s.r@web.de</email>
</author>
<published>2014-08-09T17:43:29Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=ccad42d4836e2bb4d1843eccd94f58f0189abb1d'/>
<id>urn:sha1:ccad42d4836e2bb4d1843eccd94f58f0189abb1d</id>
<content type='text'>
Don't add paths with leading symlinks to the index while refreshing; we
only track those symlinks themselves.  We already ignore them while
preloading (see read_index_preload.c).

Reported-by: Nikolay Avdeev &lt;avdeev@math.vsu.ru&gt;
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 'nd/split-index'</title>
<updated>2014-07-16T18:25:40Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2014-07-16T18:25:40Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=788cef81d40070d5755490441abad1a27bc120b7'/>
<id>urn:sha1:788cef81d40070d5755490441abad1a27bc120b7</id>
<content type='text'>
An experiment to use two files (the base file and incremental
changes relative to it) to represent the index to reduce I/O cost
of rewriting a large index when only small part of the working tree
changes.

* nd/split-index: (32 commits)
  t1700: new tests for split-index mode
  t2104: make sure split index mode is off for the version test
  read-cache: force split index mode with GIT_TEST_SPLIT_INDEX
  read-tree: note about dropping split-index mode or index version
  read-tree: force split-index mode off on --index-output
  rev-parse: add --shared-index-path to get shared index path
  update-index --split-index: do not split if $GIT_DIR is read only
  update-index: new options to enable/disable split index mode
  split-index: strip pathname of on-disk replaced entries
  split-index: do not invalidate cache-tree at read time
  split-index: the reading part
  split-index: the writing part
  read-cache: mark updated entries for split index
  read-cache: save deleted entries in split index
  read-cache: mark new entries for split index
  read-cache: split-index mode
  read-cache: save index SHA-1 after reading
  entry.c: update cache_changed if refresh_cache is set in checkout_entry()
  cache-tree: mark istate-&gt;cache_changed on prime_cache_tree()
  cache-tree: mark istate-&gt;cache_changed on cache tree update
  ...
</content>
</entry>
<entry>
<title>cleanup duplicate name_compare() functions</title>
<updated>2014-06-20T17:12:14Z</updated>
<author>
<name>Jeremiah Mahler</name>
<email>jmmahler@gmail.com</email>
</author>
<published>2014-06-20T02:06:44Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=ccdd4a0f3c7c550526a980e93156f25a956497bc'/>
<id>urn:sha1:ccdd4a0f3c7c550526a980e93156f25a956497bc</id>
<content type='text'>
We often represent our strings as a counted string, i.e. a pair of
the pointer to the beginning of the string and its length, and the
string may not be NUL terminated to that length.

To compare a pair of such counted strings, unpack-trees.c and
read-cache.c implement their own name_compare() functions
identically.  In addition, the cache_name_compare() function in
read-cache.c is nearly identical.  The only difference is when one
string is the prefix of the other string, in which case
name_compare() returns -1/+1 to show which one is longer, and
cache_name_compare() returns the difference of the lengths to show
the same information.

Unify these three functions by using the implementation from
cache_name_compare().  This does not make any difference to the
existing and future callers, as they must be paying attention only
to the sign of the returned value (and not the magnitude) because
the original implementations of these two functions return values
returned by memcmp(3) when the one string is not a prefix of the
other string, and the only thing memcmp(3) guarantees its callers is
the sign of the returned value, not the magnitude.

Signed-off-by: Jeremiah Mahler &lt;jmmahler@gmail.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>t1700: new tests for split-index mode</title>
<updated>2014-06-13T18:49:42Z</updated>
<author>
<name>Nguyễn Thái Ngọc Duy</name>
<email>pclouds@gmail.com</email>
</author>
<published>2014-06-13T12:19:51Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=3e52f70b1505956bf91cb7b107e526d1c67da0a6'/>
<id>urn:sha1:3e52f70b1505956bf91cb7b107e526d1c67da0a6</id>
<content type='text'>
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>read-cache: force split index mode with GIT_TEST_SPLIT_INDEX</title>
<updated>2014-06-13T18:49:42Z</updated>
<author>
<name>Nguyễn Thái Ngọc Duy</name>
<email>pclouds@gmail.com</email>
</author>
<published>2014-06-13T12:19:49Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=d6e3c181bc94e3f540c403eef0515c5eed74fc16'/>
<id>urn:sha1:d6e3c181bc94e3f540c403eef0515c5eed74fc16</id>
<content type='text'>
This could be used to run the whole test suite with split
indexes. Index splitting is carried out at random. "git read-tree"
also resets the index and forces splitting at the next update.

I had a lot of headaches with the test suite, which proves it
exercises split index pretty good.

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>read-tree: force split-index mode off on --index-output</title>
<updated>2014-06-13T18:49:41Z</updated>
<author>
<name>Nguyễn Thái Ngọc Duy</name>
<email>pclouds@gmail.com</email>
</author>
<published>2014-06-13T12:19:47Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=5165dd598a402b25301ea41fa5e0d9a72ad78393'/>
<id>urn:sha1:5165dd598a402b25301ea41fa5e0d9a72ad78393</id>
<content type='text'>
Just a (paranoid?) safety measure..

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>update-index --split-index: do not split if $GIT_DIR is read only</title>
<updated>2014-06-13T18:49:41Z</updated>
<author>
<name>Nguyễn Thái Ngọc Duy</name>
<email>pclouds@gmail.com</email>
</author>
<published>2014-06-13T12:19:45Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=a0a967568e8de5306d1889583c4dad0ff937f5ef'/>
<id>urn:sha1:a0a967568e8de5306d1889583c4dad0ff937f5ef</id>
<content type='text'>
If $GIT_DIR is read only, we can't write $GIT_DIR/sharedindex. This
could happen when $GIT_INDEX_FILE is set to somehwere outside
$GIT_DIR.

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>update-index: new options to enable/disable split index mode</title>
<updated>2014-06-13T18:49:41Z</updated>
<author>
<name>Nguyễn Thái Ngọc Duy</name>
<email>pclouds@gmail.com</email>
</author>
<published>2014-06-13T12:19:44Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=c18b80a0e86c4529146e3947454159627f1419a7'/>
<id>urn:sha1:c18b80a0e86c4529146e3947454159627f1419a7</id>
<content type='text'>
If you have a large work tree but only make changes in a subset, then
$GIT_DIR/index's size should be stable after a while. If you change
branches that touch something else, $GIT_DIR/index's size may grow
large that it becomes as slow as the unified index. Do --split-index
again occasionally to force all changes back to the shared index and
keep $GIT_DIR/index small.

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>split-index: strip pathname of on-disk replaced entries</title>
<updated>2014-06-13T18:49:41Z</updated>
<author>
<name>Nguyễn Thái Ngọc Duy</name>
<email>pclouds@gmail.com</email>
</author>
<published>2014-06-13T12:19:43Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=b3c96fb158f05152336f167076f5d81d23c3a5e5'/>
<id>urn:sha1:b3c96fb158f05152336f167076f5d81d23c3a5e5</id>
<content type='text'>
We know the positions of replaced entries via the replace bitmap in
"link" extension, so the "name" path does not have to be stored (it's
still in the shared index). With this, we also have a way to
distinguish additions vs replacements at load time and can catch
broken "link" extensions.

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>
</feed>
