<feed xmlns='http://www.w3.org/2005/Atom'>
<title>git/cache-tree.c, branch v1.4.2</title>
<subtitle>Mirror of https://git.kernel.org/pub/scm/git/git.git/
</subtitle>
<id>https://www.git.shady.money/git/atom?h=v1.4.2</id>
<link rel='self' href='https://www.git.shady.money/git/atom?h=v1.4.2'/>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/'/>
<updated>2006-05-07T23:17:43Z</updated>
<entry>
<title>Merge branch 'jc/gitlink' into next</title>
<updated>2006-05-07T23:17:43Z</updated>
<author>
<name>Junio C Hamano</name>
<email>junkio@cox.net</email>
</author>
<published>2006-05-07T23:17:43Z</published>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/commit/?id=b0121fb3f279a9cf13aff9da060e742aef3a83fa'/>
<id>urn:sha1:b0121fb3f279a9cf13aff9da060e742aef3a83fa</id>
<content type='text'>
* jc/gitlink:
  write-tree: --prefix=&lt;path&gt;
  read-tree: --prefix=&lt;path&gt;/ option.
</content>
</entry>
<entry>
<title>cache-tree: a bit more debugging support.</title>
<updated>2006-05-03T23:10:45Z</updated>
<author>
<name>Junio C Hamano</name>
<email>junkio@cox.net</email>
</author>
<published>2006-05-03T23:10:45Z</published>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/commit/?id=00703e6d6822f81e7b22d079b7e6d9d044f46cf0'/>
<id>urn:sha1:00703e6d6822f81e7b22d079b7e6d9d044f46cf0</id>
<content type='text'>
Signed-off-by: Junio C Hamano &lt;junkio@cox.net&gt;
</content>
</entry>
<entry>
<title>write-tree: --prefix=&lt;path&gt;</title>
<updated>2006-05-02T05:29:16Z</updated>
<author>
<name>Junio C Hamano</name>
<email>junkio@cox.net</email>
</author>
<published>2006-04-26T08:20:50Z</published>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/commit/?id=6bd20358a9b831b3b545284188871bc844245c25'/>
<id>urn:sha1:6bd20358a9b831b3b545284188871bc844245c25</id>
<content type='text'>
The "bind" commit can express an aggregation of multiple
projects into a single commit.

In such an organization, there would be one project, root of
whose tree object is at the same level of the root of the
aggregated projects, and other projects have their toplevel in
separate subdirectories.  Let's call that root level project the
"primary project", and call other ones just "subprojects".

You would first read-tree the primary project, and then graft
the subprojects under their appropriate location using read-tree
--prefix=&lt;subdir&gt;/ repeatedly.

To write out a tree object from such an index for a subproject,
write-tree --prefix=&lt;subdir&gt;/ is used.

Signed-off-by: Junio C Hamano &lt;junkio@cox.net&gt;
</content>
</entry>
<entry>
<title>cache-tree: replace a sscanf() by two strtol() calls</title>
<updated>2006-05-02T05:14:03Z</updated>
<author>
<name>Johannes Schindelin</name>
<email>Johannes.Schindelin@gmx.de</email>
</author>
<published>2006-05-02T01:31:02Z</published>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/commit/?id=0111ea38cbb9db0e4e245dcd5c86198186bab197'/>
<id>urn:sha1:0111ea38cbb9db0e4e245dcd5c86198186bab197</id>
<content type='text'>
On one of my systems, sscanf() first calls strlen() on the buffer. But
this buffer is not terminated by NUL. So git crashed.

strtol() does not share that problem, as it stops reading after the
first non-digit.

[jc: original patch was wrong and did not read the cache-tree
 structure correctly; this has been fixed up and tested minimally
 with fsck-objects. ]

