Sync with v1.7.8.1
This commit is contained in:
commit
e443bdfe1e
@ -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.
|
||||||
|
@ -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",
|
||||||
|
@ -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"),
|
||||||
|
@ -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;
|
||||||
|
12
convert.c
12
convert.c
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user