Sync with v1.7.8.1

This commit is contained in:
Junio C Hamano 2011-12-21 12:02:39 -08:00
commit e443bdfe1e
5 changed files with 35 additions and 14 deletions

View file

@ -1,17 +1,38 @@
Git v1.7.8.1 Release Notes Git v1.7.8.1 Release Notes
========================== ==========================
Fixes since v1.7.8.1 Fixes since v1.7.8
-------------------- ------------------
* In some codepaths (notably, checkout and merge), the ignore patterns * In some codepaths (notably, checkout and merge), the ignore patterns
recorded in $GIT_DIR/info/exclude were not honored. They now are. recorded in $GIT_DIR/info/exclude were not honored. They now are.
* After fetching from a remote that has very long refname, the reporting * "git apply --check" did not error out when given an empty input
output could have corrupted by overrunning a static buffer. without any patch.
* "git archive" mistakenly allowed remote clients to ask for commits
that are not at the tip of any ref.
* "git checkout" and "git merge" treated in-tree .gitignore and exclude * "git checkout" and "git merge" treated in-tree .gitignore and exclude
file in $GIT_DIR/info/ directory inconsistently when deciding which file in $GIT_DIR/info/ directory inconsistently when deciding which
untracked files are ignored and expendable. untracked files are ignored and expendable.
* LF-to-CRLF streaming filter used when checking out a large-ish blob
fell into an infinite loop with a rare input.
* The function header pattern for files with "diff=cpp" attribute did
not consider "type *funcname(type param1,..." as the beginning of a
function.
* The error message from "git diff" and "git status" when they fail
to inspect changes in submodules did not report which submodule they
had trouble with.
* After fetching from a remote that has very long refname, the reporting
output could have corrupted by overrunning a static buffer.
* "git pack-objects" avoids creating cyclic dependencies among deltas
when seeing a broken packfile that records the same object in both
the deflated form and as a delta.
Also contains minor fixes and documentation updates. Also contains minor fixes and documentation updates.

View file

@ -84,8 +84,8 @@ static struct option builtin_clone_options[] = {
"directory from which templates will be used"), "directory from which templates will be used"),
OPT_CALLBACK(0 , "reference", &option_reference, "repo", OPT_CALLBACK(0 , "reference", &option_reference, "repo",
"reference repository", &opt_parse_reference), "reference repository", &opt_parse_reference),
OPT_STRING('o', "origin", &option_origin, "branch", OPT_STRING('o', "origin", &option_origin, "name",
"use <branch> instead of 'origin' to track upstream"), "use <name> instead of 'origin' to track upstream"),
OPT_STRING('b', "branch", &option_branch, "branch", OPT_STRING('b', "branch", &option_branch, "branch",
"checkout <branch> instead of the remote's HEAD"), "checkout <branch> instead of the remote's HEAD"),
OPT_STRING('u', "upload-pack", &option_upload_pack, "path", OPT_STRING('u', "upload-pack", &option_upload_pack, "path",

View file

@ -139,7 +139,7 @@ static struct option builtin_commit_options[] = {
OPT_STRING('C', "reuse-message", &use_message, "commit", "reuse message from specified commit"), OPT_STRING('C', "reuse-message", &use_message, "commit", "reuse message from specified commit"),
OPT_STRING(0, "fixup", &fixup_message, "commit", "use autosquash formatted message to fixup specified commit"), OPT_STRING(0, "fixup", &fixup_message, "commit", "use autosquash formatted message to fixup specified commit"),
OPT_STRING(0, "squash", &squash_message, "commit", "use autosquash formatted message to squash specified commit"), OPT_STRING(0, "squash", &squash_message, "commit", "use autosquash formatted message to squash specified commit"),
OPT_BOOLEAN(0, "reset-author", &renew_authorship, "the commit is authored by me now (used with -C-c/--amend)"), OPT_BOOLEAN(0, "reset-author", &renew_authorship, "the commit is authored by me now (used with -C/-c/--amend)"),
OPT_BOOLEAN('s', "signoff", &signoff, "add Signed-off-by:"), OPT_BOOLEAN('s', "signoff", &signoff, "add Signed-off-by:"),
OPT_FILENAME('t', "template", &template_file, "use specified template file"), OPT_FILENAME('t', "template", &template_file, "use specified template file"),
OPT_BOOL('e', "edit", &edit_flag, "force edit of commit"), OPT_BOOL('e', "edit", &edit_flag, "force edit of commit"),

View file

@ -73,8 +73,6 @@ static int decorate_callback(const struct option *opt, const char *arg, int unse
static void cmd_log_init_defaults(struct rev_info *rev) static void cmd_log_init_defaults(struct rev_info *rev)
{ {
rev->abbrev = DEFAULT_ABBREV;
rev->commit_format = CMIT_FMT_DEFAULT;
if (fmt_pretty) if (fmt_pretty)
get_commit_format(fmt_pretty, rev); get_commit_format(fmt_pretty, rev);
rev->verbose_header = 1; rev->verbose_header = 1;

View file

@ -879,7 +879,7 @@ int is_null_stream_filter(struct stream_filter *filter)
struct lf_to_crlf_filter { struct lf_to_crlf_filter {
struct stream_filter filter; struct stream_filter filter;
int want_lf; unsigned want_lf:1;
}; };
static int lf_to_crlf_filter_fn(struct stream_filter *filter, static int lf_to_crlf_filter_fn(struct stream_filter *filter,
@ -895,8 +895,11 @@ static int lf_to_crlf_filter_fn(struct stream_filter *filter,
lf_to_crlf->want_lf = 0; lf_to_crlf->want_lf = 0;
} }
if (!input) /* We are told to drain */
return 0; /* We've already dealt with the state */ if (!input) {
*osize_p -= o;
return 0;
}
count = *isize_p; count = *isize_p;
if (count) { if (count) {
@ -931,10 +934,9 @@ static struct stream_filter_vtbl lf_to_crlf_vtbl = {
static struct stream_filter *lf_to_crlf_filter(void) static struct stream_filter *lf_to_crlf_filter(void)
{ {
struct lf_to_crlf_filter *lf_to_crlf = xmalloc(sizeof(*lf_to_crlf)); struct lf_to_crlf_filter *lf_to_crlf = xcalloc(1, sizeof(*lf_to_crlf));
lf_to_crlf->filter.vtbl = &lf_to_crlf_vtbl; lf_to_crlf->filter.vtbl = &lf_to_crlf_vtbl;
lf_to_crlf->want_lf = 0;
return (struct stream_filter *)lf_to_crlf; return (struct stream_filter *)lf_to_crlf;
} }