Browse Source

multi-pack-index: add builtin

This new 'git multi-pack-index' builtin will be the plumbing access
for writing, reading, and checking multi-pack-index files. The
initial implementation is a no-op.

Signed-off-by: Derrick Stolee <dstolee@microsoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
Derrick Stolee 6 years ago committed by Junio C Hamano
parent
commit
6a257f03ba
  1. 3
      .gitignore
  2. 36
      Documentation/git-multi-pack-index.txt
  3. 1
      Makefile
  4. 1
      builtin.h
  5. 34
      builtin/multi-pack-index.c
  6. 1
      command-list.txt
  7. 1
      git.c

3
.gitignore vendored

@ -99,8 +99,9 @@ @@ -99,8 +99,9 @@
/git-mergetool--lib
/git-mktag
/git-mktree
/git-name-rev
/git-multi-pack-index
/git-mv
/git-name-rev
/git-notes
/git-p4
/git-pack-redundant

36
Documentation/git-multi-pack-index.txt

@ -0,0 +1,36 @@ @@ -0,0 +1,36 @@
git-multi-pack-index(1)
=======================

NAME
----
git-multi-pack-index - Write and verify multi-pack-indexes


SYNOPSIS
--------
[verse]
'git multi-pack-index' [--object-dir=<dir>]

DESCRIPTION
-----------
Write or verify a multi-pack-index (MIDX) file.

OPTIONS
-------

--object-dir=<dir>::
Use given directory for the location of Git objects. We check
`<dir>/packs/multi-pack-index` for the current MIDX file, and
`<dir>/packs` for the pack-files to index.


SEE ALSO
--------
See link:technical/multi-pack-index.html[The Multi-Pack-Index Design
Document] and link:technical/pack-format.html[The Multi-Pack-Index
Format] for more information on the multi-pack-index feature.


GIT
---
Part of the linkgit:git[1] suite

1
Makefile

@ -1047,6 +1047,7 @@ BUILTIN_OBJS += builtin/merge-recursive.o @@ -1047,6 +1047,7 @@ BUILTIN_OBJS += builtin/merge-recursive.o
BUILTIN_OBJS += builtin/merge-tree.o
BUILTIN_OBJS += builtin/mktag.o
BUILTIN_OBJS += builtin/mktree.o
BUILTIN_OBJS += builtin/multi-pack-index.o
BUILTIN_OBJS += builtin/mv.o
BUILTIN_OBJS += builtin/name-rev.o
BUILTIN_OBJS += builtin/notes.o

1
builtin.h

@ -191,6 +191,7 @@ extern int cmd_merge_recursive(int argc, const char **argv, const char *prefix); @@ -191,6 +191,7 @@ extern int cmd_merge_recursive(int argc, const char **argv, const char *prefix);
extern int cmd_merge_tree(int argc, const char **argv, const char *prefix);
extern int cmd_mktag(int argc, const char **argv, const char *prefix);
extern int cmd_mktree(int argc, const char **argv, const char *prefix);
extern int cmd_multi_pack_index(int argc, const char **argv, const char *prefix);
extern int cmd_mv(int argc, const char **argv, const char *prefix);
extern int cmd_name_rev(int argc, const char **argv, const char *prefix);
extern int cmd_notes(int argc, const char **argv, const char *prefix);

34
builtin/multi-pack-index.c

@ -0,0 +1,34 @@ @@ -0,0 +1,34 @@
#include "builtin.h"
#include "cache.h"
#include "config.h"
#include "parse-options.h"

static char const * const builtin_multi_pack_index_usage[] = {
N_("git multi-pack-index [--object-dir=<dir>]"),
NULL
};

static struct opts_multi_pack_index {
const char *object_dir;
} opts;

int cmd_multi_pack_index(int argc, const char **argv,
const char *prefix)
{
static struct option builtin_multi_pack_index_options[] = {
OPT_FILENAME(0, "object-dir", &opts.object_dir,
N_("object directory containing set of packfile and pack-index pairs")),
OPT_END(),
};

git_config(git_default_config, NULL);

argc = parse_options(argc, argv, prefix,
builtin_multi_pack_index_options,
builtin_multi_pack_index_usage, 0);

if (!opts.object_dir)
opts.object_dir = get_object_directory();

return 0;
}

1
command-list.txt

@ -123,6 +123,7 @@ git-merge-index plumbingmanipulators @@ -123,6 +123,7 @@ git-merge-index plumbingmanipulators
git-merge-one-file purehelpers
git-mergetool ancillarymanipulators complete
git-merge-tree ancillaryinterrogators
git-multi-pack-index plumbingmanipulators
git-mktag plumbingmanipulators
git-mktree plumbingmanipulators
git-mv mainporcelain worktree

1
git.c

@ -505,6 +505,7 @@ static struct cmd_struct commands[] = { @@ -505,6 +505,7 @@ static struct cmd_struct commands[] = {
{ "merge-tree", cmd_merge_tree, RUN_SETUP | NO_PARSEOPT },
{ "mktag", cmd_mktag, RUN_SETUP | NO_PARSEOPT },
{ "mktree", cmd_mktree, RUN_SETUP },
{ "multi-pack-index", cmd_multi_pack_index, RUN_SETUP_GENTLY },
{ "mv", cmd_mv, RUN_SETUP | NEED_WORK_TREE },
{ "name-rev", cmd_name_rev, RUN_SETUP },
{ "notes", cmd_notes, RUN_SETUP },

Loading…
Cancel
Save