<feed xmlns='http://www.w3.org/2005/Atom'>
<title>git/list-objects.c, branch v2.20.2</title>
<subtitle>Mirror of https://git.kernel.org/pub/scm/git/git.git/
</subtitle>
<id>https://git.shady.money/git/atom?h=v2.20.2</id>
<link rel='self' href='https://git.shady.money/git/atom?h=v2.20.2'/>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/'/>
<updated>2018-10-30T06:43:39Z</updated>
<entry>
<title>Merge branch 'md/filter-trees'</title>
<updated>2018-10-30T06:43:39Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2018-10-30T06:43:39Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=77d503757d6328703f9571a4432dd83800bc26bb'/>
<id>urn:sha1:77d503757d6328703f9571a4432dd83800bc26bb</id>
<content type='text'>
The "rev-list --filter" feature learned to exclude all trees via
"tree:0" filter.

* md/filter-trees:
  list-objects: support for skipping tree traversal
  filter-trees: code clean-up of tests
  list-objects-filter: implement filter tree:0
  list-objects-filter-options: do not over-strbuf_init
  list-objects-filter: use BUG rather than die
  revision: mark non-user-given objects instead
  rev-list: handle missing tree objects properly
  list-objects: always parse trees gently
  list-objects: refactor to process_tree_contents
  list-objects: store common func args in struct
</content>
</entry>
<entry>
<title>list-objects: support for skipping tree traversal</title>
<updated>2018-10-18T03:49:18Z</updated>
<author>
<name>Matthew DeVore</name>
<email>matvore@google.com</email>
</author>
<published>2018-10-18T00:39:15Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=8b10a206f090e01ce1ac4d9a10ec769e2409e2b0'/>
<id>urn:sha1:8b10a206f090e01ce1ac4d9a10ec769e2409e2b0</id>
<content type='text'>
The tree:0 filter does not need to traverse the trees that it has
filtered out, so optimize list-objects and list-objects-filter to skip
traversing the trees entirely. Before this patch, we iterated over all
children of the tree, and did nothing for all of them, which was
wasteful.

Signed-off-by: Matthew DeVore &lt;matvore@google.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>revision: mark non-user-given objects instead</title>
<updated>2018-10-06T23:55:00Z</updated>
<author>
<name>Matthew DeVore</name>
<email>matvore@google.com</email>
</author>
<published>2018-10-05T21:31:24Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=99c9aa9579ae970c0d273ced8fb8efe9eed70a75'/>
<id>urn:sha1:99c9aa9579ae970c0d273ced8fb8efe9eed70a75</id>
<content type='text'>
Currently, list-objects.c incorrectly treats all root trees of commits
as USER_GIVEN. Also, it would be easier to mark objects that are
non-user-given instead of user-given, since the places in the code
where we access an object through a reference are more obvious than
the places where we access an object that was given by the user.

Resolve these two problems by introducing a flag NOT_USER_GIVEN that
marks blobs and trees that are non-user-given, replacing USER_GIVEN.
(Only blobs and trees are marked because this mark is only used when
filtering objects, and filtering of other types of objects is not
supported yet.)

This fixes a bug in that git rev-list behaved differently from git
pack-objects. pack-objects would *not* filter objects given explicitly
on the command line and rev-list would filter. This was because the two
commands used a different function to add objects to the rev_info
struct. This seems to have been an oversight, and pack-objects has the
correct behavior, so I added a test to make sure that rev-list now
behaves properly.

Signed-off-by: Matthew DeVore &lt;matvore@google.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>rev-list: handle missing tree objects properly</title>
<updated>2018-10-06T23:55:00Z</updated>
<author>
<name>Matthew DeVore</name>
<email>matvore@google.com</email>
</author>
<published>2018-10-05T21:31:23Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=7c0fe330d5f3d2fc7aac57a19c7580ea2543c799'/>
<id>urn:sha1:7c0fe330d5f3d2fc7aac57a19c7580ea2543c799</id>
<content type='text'>
Previously, we assumed only blob objects could be missing. This patch
makes rev-list handle missing trees like missing blobs. The --missing=*
and --exclude-promisor-objects flags now work for trees as they already
do for blobs. This is demonstrated in t6112.