Signed-off-by: Johannes Schindelin &lt;Johannes.Schindelin@gmx.de&gt;
Signed-off-by: Junio C Hamano &lt;junkio@cox.net&gt;
</content>
</entry>
<entry>
<title>cache-tree.c: typefix</title>
<updated>2006-04-28T05:48:27Z</updated>
<author>
<name>Junio C Hamano</name>
<email>junkio@cox.net</email>
</author>
<published>2006-04-28T05:48:27Z</published>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/commit/?id=7bc70a590db6ed3069d52aa38d59938e7955901b'/>
<id>urn:sha1:7bc70a590db6ed3069d52aa38d59938e7955901b</id>
<content type='text'>
Signed-off-by: Junio C Hamano &lt;junkio@cox.net&gt;
</content>
</entry>
<entry>
<title>cache_tree_update: give an option to update cache-tree only.</title>
<updated>2006-04-27T23:21:54Z</updated>
<author>
<name>Junio C Hamano</name>
<email>junkio@cox.net</email>
</author>
<published>2006-04-27T23:21:54Z</published>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/commit/?id=2956dd3bd7bd512aa8fce7e55d5eec1e56df99ab'/>
<id>urn:sha1:2956dd3bd7bd512aa8fce7e55d5eec1e56df99ab</id>
<content type='text'>
When the extra "dryrun" parameter is true, cache_tree_update()
recomputes the invalid entry but does not actually creates
new tree object.

Signed-off-by: Junio C Hamano &lt;junkio@cox.net&gt;
</content>
</entry>
<entry>
<title>read-tree: teach 1-way merege and plain read to prime cache-tree.</title>
<updated>2006-04-27T08:33:07Z</updated>
<author>
<name>Junio C Hamano</name>
<email>junkio@cox.net</email>
</author>
<published>2006-04-27T08:33:07Z</published>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/commit/?id=7927a55d5bde25702dca4fb1a7d6eb7ef61110ba'/>
<id>urn:sha1:7927a55d5bde25702dca4fb1a7d6eb7ef61110ba</id>
<content type='text'>
This teaches read-tree to fully populate valid cache-tree when
reading a tree from scratch, or reading a single tree into an
existing index, reusing only the cached stat information (i.e.
one-way merge).  We have already taught update-index about cache-tree,
so "git checkout" followed by updates to a few path followed by
a "git commit" would become very efficient.

Signed-off-by: Junio C Hamano &lt;junkio@cox.net&gt;
</content>
</entry>
<entry>
<title>cache-tree: sort the subtree entries.</title>
<updated>2006-04-26T00:40:02Z</updated>
<author>
<name>Junio C Hamano</name>
<email>junkio@cox.net</email>
</author>
<published>2006-04-26T00:40:02Z</published>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/commit/?id=61fa30972c45e73d39c81d27af9eeacbda7531c9'/>
<id>urn:sha1:61fa30972c45e73d39c81d27af9eeacbda7531c9</id>
<content type='text'>
Not that this makes practical performance difference; the kernel tree
for example has 200 or so directories that have subdirectory, and the
largest ones have 57 of them (fs and drivers).  With a test to apply
600 patches with git-apply and git-write-tree, this did not make more
than one per-cent of a difference, but it is a good cleanup.

Signed-off-by: Junio C Hamano &lt;junkio@cox.net&gt;
</content>
</entry>
<entry>
<title>index: make the index file format extensible.</title>
<updated>2006-04-25T04:24:13Z</updated>
<author>
<name>Junio C Hamano</name>
<email>junkio@cox.net</email>
</author>
<published>2006-04-25T04:18:58Z</published>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/commit/?id=bad68ec92410cf47dd001aa9b95d0f24c5f4bf77'/>
<id>urn:sha1:bad68ec92410cf47dd001aa9b95d0f24c5f4bf77</id>
<content type='text'>
... and move the cache-tree data into it.

Signed-off-by: Junio C Hamano &lt;junkio@cox.net&gt;
</content>
</entry>
<entry>
<title>cache-tree: protect against "git prune".</title>
<updated>2006-04-24T22:12:42Z</updated>
<author>
<name>Junio C Hamano</name>
<email>junkio@cox.net</email>
</author>
<published>2006-04-24T22:12:42Z</published>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/commit/?id=dd0c34c46bdda0c20fd92d00516e711a4c9f7837'/>
<id>urn:sha1:dd0c34c46bdda0c20fd92d00516e711a4c9f7837</id>
<content type='text'>
We reused the cache-tree data without verifying the tree object
still exists.  Recompute in cache_tree_update() an otherwise
valid cache-tree entry when the tree object disappeared.

This is not usually a problem, but theoretically without this
fix things can break when the user does something like this:

	- read-index from a side branch
	- write-tree the result
	- remove the side branch with "git branch -D"
	- remove the unreachable objects with "git prune"
	- write-tree what is in the index.

Signed-off-by: Junio C Hamano &lt;junkio@cox.net&gt;
</content>
</entry>
</feed>
