<feed xmlns='http://www.w3.org/2005/Atom'>
<title>git/Documentation/git-pack-objects.txt, branch v2.18.2</title>
<subtitle>Mirror of https://git.kernel.org/pub/scm/git/git.git/
</subtitle>
<id>https://git.shady.money/git/atom?h=v2.18.2</id>
<link rel='self' href='https://git.shady.money/git/atom?h=v2.18.2'/>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/'/>
<updated>2018-05-23T05:38:24Z</updated>
<entry>
<title>Merge branch 'nd/pack-unreachable-objects-doc'</title>
<updated>2018-05-23T05:38:24Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2018-05-23T05:38:24Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=5a97e7be8846727597be322bf04541a2c61a2c81'/>
<id>urn:sha1:5a97e7be8846727597be322bf04541a2c61a2c81</id>
<content type='text'>
Doc update.

* nd/pack-unreachable-objects-doc:
  pack-objects: validation and documentation about unreachable options
</content>
</entry>
<entry>
<title>Merge branch 'nd/pack-objects-pack-struct'</title>
<updated>2018-05-23T05:38:19Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2018-05-23T05:38:19Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=ad635e82d600e1b725a2e65d69114140db6bc876'/>
<id>urn:sha1:ad635e82d600e1b725a2e65d69114140db6bc876</id>
<content type='text'>
"git pack-objects" needs to allocate tons of "struct object_entry"
while doing its work, and shrinking its size helps the performance
quite a bit.

* nd/pack-objects-pack-struct:
  ci: exercise the whole test suite with uncommon code in pack-objects
  pack-objects: reorder members to shrink struct object_entry
  pack-objects: shrink delta_size field in struct object_entry
  pack-objects: shrink size field in struct object_entry
  pack-objects: clarify the use of object_entry::size
  pack-objects: don't check size when the object is bad
  pack-objects: shrink z_delta_size field in struct object_entry
  pack-objects: refer to delta objects by index instead of pointer
  pack-objects: move in_pack out of struct object_entry
  pack-objects: move in_pack_pos out of struct object_entry
  pack-objects: use bitfield for object_entry::depth
  pack-objects: use bitfield for object_entry::dfs_state
  pack-objects: turn type and in_pack_type to bitfields
  pack-objects: a bit of document about struct object_entry
  read-cache.c: make $GIT_TEST_SPLIT_INDEX boolean
</content>
</entry>
<entry>
<title>pack-objects: validation and documentation about unreachable options</title>
<updated>2018-05-06T09:49:32Z</updated>
<author>
<name>Nguyễn Thái Ngọc Duy</name>
<email>pclouds@gmail.com</email>
</author>
<published>2018-05-05T08:47:16Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=58bd77b66a83e7d8bcbc4e756ab997416d246be2'/>
<id>urn:sha1:58bd77b66a83e7d8bcbc4e756ab997416d246be2</id>
<content type='text'>
These options are added in [1] [2] [3]. All these depend on running
rev-list internally which is normally true since they are always used
with "--all --objects" which implies --revs. But let's keep this
dependency explicit.

While at there, add documentation for them. These are mostly used
internally by git-repack. But it's still good to not chase down the
right commit message to know how they work.

[1] ca11b212eb (let pack-objects do the writing of unreachable objects
    as loose objects - 2008-05-14)
[2] 08cdfb1337 (pack-objects --keep-unreachable - 2007-09-16)
[3] e26a8c4721 (repack: extend --keep-unreachable to loose objects -
    2016-06-13)

Signed-off-by: Nguyễn Thái Ngọc Duy &lt;pclouds@gmail.com&gt;
Reviewed-by: Jeff King &lt;peff@peff.net&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>repack: add --keep-pack option</title>
<updated>2018-04-16T04:52:29Z</updated>
<author>
<name>Nguyễn Thái Ngọc Duy</name>
<email>pclouds@gmail.com</email>
</author>
<published>2018-04-15T15:36:13Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=ed7e5fc3a2562e3d4fb4fe25e8dca0e9daa0ed13'/>
<id>urn:sha1:ed7e5fc3a2562e3d4fb4fe25e8dca0e9daa0ed13</id>
<content type='text'>
We allow to keep existing packs by having companion .keep files. This
is helpful when a pack is permanently kept. In the next patch, git-gc
just wants to keep a pack temporarily, for one pack-objects
run. git-gc can use --keep-pack for this use case.

A note about why the pack_keep field cannot be reused and
pack_keep_in_core has to be added. This is about the case when
--keep-pack is specified together with either --keep-unreachable or
--unpack-unreachable, but --honor-pack-keep is NOT specified.

In this case, we want to exclude objects from the packs specified on
command line, not from ones with .keep files. If only one bit flag is
used, we have to clear pack_keep on pack files with the .keep file.