Signed-off-by: Matthew DeVore &lt;matvore@google.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>revision.c: reduce implicit dependency the_repository</title>
<updated>2018-09-21T16:51:19Z</updated>
<author>
<name>Nguyễn Thái Ngọc Duy</name>
<email>pclouds@gmail.com</email>
</author>
<published>2018-09-21T15:57:39Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=b3c7eef9b0581f06be67418f130d33d7a7c490cb'/>
<id>urn:sha1:b3c7eef9b0581f06be67418f130d33d7a7c490cb</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>list-objects: always parse trees gently</title>
<updated>2018-08-15T16:26:21Z</updated>
<author>
<name>Matthew DeVore</name>
<email>matvore@google.com</email>
</author>
<published>2018-08-15T00:22:52Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=f1d02daacfe657fd175634174b4928a645d537f4'/>
<id>urn:sha1:f1d02daacfe657fd175634174b4928a645d537f4</id>
<content type='text'>
If parsing fails when revs-&gt;ignore_missing_links and
revs-&gt;exclude_promisor_objects are both false, we print the OID anyway
in the die("bad tree object...") call, so any message printed by
parse_tree_gently() is superfluous.

Signed-off-by: Matthew DeVore &lt;matvore@google.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>list-objects: refactor to process_tree_contents</title>
<updated>2018-08-13T22:17:32Z</updated>
<author>
<name>Matthew DeVore</name>
<email>matvore@google.com</email>
</author>
<published>2018-08-13T18:14:29Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=9202489174a110f82867edbac601f12480a4e284'/>
<id>urn:sha1:9202489174a110f82867edbac601f12480a4e284</id>
<content type='text'>
This will be used in a follow-up patch to reduce indentation needed when
invoking the logic conditionally. i.e. rather than:

if (foo) {
	while (...) {
		/* this is very indented */
	}
}

we will have:

if (foo)
	process_tree_contents(...);

Signed-off-by: Matthew DeVore &lt;matvore@google.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>list-objects: store common func args in struct</title>
<updated>2018-08-13T22:17:32Z</updated>
<author>
<name>Matthew DeVore</name>
<email>matvore@google.com</email>
</author>
<published>2018-08-13T18:14:28Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=f447a499dbb8be3a9f76f8099938129c74fcbd32'/>
<id>urn:sha1:f447a499dbb8be3a9f76f8099938129c74fcbd32</id>
<content type='text'>
This will make utility functions easier to create, as done by the next
patch.

Signed-off-by: Matthew DeVore &lt;matvore@google.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'sb/object-store-lookup'</title>
<updated>2018-08-02T22:30:42Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2018-08-02T22:30:42Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=3a2a1dc17077a27ad1a89db27cb1b4b374f3b0ff'/>
<id>urn:sha1:3a2a1dc17077a27ad1a89db27cb1b4b374f3b0ff</id>
<content type='text'>
lookup_commit_reference() and friends have been updated to find
in-core object for a specific in-core repository instance.

* sb/object-store-lookup: (32 commits)
  commit.c: allow lookup_commit_reference to handle arbitrary repositories
  commit.c: allow lookup_commit_reference_gently to handle arbitrary repositories
  tag.c: allow deref_tag to handle arbitrary repositories
  object.c: allow parse_object to handle arbitrary repositories
  object.c: allow parse_object_buffer to handle arbitrary repositories
  commit.c: allow get_cached_commit_buffer to handle arbitrary repositories
  commit.c: allow set_commit_buffer to handle arbitrary repositories
  commit.c: migrate the commit buffer to the parsed object store
  commit-slabs: remove realloc counter outside of slab struct
  commit.c: allow parse_commit_buffer to handle arbitrary repositories
  tag: allow parse_tag_buffer to handle arbitrary repositories
  tag: allow lookup_tag to handle arbitrary repositories
  commit: allow lookup_commit to handle arbitrary repositories
  tree: allow lookup_tree to handle arbitrary repositories
  blob: allow lookup_blob to handle arbitrary repositories
  object: allow lookup_object to handle arbitrary repositories
  object: allow object_as_type to handle arbitrary repositories
  tag: add repository argument to deref_tag
  tag: add repository argument to parse_tag_buffer
  tag: add repository argument to lookup_tag
  ...
</content>
</entry>
<entry>
<title>Merge branch 'jt/partial-clone-fsck-connectivity'</title>
<updated>2018-07-24T21:50:47Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2018-07-24T21:50:47Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=8fa8a4f1ec088ab937d1c460f3eb1701e51b8ffc'/>
<id>urn:sha1:8fa8a4f1ec088ab937d1c460f3eb1701e51b8ffc</id>
<content type='text'>
Partial clone support of "git clone" has been updated to correctly
validate the objects it receives from the other side.  The server
side has been corrected to send objects that are directly
requested, even if they may match the filtering criteria (e.g. when
doing a "lazy blob" partial clone).

* jt/partial-clone-fsck-connectivity:
  clone: check connectivity even if clone is partial
  upload-pack: send refs' objects despite "filter"
</content>
</entry>
</feed>
