Skip to content

Commit

Permalink
Sync with 1.7.11.6
Browse files Browse the repository at this point in the history
Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
Junio C Hamano committed Sep 11, 2012
2 parents 3119084 + e09e402 commit 1c88a6d
Show file tree
Hide file tree
Showing 32 changed files with 569 additions and 392 deletions.
88 changes: 55 additions & 33 deletions Documentation/RelNotes/1.7.11.6.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,59 +4,81 @@ Git v1.7.11.6 Release Notes
Fixes since v1.7.11.5
---------------------

This consists primarily of documentation updates and low-impact code
clarification and bugfixes.

- "ciabot" script (in contrib/) has been updated with extensive
* "ciabot" script (in contrib/) has been updated with extensive
documentation.

- The "--rebase" option to "git pull" can be abbreviated to "-r",
but we didn't document it.
* "git foo" errored out with "Not a directory" when the user had a
non-directory on $PATH, and worse yet it masked an alias "foo" from
running.

- It was generally understood that "--long-option"s to many of our
subcommands can be abbreviated to the unique prefix, but it was not
easy to find it described for new readers of the documentation set.
* When the user exports a non-default IFS without HT, scripts that
rely on being able to parse "ls-files -s | while read a b c..."
started to fail. Protect them from such a misconfiguration.

- The "--topo-order", "--date-order" (and the lack of either means
the default order) options to "rev-list" and "log" family of
commands were poorly described in the documentation.
* When the user gives an argument that can be taken as both a
revision name and a pathname without disambiguating with "--", we
used to give a help message "Use '--' to separate". The message
has been clarified to show where that '--' goes on the command
line.

* Documentation for the configuration file format had a confusing
example.

- Older parts of the documentation described as if having a regular
* Older parts of the documentation described as if having a regular
file in .git/refs/ hierarchy were the only way to have branches and
tags, which is not true for quite some time.

- A utility shell function test_seq has been added as a replacement
for the 'seq' utility found on some platforms.
* It was generally understood that "--long-option"s to many of our
subcommands can be abbreviated to the unique prefix, but it was not
easy to find it described for new readers of the documentation set.

- Fallback 'getpass' implementation made unportable use of stdio API.
* The "--topo-order", "--date-order" (and the lack of either means
the default order) options to "rev-list" and "log" family of
commands were poorly described in the documentation.

- "git commit --amend" let the user edit the log message and then
* "git commit --amend" let the user edit the log message and then
died when the human-readable committer name was given
insufficiently by getpwent(3).

- The reflog entries left by "git rebase" and "git rebase -i" were
inconsistent (the interactive one gave an abbreviated object name).
* The exit status code from "git config" was way overspecified while
being incorrect. The implementation has been updated to give the
documented status for a case that was documented, and introduce a
new code for "all other errors".

- When the user exports a non-default IFS without HT, scripts that
rely on being able to parse "ls-files -s | while read a b c..."
started to fail. Protect them from such a misconfiguration.
* The output from "git diff -B" for a file that ends with an
incomplete line did not put "\ No newline..." on a line of its own.

* "git diff" had a confusion between taking data from a path in the
working tree and taking data from an object that happens to have
name 0{40} recorded in a tree.

- When "git push" triggered the automatic gc on the receiving end, a
* The "--rebase" option to "git pull" can be abbreviated to "-r",
but we didn't document it.

* When "git push" triggered the automatic gc on the receiving end, a
message from "git prune" that said it was removing cruft leaked to
the standard output, breaking the communication protocol.

- "git diff" had a confusion between taking data from a path in the
working tree and taking data from an object that happens to have
name 0{40} recorded in a tree.
* The reflog entries left by "git rebase" and "git rebase -i" were
inconsistent (the interactive one gave an abbreviated object name).

- "git send-email" did not unquote encoded words that appear on the
* "git send-email" did not unquote encoded words that appear on the
header correctly, and lost "_" from strings.

- When the user gives an argument that can be taken as both a
revision name and a pathname without disambiguating with "--", we
used to give a help message "Use '--' to separate". The message
has been clarified to show where that '--' goes on the command
line.
* "git stash apply/pop" did not trigger "rerere" upon conflicts
unlike other mergy operations.

* "git submodule <cmd> path" did not error out when the path to the
submodule was misspelt.