But we can't make any assumption about unreachable objects in .keep
packs. If "pack_keep" field is false for .keep packs, we could
potentially pull lots of unreachable objects into the new pack, or
unpack them loose. The safer approach is ignore all packs with either
.keep file or --keep-pack.

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>pack-objects: use bitfield for object_entry::depth</title>
<updated>2018-04-16T03:38:58Z</updated>
<author>
<name>Nguyễn Thái Ngọc Duy</name>
<email>pclouds@gmail.com</email>
</author>
<published>2018-04-14T15:35:03Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=b5c0cbd8083f71e071207fca0d5434c6db6ff6c9'/>
<id>urn:sha1:b5c0cbd8083f71e071207fca0d5434c6db6ff6c9</id>
<content type='text'>
Because of struct packing from now on we can only handle max depth
4095 (or even lower when new booleans are added in this struct). This
should be ok since long delta chain will cause significant slow down
anyway.

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>gc: do not repack promisor packfiles</title>
<updated>2017-12-08T17:52:42Z</updated>
<author>
<name>Jonathan Tan</name>
<email>jonathantanmy@google.com</email>
</author>
<published>2017-12-08T15:27:16Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=0c16cd499dee09b7fc6dd10cb6a476e96c147ef6'/>
<id>urn:sha1:0c16cd499dee09b7fc6dd10cb6a476e96c147ef6</id>
<content type='text'>
Teach gc to stop traversal at promisor objects, and to leave promisor
packfiles alone. This has the effect of only repacking non-promisor
packfiles, and preserves the distinction between promisor packfiles and
non-promisor packfiles.

Signed-off-by: Jonathan Tan &lt;jonathantanmy@google.com&gt;
Signed-off-by: Jeff Hostetler &lt;jeffhost@microsoft.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>list-objects-filter-options: support --no-filter</title>
<updated>2017-12-05T17:44:36Z</updated>
<author>
<name>Jeff Hostetler</name>
<email>jeffhost@microsoft.com</email>
</author>
<published>2017-12-05T16:50:13Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=4875c9791e787af07992d3ba30061885322b7d11'/>
<id>urn:sha1:4875c9791e787af07992d3ba30061885322b7d11</id>
<content type='text'>
Teach opt_parse_list_objects_filter() to take --no-filter
option and to free the contents of struct filter_options.
This command line argument will be automatically inherited
by commands using OPT_PARSE_LIST_OBJECTS_FILTER(); this
includes pack-objects.

Signed-off-by: Jeff Hostetler &lt;jeffhost@microsoft.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>pack-objects: add list-objects filtering</title>
<updated>2017-11-22T05:11:57Z</updated>
<author>
<name>Jeff Hostetler</name>
<email>jeffhost@microsoft.com</email>
</author>
<published>2017-11-21T20:58:52Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=9535ce7337b9add29fab3cb0021ccaf0da8c7138'/>
<id>urn:sha1:9535ce7337b9add29fab3cb0021ccaf0da8c7138</id>
<content type='text'>
Teach pack-objects to use the filtering provided by the
traverse_commit_list_filtered() interface to omit unwanted
objects from the resulting packfile.

Filtering requires the use of the "--stdout" option.

Add t5317 test.

In the future, we will introduce a "partial clone" mechanism
wherein an object in a repo, obtained from a remote, may
reference a missing object that can be dynamically fetched from
that remote once needed.  This "partial clone" mechanism will
have a way, sometimes slow, of determining if a missing link
is one of the links expected to be produced by this mechanism.

This patch introduces handling of missing objects to help
debugging and development of the "partial clone" mechanism,
and once the mechanism is implemented, for a power user to
perform operations that are missing-object aware without
incurring the cost of checking if a missing link is expected.

Signed-off-by: Jeff Hostetler &lt;jeffhost@microsoft.com&gt;
Reviewed-by: Jonathan Tan &lt;jonathantanmy@google.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Doc: clarify that pack-objects makes packs, plural</title>
<updated>2017-08-23T17:39:41Z</updated>
<author>
<name>Jonathan Tan</name>
<email>jonathantanmy@google.com</email>
</author>
<published>2017-08-23T00:40:10Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=4a4becfb23a2ef98b51bbde3bacda63a85972882'/>
<id>urn:sha1:4a4becfb23a2ef98b51bbde3bacda63a85972882</id>
<content type='text'>
The documentation for pack-objects describes that it creates "a packed
archive of objects", which is confusing because it may create multiple
packs if --max-pack-size is set. Update the documentation to clarify
this, and explaining in which cases such a feature would be useful.

Signed-off-by: Jonathan Tan &lt;jonathantanmy@google.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>document git-repack interaction of pack.threads and pack.windowMemory</title>
<updated>2016-08-10T17:55:13Z</updated>
<author>
<name>Michael Stahl</name>
<email>mstahl@redhat.com</email>
</author>
<published>2016-08-10T10:39:35Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=954176c1288d70818fb03c6e04a8cbfb0db4e704'/>
<id>urn:sha1:954176c1288d70818fb03c6e04a8cbfb0db4e704</id>
<content type='text'>
Signed-off-by: Michael Stahl &lt;mstahl@redhat.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
</feed>
