Merge branch 'maint'

* maint:
  annotate: make it work from subdirectories.
  git-config: Correct asciidoc documentation for --int/--bool
  t1300: Add tests for git-config --bool --get
  unpack-trees.c: verify_uptodate: remove dead code
  Use PATH_MAX instead of TEMPFILE_PATH_LEN
  branch: fix segfault when resolving an invalid HEAD
This commit is contained in:
Junio C Hamano 2007-05-20 19:58:03 -07:00
commit 738a1154db
6 changed files with 48 additions and 18 deletions

View File

@ -9,15 +9,15 @@ git-config - Get and set repository or global options
SYNOPSIS SYNOPSIS
-------- --------
[verse] [verse]
'git-config' [--system | --global] [type] name [value [value_regex]] 'git-config' [--system | --global] name [value [value_regex]]
'git-config' [--system | --global] [type] --add name value 'git-config' [--system | --global] --add name value
'git-config' [--system | --global] [type] --replace-all name [value [value_regex]] 'git-config' [--system | --global] --replace-all name [value [value_regex]]
'git-config' [--system | --global] [type] --get name [value_regex] 'git-config' [--system | --global] [type] --get name [value_regex]
'git-config' [--system | --global] [type] --get-all name [value_regex] 'git-config' [--system | --global] [type] --get-all name [value_regex]
'git-config' [--system | --global] [type] --unset name [value_regex] 'git-config' [--system | --global] --unset name [value_regex]
'git-config' [--system | --global] [type] --unset-all name [value_regex] 'git-config' [--system | --global] --unset-all name [value_regex]
'git-config' [--system | --global] [type] --rename-section old_name new_name 'git-config' [--system | --global] --rename-section old_name new_name
'git-config' [--system | --global] [type] --remove-section name 'git-config' [--system | --global] --remove-section name
'git-config' [--system | --global] -l | --list 'git-config' [--system | --global] -l | --list
DESCRIPTION DESCRIPTION
@ -36,7 +36,8 @@ prepend a single exclamation mark in front (see EXAMPLES).
The type specifier can be either '--int' or '--bool', which will make The type specifier can be either '--int' or '--bool', which will make
'git-config' ensure that the variable(s) are of the given type and 'git-config' ensure that the variable(s) are of the given type and
convert the value to the canonical form (simple decimal number for int, convert the value to the canonical form (simple decimal number for int,
a "true" or "false" string for bool). If no type specifier is passed, a "true" or "false" string for bool). Type specifiers currently only
take effect for reading operations. If no type specifier is passed,
no checks or transformations are performed on the value. no checks or transformations are performed on the value.
This command will fail if: This command will fail if:

View File

@ -623,9 +623,10 @@ int cmd_branch(int argc, const char **argv, const char *prefix)
(rename && force_create)) (rename && force_create))
usage(builtin_branch_usage); usage(builtin_branch_usage);
head = xstrdup(resolve_ref("HEAD", head_sha1, 0, NULL)); head = resolve_ref("HEAD", head_sha1, 0, NULL);
if (!head) if (!head)
die("Failed to resolve HEAD as a valid ref."); die("Failed to resolve HEAD as a valid ref.");
head = xstrdup(head);
if (!strcmp(head, "HEAD")) { if (!strcmp(head, "HEAD")) {
detached = 1; detached = 1;
} }

6
diff.c
View File

@ -186,13 +186,11 @@ static const char *external_diff(void)
return external_diff_cmd; return external_diff_cmd;
} }
#define TEMPFILE_PATH_LEN 50
static struct diff_tempfile { static struct diff_tempfile {
const char *name; /* filename external diff should read from */ const char *name; /* filename external diff should read from */
char hex[41]; char hex[41];
char mode[10]; char mode[10];
char tmp_path[TEMPFILE_PATH_LEN]; char tmp_path[PATH_MAX];
} diff_temp[2]; } diff_temp[2];
static int count_lines(const char *data, int size) static int count_lines(const char *data, int size)
@ -1561,7 +1559,7 @@ static void prep_temp_blob(struct diff_tempfile *temp,
{ {
int fd; int fd;
fd = git_mkstemp(temp->tmp_path, TEMPFILE_PATH_LEN, ".diff_XXXXXX"); fd = git_mkstemp(temp->tmp_path, PATH_MAX, ".diff_XXXXXX");
if (fd < 0) if (fd < 0)
die("unable to create temp-file"); die("unable to create temp-file");
if (write_in_full(fd, blob, size) != size) if (write_in_full(fd, blob, size) != size)

2
git.c
View File

@ -225,7 +225,7 @@ static void handle_internal_command(int argc, const char **argv, char **envp)
int option; int option;
} commands[] = { } commands[] = {
{ "add", cmd_add, RUN_SETUP | NOT_BARE }, { "add", cmd_add, RUN_SETUP | NOT_BARE },
{ "annotate", cmd_annotate, USE_PAGER }, { "annotate", cmd_annotate, RUN_SETUP | USE_PAGER },
{ "apply", cmd_apply }, { "apply", cmd_apply },
{ "archive", cmd_archive }, { "archive", cmd_archive },
{ "blame", cmd_blame, RUN_SETUP }, { "blame", cmd_blame, RUN_SETUP },

View File

@ -436,6 +436,40 @@ test_expect_success numbers '
test z1048576 = "z$m" test z1048576 = "z$m"
' '
cat > expect << EOF
true
false
true
false
true
false
true
false
EOF
test_expect_success bool '
git-config bool.true1 01 &&
git-config bool.true2 -1 &&
git-config bool.true3 YeS &&
git-config bool.true4 true &&
git-config bool.false1 000 &&
git-config bool.false2 "" &&
git-config bool.false3 nO &&
git-config bool.false4 FALSE &&
rm -f result &&
for i in 1 2 3 4
do
git-config --bool --get bool.true$i >>result
git-config --bool --get bool.false$i >>result
done &&
cmp expect result'
test_expect_failure 'invalid bool' '
git-config bool.nobool foobar &&
git-config --bool --get bool.nobool'
rm .git/config rm .git/config
git-config quote.leading " test" git-config quote.leading " test"

View File

@ -414,10 +414,6 @@ static void verify_uptodate(struct cache_entry *ce,
return; return;
errno = 0; errno = 0;
} }
if (o->reset) {
ce->ce_flags |= htons(CE_UPDATE);
return;
}
if (errno == ENOENT) if (errno == ENOENT)
return; return;
die("Entry '%s' not uptodate. Cannot merge.", ce->name); die("Entry '%s' not uptodate. Cannot merge.", ce->name);