mirror of
https://github.com/git/git
synced 2024-11-05 18:59:29 +00:00
eea0e59ffb
Each of these were checked with gcc -E -I. ${SOURCE_FILE} | grep ${HEADER_FILE} to ensure that removing the direct inclusion of the header actually resulted in that header no longer being included at all (i.e. that no other header pulled it in transitively). ...except for a few cases where we verified that although the header was brought in transitively, nothing from it was directly used in that source file. These cases were: * builtin/credential-cache.c * builtin/pull.c * builtin/send-pack.c Signed-off-by: Elijah Newren <newren@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
105 lines
2.2 KiB
C
105 lines
2.2 KiB
C
/*
|
|
Copyright 2020 Google LLC
|
|
|
|
Use of this source code is governed by a BSD-style
|
|
license that can be found in the LICENSE file or at
|
|
https://developers.google.com/open-source/licenses/bsd
|
|
*/
|
|
|
|
#include "git-compat-util.h"
|
|
#include "hash-ll.h"
|
|
|
|
#include "reftable-blocksource.h"
|
|
#include "reftable-error.h"
|
|
#include "reftable-record.h"
|
|
#include "reftable-tests.h"
|
|
#include "reftable-writer.h"
|
|
#include "reftable-iterator.h"
|
|
#include "reftable-reader.h"
|
|
#include "reftable-stack.h"
|
|
|
|
#include <stddef.h>
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <unistd.h>
|
|
#include <string.h>
|
|
|
|
static int compact_stack(const char *stackdir)
|
|
{
|
|
struct reftable_stack *stack = NULL;
|
|
struct reftable_write_options cfg = { 0 };
|
|
|
|
int err = reftable_new_stack(&stack, stackdir, cfg);
|
|
if (err < 0)
|
|
goto done;
|
|
|
|
err = reftable_stack_compact_all(stack, NULL);
|
|
if (err < 0)
|
|
goto done;
|
|
done:
|
|
if (stack) {
|
|
reftable_stack_destroy(stack);
|
|
}
|
|
return err;
|
|
}
|
|
|
|
static void print_help(void)
|
|
{
|
|
printf("usage: dump [-cst] arg\n\n"
|
|
"options: \n"
|
|
" -c compact\n"
|
|
" -t dump table\n"
|
|
" -s dump stack\n"
|
|
" -6 sha256 hash format\n"
|
|
" -h this help\n"
|
|
"\n");
|
|
}
|
|
|
|
int reftable_dump_main(int argc, char *const *argv)
|
|
{
|
|
int err = 0;
|
|
int opt_dump_table = 0;
|
|
int opt_dump_stack = 0;
|
|
int opt_compact = 0;
|
|
uint32_t opt_hash_id = GIT_SHA1_FORMAT_ID;
|
|
const char *arg = NULL, *argv0 = argv[0];
|
|
|
|
for (; argc > 1; argv++, argc--)
|
|
if (*argv[1] != '-')
|
|
break;
|
|
else if (!strcmp("-t", argv[1]))
|
|
opt_dump_table = 1;
|
|
else if (!strcmp("-6", argv[1]))
|
|
opt_hash_id = GIT_SHA256_FORMAT_ID;
|
|
else if (!strcmp("-s", argv[1]))
|
|
opt_dump_stack = 1;
|
|
else if (!strcmp("-c", argv[1]))
|
|
opt_compact = 1;
|
|
else if (!strcmp("-?", argv[1]) || !strcmp("-h", argv[1])) {
|
|
print_help();
|
|
return 2;
|
|
}
|
|
|
|
if (argc != 2) {
|
|
fprintf(stderr, "need argument\n");
|
|
print_help();
|
|
return 2;
|
|
}
|
|
|
|
arg = argv[1];
|
|
|
|
if (opt_dump_table) {
|
|
err = reftable_reader_print_file(arg);
|
|
} else if (opt_dump_stack) {
|
|
err = reftable_stack_print_directory(arg, opt_hash_id);
|
|
} else if (opt_compact) {
|
|
err = compact_stack(arg);
|
|
}
|
|
|
|
if (err < 0) {
|
|
fprintf(stderr, "%s: %s: %s\n", argv0, arg,
|
|
reftable_error_str(err));
|
|
return 1;
|
|
}
|
|
return 0;
|
|
}
|