Here is the complete patch set. I have only moved the exported functions
that operate with packfiles and their static helpers - for example,
static functions like freshen_packed_object() that are used only by
non-pack-specific functions are not moved.
In the end, 3 functions needed to be made global. They are
find_pack_entry(), mark_bad_packed_object(), and has_packed_and_bad().
Of the 3, find_pack_entry() is probably legitimately promoted. But I
think that the latter two functions needing to be accessed from
sha1_file.c points to a design that could be improved - they are only
used when packed_object_info() detects corruption, and used for marking
as bad and printing messages to the user respectively, which
packed_object_info() should probably do itself. But I have not made this
change in this patch set.
(Other than the 3 functions above, there are some variables and
functions that are temporarily made global, but reduced back to static
when the wide scope is no longer needed.)
Jonathan Tan (25):
pack: move pack name-related functions
pack: move static state variables
pack: move pack_report()
pack: move open_pack_index(), parse_pack_index()
pack: move release_pack_memory()
pack: move pack-closing functions
pack: move use_pack()
pack: move unuse_pack()
pack: move add_packed_git()
pack: move install_packed_git()
pack: move {,re}prepare_packed_git and approximate_object_count
pack: move unpack_object_header()
pack: move get_size_from_delta()
pack: move unpack_object_header()
sha1_file: set whence in storage-specific info fn
sha1_file: remove read_packed_sha1()
pack: move packed_object_info(), unpack_entry()
pack: move nth_packed_object_{sha1,oid}
pack: move check_pack_index_ptr(), nth_packed_object_offset()
pack: move find_pack_entry_one(), is_pack_valid()
pack: move find_sha1_pack()
pack: move find_pack_entry() and make it global
pack: move has_sha1_pack()
pack: move has_pack_index()
pack: move for_each_packed_object()
Makefile | 1 +
builtin/am.c | 1 +
builtin/cat-file.c | 1 +
builtin/clone.c | 1 +
builtin/count-objects.c | 1 +
builtin/fetch.c | 1 +
builtin/gc.c | 1 +
builtin/merge.c | 1 +
builtin/pack-redundant.c | 1 +
builtin/prune-packed.c | 1 +
cache.h | 122 +--
connected.c | 1 +
diff.c | 1 +
git-compat-util.h | 2 -
http-backend.c | 1 +
http-push.c | 1 +
http-walker.c | 1 +
pack.h | 137 +++
packfile.c | 1905 +++++++++++++++++++++++++++++++++++
path.c | 1 +
reachable.c | 1 +
revision.c | 1 +
server-info.c | 1 +
sha1_file.c | 2484 ++++++----------------------------------------
sha1_name.c | 1 +
streaming.c | 1 +
26 files changed, 2350 insertions(+), 2321 deletions(-)
create mode 100644 packfile.c
--
2.14.0.434.g98096fd7a8-goog