A longitudinal web archival collection based on URIs from the daily feed of Media Cloud that maps news media coverage of current events.
TIMESTAMPS
The Wayback Machine - https://web.archive.org/web/20220914123158/https://lore.kernel.org/git/cover.1638224692.git.me@ttaylorr.com/
From: Taylor Blau <me@ttaylorr.com>
To: git@vger.kernel.org
Cc: gitster@pobox.com, larsxschneider@gmail.com, peff@peff.net,
tytso@mit.edu
Subject: [PATCH 00/17] cruft packs
Date: Mon, 29 Nov 2021 17:25:02 -0500 [thread overview]
Message-ID: <cover.1638224692.git.me@ttaylorr.com> (raw)
This series implements "cruft packs", a pack which stores accumulated
unreachable objects, along with a new ".mtimes" file which tracks each
object's last known modification time.
This idea was discussed recently-ish in [1], but the most thorough
discussion I could find is in [2]. The approach settled on in this
series is laid out in detail by the first patch.
For the uninitiated, cruft packs enable repositories to safely run
`git repack -Ad` by storing unreachable objects which have not yet
"aged out" in a separate pack. This prevents repositories from storing
a potentially large number of these such objects as loose.
This series is structured as follows:
- The first patch describes the technical details of cruft packs.
- The next five patches implement reading and writing the new
`.mtimes` format.
- The next six patches implement `git pack-objects --cruft`. The
first five implement this mode when no grace period is specified,
and the six patch adds support for the grace period.
- The next five patches integrate cruft packs with `git repack`,
including the new-ish `--geometric` mode.
- The final patch handles object freshening for objects stored in a
cruft pack.
Thanks in advance for your review.
[1]: https://lore.kernel.org/git/20170610080626.sjujpmgkli4muh7h@sigill.intra.peff.net/
[2]: https://lore.kernel.org/git/E1SdhJ9-0006B1-6p@tytso-glaptop.cam.corp.google.com/
Taylor Blau (17):
Documentation/technical: add cruft-packs.txt
pack-mtimes: support reading .mtimes files
pack-write: pass 'struct packing_data' to 'stage_tmp_packfiles'
chunk-format.h: extract oid_version()
pack-mtimes: support writing pack .mtimes files
t/helper: add 'pack-mtimes' test-tool
builtin/pack-objects.c: return from create_object_entry()
builtin/pack-objects.c: --cruft without expiration
reachable: add options to add_unseen_recent_objects_to_traversal
reachable: report precise timestamps from objects in cruft packs
builtin/pack-objects.c: --cruft with expiration
builtin/repack.c: support generating a cruft pack
builtin/repack.c: allow configuring cruft pack generation
builtin/repack.c: use named flags for existing_packs
builtin/repack.c: add cruft packs to MIDX during geometric repack
builtin/gc.c: conditionally avoid pruning objects via loose
sha1-file.c: don't freshen cruft packs
Documentation/Makefile | 1 +
Documentation/config/gc.txt | 21 +-
Documentation/config/repack.txt | 9 +
Documentation/git-gc.txt | 5 +
Documentation/git-pack-objects.txt | 23 +
Documentation/git-repack.txt | 11 +
Documentation/technical/cruft-packs.txt | 95 ++++
Documentation/technical/pack-format.txt | 22 +
Makefile | 2 +
builtin/gc.c | 10 +-
builtin/pack-objects.c | 306 ++++++++++-
builtin/repack.c | 189 ++++++-
bulk-checkin.c | 2 +-
chunk-format.c | 12 +
chunk-format.h | 3 +
commit-graph.c | 18 +-
midx.c | 18 +-
object-file.c | 4 +-
object-store.h | 7 +-
pack-mtimes.c | 139 +++++
pack-mtimes.h | 16 +
pack-objects.c | 6 +
pack-objects.h | 20 +
pack-write.c | 90 +++-
pack.h | 4 +
packfile.c | 18 +-
packfile.h | 1 +
reachable.c | 58 +-
reachable.h | 9 +-
t/helper/test-pack-mtimes.c | 53 ++
t/helper/test-tool.c | 1 +
t/helper/test-tool.h | 1 +
t/t5327-pack-objects-cruft.sh | 685 ++++++++++++++++++++++++
33 files changed, 1757 insertions(+), 102 deletions(-)
create mode 100644 Documentation/technical/cruft-packs.txt
create mode 100644 pack-mtimes.c
create mode 100644 pack-mtimes.h
create mode 100644 t/helper/test-pack-mtimes.c
create mode 100755 t/t5327-pack-objects-cruft.sh
--
2.34.1.25.gb3157a20e6
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=cover.1638224692.git.me@ttaylorr.com \
--to=me@ttaylorr.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=larsxschneider@gmail.com \
--cc=peff@peff.net \
--cc=tytso@mit.edu \
--subject='Re: [PATCH 00/17] cruft packs' \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).
✕
Wait! Don't Go Yet 🚀
Get our FREE eBook "10 Programming Tips That Changed Everything" when you subscribe!