SYNOPSIS
--------
[synopsis]
-git repo info [--format=(keyvalue|nul) | -z] [--all | <key>...]
-git repo structure [--format=(table|keyvalue|nul) | -z]
+git repo info [--format=(lines|nul) | -z] [--all | <key>...]
+git repo structure [--format=(table|lines|nul) | -z]
DESCRIPTION
-----------
COMMANDS
--------
-`info [--format=(keyvalue|nul) | -z] [--all | <key>...]`::
+`info [--format=(lines|nul) | -z] [--all | <key>...]`::
Retrieve metadata-related information about the current repository. Only
the requested data will be returned based on their keys (see "INFO KEYS"
section below).
The output format can be chosen through the flag `--format`. Two formats are
supported:
+
-`keyvalue`:::
+
+`lines`:::
output key-value pairs one per line using the `=` character as
the delimiter between the key and the value. Values containing "unusual"
characters are quoted as explained for the configuration variable
`core.quotePath` (see linkgit:git-config[1]). This is the default.
`nul`:::
- similar to `keyvalue`, but using a newline character as the delimiter
+ similar to `lines`, but using a newline character as the delimiter
between the key and the value and using a NUL character after each value.
This format is better suited for being parsed by another applications than
- `keyvalue`. Unlike in the `keyvalue` format, the values are never quoted.
+ `lines`. Unlike in the `lines` format, the values are never quoted.
+
`-z` is an alias for `--format=nul`.
-`structure [--format=(table|keyvalue|nul) | -z]`::
+`structure [--format=(table|lines|nul) | -z]`::
Retrieve statistics about the current repository structure. The
following kinds of information are reported:
+
change and is not intended for machine parsing. This is the default
format.
-`keyvalue`:::
+`lines`:::
Each line of output contains a key-value pair for a repository stat.
The '=' character is used to delimit between the key and the value.
Values containing "unusual" characters are quoted as explained for the
configuration variable `core.quotePath` (see linkgit:git-config[1]).
`nul`:::
- Similar to `keyvalue`, but uses a NUL character to delimit between
+ Similar to `lines`, but uses a NUL character to delimit between
key-value pairs instead of a newline. Also uses a newline character as
the delimiter between the key and value instead of '='. Unlike the
- `keyvalue` format, values containing "unusual" characters are never
+ `lines` format, values containing "unusual" characters are never
quoted.
+
`-z` is an alias for `--format=nul`.
#include "utf8.h"
static const char *const repo_usage[] = {
- "git repo info [--format=(keyvalue|nul) | -z] [--all | <key>...]",
- "git repo structure [--format=(table|keyvalue|nul) | -z]",
+ "git repo info [--format=(lines|nul) | -z] [--all | <key>...]",
+ "git repo structure [--format=(table|lines|nul) | -z]",
NULL
};
enum output_format {
FORMAT_TABLE,
- FORMAT_KEYVALUE,
+ FORMAT_NEWLINE_TERMINATED,
FORMAT_NUL_TERMINATED,
};
const char *value)
{
switch (format) {
- case FORMAT_KEYVALUE:
+ case FORMAT_NEWLINE_TERMINATED:
printf("%s=", key);
quote_c_style(value, NULL, stdout, 0);
putchar('\n');
*format = FORMAT_NUL_TERMINATED;
else if (!strcmp(arg, "nul"))
*format = FORMAT_NUL_TERMINATED;
- else if (!strcmp(arg, "keyvalue"))
- *format = FORMAT_KEYVALUE;
+ else if (!strcmp(arg, "lines"))
+ *format = FORMAT_NEWLINE_TERMINATED;
else if (!strcmp(arg, "table"))
*format = FORMAT_TABLE;
else
static int cmd_repo_info(int argc, const char **argv, const char *prefix,
struct repository *repo)
{
- enum output_format format = FORMAT_KEYVALUE;
+ enum output_format format = FORMAT_NEWLINE_TERMINATED;
int all_keys = 0;
struct option options[] = {
OPT_CALLBACK_F(0, "format", &format, N_("format"),
};
argc = parse_options(argc, argv, prefix, options, repo_usage, 0);
- if (format != FORMAT_KEYVALUE && format != FORMAT_NUL_TERMINATED)
+
+ if (format != FORMAT_NEWLINE_TERMINATED && format != FORMAT_NUL_TERMINATED)
die(_("unsupported output format"));
if (all_keys && argc)
stats_table_setup_structure(&table, &stats);
stats_table_print_structure(&table);
break;
- case FORMAT_KEYVALUE:
+ case FORMAT_NEWLINE_TERMINATED:
structure_keyvalue_print(&stats, '=', '\n');
break;
case FORMAT_NUL_TERMINATED:
eval "$init_command $repo_name"
'
- test_expect_success "keyvalue: $label" '
+ test_expect_success "lines: $label" '
echo "$key=$expected_value" > expect &&
git -C "$repo_name" repo info "$key" >actual &&
test_cmp expect actual
test_expect_success 'git repo info uses the last requested format' '
echo "layout.bare=false" >expected &&
- git repo info --format=nul -z --format=keyvalue layout.bare >actual &&
+ git repo info --format=nul -z --format=lines layout.bare >actual &&
test_cmp expected actual
'
)
'
-test_expect_success SHA1 'keyvalue and nul format' '
+test_expect_success SHA1 'lines and nul format' '
test_when_finished "rm -rf repo" &&
git init repo &&
(
objects.tags.disk_size=$(object_type_disk_usage tag)
EOF
- git repo structure --format=keyvalue >out 2>err &&
+ git repo structure --format=lines >out 2>err &&
test_cmp expect out &&
test_line_count = 0 err &&