- "gitweb" when used with PATH_INFO failed to notice directories with
* "git submodule update -f" did not update paths in the working tree
that has local changes.
(merge 01d4721 sz/submodule-force-update later to maint).

* "gitweb" when used with PATH_INFO failed to notice directories with
SP (and other characters that need URL-style quoting) in them.

* Fallback 'getpass' implementation made unportable use of stdio API.

* A utility shell function test_seq has been added as a replacement
for the 'seq' utility found on some platforms.
4 changes: 2 additions & 2 deletions Documentation/asciidoc.conf
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ ifndef::git-asciidoc-no-roff[]
# v1.72 breaks with this because it replaces dots not in roff requests.
[listingblock]
<example><title>{title}</title>
<literallayout>
<literallayout class="monospaced">
ifdef::doctype-manpage[]
&#10;.ft C&#10;
endif::doctype-manpage[]
Expand All @@ -53,7 +53,7 @@ ifdef::doctype-manpage[]
# The following two small workarounds insert a simple paragraph after screen
[listingblock]
<example><title>{title}</title>
<literallayout>
<literallayout class="monospaced">
|
</literallayout><simpara></simpara>
{title#}</example>
Expand Down
12 changes: 6 additions & 6 deletions Documentation/git-config.txt
Original file line number Diff line number Diff line change
Expand Up @@ -54,16 +54,16 @@ configuration file by default, and options '--system', '--global',
'--file <filename>' can be used to tell the command to write to
that location (you can say '--local' but that is the default).

This command will fail (with exit code ret) if:
This command will fail with non-zero status upon error. Some exit
codes are:

. The config file is invalid (ret=3),
. can not write to the config file (ret=4),
. no section or name was provided (ret=2),
. the section or key is invalid (ret=1),
. you try to unset an option which does not exist (ret=5),
. you try to unset/set an option for which multiple lines match (ret=5),
. you try to use an invalid regexp (ret=6), or
. you use '--global' option without $HOME being properly set (ret=128).
. you try to unset/set an option for which multiple lines match (ret=5), or
. you try to use an invalid regexp (ret=6).

On success, the command returns the exit code 0.

Expand Down Expand Up @@ -267,7 +267,7 @@ Given a .git/config like this:

; Proxy settings
[core]
gitproxy="proxy-command" for kernel.org
gitproxy=proxy-command for kernel.org
gitproxy=default-proxy ; for all the rest

you can set the filemode to true with
Expand Down Expand Up @@ -342,7 +342,7 @@ To actually match only values with an exclamation mark, you have to
To add a new proxy, without altering any of the existing ones, use

------------
% git config core.gitproxy '"proxy-command" for example.com'
% git config --add core.gitproxy '"proxy-command" for example.com'
------------

An example to use customized color from the configuration in your
Expand Down
9 changes: 8 additions & 1 deletion Documentation/git-submodule.txt
Original file line number Diff line number Diff line change
Expand Up @@ -149,6 +149,11 @@ submodule with the `--init` option.
+
If `--recursive` is specified, this command will recurse into the
registered submodules, and update any nested submodules within.
+
If `--force` is specified, the submodule will be checked out (using
`git checkout --force` if appropriate), even if the commit specified in the
index of the containing repository already matches the commit checked out in
the submodule.

summary::
Show commit summary between the given commit (defaults to HEAD) and
Expand Down Expand Up @@ -210,7 +215,9 @@ OPTIONS
This option is only valid for add and update commands.
When running add, allow adding an otherwise ignored submodule path.
When running update, throw away local changes in submodules when
switching to a different commit.
switching to a different commit; and always run a checkout operation
in the submodule, even if the commit listed in the index of the
containing repository matches the commit checked out in the submodule.

--cached::
This option is only valid for status and summary commands. These
Expand Down
3 changes: 2 additions & 1 deletion Documentation/git.txt
Original file line number Diff line number Diff line change
Expand Up @@ -48,9 +48,10 @@ Documentation for older releases are available here:
* release notes for
link:RelNotes/1.7.12.txt[1.7.12].

* link:v1.7.11.5/git.html[documentation for release 1.7.11.5]
* link:v1.7.11.6/git.html[documentation for release 1.7.11.6]

* release notes for
link:RelNotes/1.7.11.6.txt[1.7.11.6],
link:RelNotes/1.7.11.5.txt[1.7.11.5],
link:RelNotes/1.7.11.4.txt[1.7.11.4],
link:RelNotes/1.7.11.3.txt[1.7.11.3],
Expand Down
2 changes: 1 addition & 1 deletion Documentation/user-manual.conf
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ ifdef::backend-docbook[]
# "unbreak" docbook-xsl v1.68 for manpages. v1.69 works with or without this.
[listingblock]
<example><title>{title}</title>
<literallayout>
<literallayout class="monospaced">
|
</literallayout>
{title#}</example>
Expand Down
1 change: 0 additions & 1 deletion builtin/apply.c
Original file line number Diff line number Diff line change
Expand Up @@ -188,7 +188,6 @@ struct patch {
int is_new, is_delete; /* -1 = unknown, 0 = false, 1 = true */
int rejected;
unsigned ws_rule;
unsigned long deflate_origlen;
int lines_added, lines_deleted;
int score;
unsigned int is_toplevel_relative:1;
Expand Down
9 changes: 3 additions & 6 deletions builtin/blame.c
Original file line number Diff line number Diff line change
Expand Up @@ -407,8 +407,7 @@ static struct origin *find_origin(struct scoreboard *sb,
paths[1] = NULL;

diff_tree_setup_paths(paths, &diff_opts);
if (diff_setup_done(&diff_opts) < 0)
die("diff-setup");
diff_setup_done(&diff_opts);

if (is_null_sha1(origin->commit->object.sha1))
do_diff_cache(parent->tree->object.sha1, &diff_opts);
Expand Down Expand Up @@ -494,8 +493,7 @@ static struct origin *find_rename(struct scoreboard *sb,
diff_opts.single_follow = origin->path;
paths[0] = NULL;
diff_tree_setup_paths(paths, &diff_opts);
if (diff_setup_done(&diff_opts) < 0)
die("diff-setup");
diff_setup_done(&diff_opts);

if (is_null_sha1(origin->commit->object.sha1))
do_diff_cache(parent->tree->object.sha1, &diff_opts);
Expand Down Expand Up @@ -1075,8 +1073,7 @@ static int find_copy_in_parent(struct scoreboard *sb,

paths[0] = NULL;
diff_tree_setup_paths(paths, &diff_opts);
if (diff_setup_done(&diff_opts) < 0)
die("diff-setup");
diff_setup_done(&diff_opts);

/* Try "find copies harder" on new path if requested;
* we do not want to use diffcore_rename() actually to
Expand Down
3 changes: 1 addition & 2 deletions builtin/checkout.c
Original file line number Diff line number Diff line change
Expand Up @@ -316,8 +316,7 @@ static void show_local_changes(struct object *head, struct diff_options *opts)
init_revisions(&rev, NULL);
rev.diffopt.flags = opts->flags;
rev.diffopt.output_format |= DIFF_FORMAT_NAME_STATUS;
if (diff_setup_done(&rev.diffopt) < 0)
die(_("diff_setup_done failed"));
diff_setup_done(&rev.diffopt);
add_pending_object(&rev, head, NULL);
run_diff_index(&rev, 0);
}
Expand Down
8 changes: 6 additions & 2 deletions builtin/config.c
Original file line number Diff line number Diff line change
Expand Up @@ -160,7 +160,7 @@ static int show_config(const char *key_, const char *value_, void *cb)

static int get_value(const char *key_, const char *regex_)
{
int ret = -1;
int ret = CONFIG_GENERIC_ERROR;
char *global = NULL, *xdg = NULL, *repo_config = NULL;
const char *system_wide = NULL, *local;
struct config_include_data inc = CONFIG_INCLUDE_INIT;
Expand Down Expand Up @@ -196,11 +196,14 @@ static int get_value(const char *key_, const char *regex_)
if (regcomp(key_regexp, key, REG_EXTENDED)) {
fprintf(stderr, "Invalid key pattern: %s\n", key_);
free(key);
ret = CONFIG_INVALID_PATTERN;
goto free_strings;
}
} else {
if (git_config_parse_key(key_, &key, NULL))
if (git_config_parse_key(key_, &key, NULL)) {
ret = CONFIG_INVALID_KEY;
goto free_strings;
}
}

if (regex_) {
Expand All @@ -212,6 +215,7 @@ static int get_value(const char *key_, const char *regex_)
regexp = (regex_t*)xmalloc(sizeof(regex_t));
if (regcomp(regexp, regex_, REG_EXTENDED)) {
fprintf(stderr, "Invalid pattern: %s\n", regex_);
ret = CONFIG_INVALID_PATTERN;
goto free_strings;
}
}
Expand Down
3 changes: 1 addition & 2 deletions builtin/diff.c
Original file line number Diff line number Diff line change
Expand Up @@ -302,8 +302,7 @@ int cmd_diff(int argc, const char **argv, const char *prefix)
argc = setup_revisions(argc, argv, &rev, NULL);
if (!rev.diffopt.output_format) {
rev.diffopt.output_format = DIFF_FORMAT_PATCH;
if (diff_setup_done(&rev.diffopt) < 0)
die(_("diff_setup_done failed"));
diff_setup_done(&rev.diffopt);
}

DIFF_OPT_SET(&rev.diffopt, RECURSIVE);
Expand Down
3 changes: 1 addition & 2 deletions builtin/merge.c
Original file line number Diff line number Diff line change
Expand Up @@ -404,8 +404,7 @@ static void finish(struct commit *head_commit,
opts.output_format |=
DIFF_FORMAT_SUMMARY | DIFF_FORMAT_DIFFSTAT;
opts.detect_rename = DIFF_DETECT_RENAME;
if (diff_setup_done(&opts) < 0)
die(_("diff_setup_done failed"));
diff_setup_done(&opts);
diff_tree_sha1(head, new_head, "", &opts);
diffcore_std(&opts);
diff_flush(&opts);
Expand Down
1 change: 1 addition & 0 deletions cache.h
Original file line number Diff line number Diff line change
Expand Up @@ -1110,6 +1110,7 @@ extern int update_server_info(int);
#define CONFIG_NO_WRITE 4
#define CONFIG_NOTHING_SET 5
#define CONFIG_INVALID_PATTERN 6
#define CONFIG_GENERIC_ERROR 7

typedef int (*config_fn_t)(const char *, const char *, void *);
extern int git_default_config(const char *, const char *, void *);
Expand Down
3 changes: 1 addition & 2 deletions diff-no-index.c
Original file line number Diff line number Diff line change
Expand Up @@ -258,8 +258,7 @@ void diff_no_index(struct rev_info *revs,
DIFF_OPT_SET(&revs->diffopt, NO_INDEX);

revs->max_count = -2;
if (diff_setup_done(&revs->diffopt) < 0)
die("diff_setup_done failed");
diff_setup_done(&revs->diffopt);

setup_diff_pager(&revs->diffopt);
DIFF_OPT_SET(&revs->diffopt, EXIT_WITH_STATUS);
Expand Down
5 changes: 2 additions & 3 deletions diff.c
Original file line number Diff line number Diff line change
Expand Up @@ -574,6 +574,7 @@ static void emit_rewrite_lines(struct emit_callback *ecb,
if (!endp) {
const char *plain = diff_get_color(ecb->color_diff,
DIFF_PLAIN);
putc('\n', ecb->opt->file);
emit_line_0(ecb->opt, plain, reset, '\\',
nneof, strlen(nneof));
}
Expand Down Expand Up @@ -3187,7 +3188,7 @@ void diff_setup(struct diff_options *options)
}
}

int diff_setup_done(struct diff_options *options)
void diff_setup_done(struct diff_options *options)
{
int count = 0;

Expand Down Expand Up @@ -3286,8 +3287,6 @@ int diff_setup_done(struct diff_options *options)
options->output_format = DIFF_FORMAT_NO_OUTPUT;
DIFF_OPT_SET(options, EXIT_WITH_STATUS);
}

return 0;
}

static int opt_arg(const char *arg, int arg_short, const char *arg_long, int *val)
Expand Down
2 changes: 1 addition & 1 deletion diff.h
Original file line number Diff line number Diff line change
Expand Up @@ -246,7 +246,7 @@ extern int git_diff_ui_config(const char *var, const char *value, void *cb);
extern int diff_use_color_default;
extern void diff_setup(struct diff_options *);
extern int diff_opt_parse(struct diff_options *, const char **, int);
extern int diff_setup_done(struct diff_options *);
extern void diff_setup_done(struct diff_options *);

#define DIFF_DETECT_RENAME 1
#define DIFF_DETECT_COPY 2
Expand Down
Loading

0 comments on commit 1c88a6d

Please sign in to comment.