In anticipation of writing multi-pack-indexes (MIDX files), add a 'git midx write' subcommand and send the options to a write_midx_file() method. Also create a basic test file that tests the 'write' subcommand. Signed-off-by: Derrick Stolee <dstolee@xxxxxxxxxxxxx> --- Documentation/git-midx.txt | 22 +++++++++++++++++++++- Makefile | 1 + builtin/midx.c | 9 ++++++++- midx.c | 9 +++++++++ midx.h | 4 ++++ t/t5319-midx.sh | 10 ++++++++++ 6 files changed, 53 insertions(+), 2 deletions(-) create mode 100644 midx.c create mode 100644 midx.h create mode 100755 t/t5319-midx.sh diff --git a/Documentation/git-midx.txt b/Documentation/git-midx.txt index 2bd886f1a2..dcaeb1a91b 100644 --- a/Documentation/git-midx.txt +++ b/Documentation/git-midx.txt @@ -9,7 +9,7 @@ git-midx - Write and verify multi-pack-indexes (MIDX files). SYNOPSIS -------- [verse] -'git midx' [--object-dir <dir>] +'git midx' [--object-dir <dir>] <verb> DESCRIPTION ----------- @@ -23,6 +23,26 @@ OPTIONS <dir>/packs/multi-pack-index for the current MIDX file, and <dir>/packs for the pack-files to index. +write:: + When given as the verb, write a new MIDX file to + <dir>/packs/multi-pack-index. + + +EXAMPLES +-------- + +* Write a MIDX file for the packfiles in the current .git folder. ++ +------------------------------------------- +$ git midx write +------------------------------------------- + +* Write a MIDX file for the packfiles in an alternate. ++ +------------------------------------------- +$ git midx --object-dir <alt> write +------------------------------------------- + GIT --- diff --git a/Makefile b/Makefile index 88958c7b42..aa86fcd8ec 100644 --- a/Makefile +++ b/Makefile @@ -890,6 +890,7 @@ LIB_OBJS += merge.o LIB_OBJS += merge-blobs.o LIB_OBJS += merge-recursive.o LIB_OBJS += mergesort.o +LIB_OBJS += midx.o LIB_OBJS += name-hash.o LIB_OBJS += notes.o LIB_OBJS += notes-cache.o diff --git a/builtin/midx.c b/builtin/midx.c index 59ea92178f..dc0a5acd3f 100644 --- a/builtin/midx.c +++ b/builtin/midx.c @@ -3,9 +3,10 @@ #include "config.h" #include "git-compat-util.h" #include "parse-options.h" +#include "midx.h" static char const * const builtin_midx_usage[] ={ - N_("git midx [--object-dir <dir>]"), + N_("git midx [--object-dir <dir>] [write]"), NULL }; @@ -34,5 +35,11 @@ int cmd_midx(int argc, const char **argv, const char *prefix) if (!opts.object_dir) opts.object_dir = get_object_directory(); + if (argc == 0) + return 0; + + if (!strcmp(argv[0], "write")) + return write_midx_file(opts.object_dir); + return 0; } diff --git a/midx.c b/midx.c new file mode 100644 index 0000000000..616af66b13 --- /dev/null +++ b/midx.c @@ -0,0 +1,9 @@ +#include "git-compat-util.h" +#include "cache.h" +#include "dir.h" +#include "midx.h" + +int write_midx_file(const char *object_dir) +{ + return 0; +} diff --git a/midx.h b/midx.h new file mode 100644 index 0000000000..3a63673952 --- /dev/null +++ b/midx.h @@ -0,0 +1,4 @@ +#include "cache.h" +#include "packfile.h" + +int write_midx_file(const char *object_dir); diff --git a/t/t5319-midx.sh b/t/t5319-midx.sh new file mode 100755 index 0000000000..a590137af7 --- /dev/null +++ b/t/t5319-midx.sh @@ -0,0 +1,10 @@ +#!/bin/sh + +test_description='multi-pack-indexes' +. ./test-lib.sh + +test_expect_success 'write midx with no pakcs' ' + git midx --object-dir=. write +' + +test_done -- 2.18.0.rc1