mirror of
https://github.com/git/git.git
synced 2026-04-01 20:40:08 +02:00
Merge commit 'v1.6.5.1' into devel
This commit is contained in:
20
Documentation/RelNotes-1.6.5.1.txt
Normal file
20
Documentation/RelNotes-1.6.5.1.txt
Normal file
@@ -0,0 +1,20 @@
|
||||
GIT v1.6.5.1 Release Notes
|
||||
==========================
|
||||
|
||||
Fixes since v1.6.5
|
||||
------------------
|
||||
|
||||
* An corrupt pack could make codepath to read objects into an
|
||||
infinite loop.
|
||||
|
||||
* Download throughput display was always shown in KiB/s but on fast links
|
||||
it is more appropriate to show it in MiB/s.
|
||||
|
||||
* "git grep -f filename" used uninitialized variable and segfaulted.
|
||||
|
||||
* "git clone -b branch" gave a wrong commit object name to post-checkout
|
||||
hook.
|
||||
|
||||
* "git pull" over http did not work on msys.
|
||||
|
||||
Other minor documentation updates are included.
|
||||
@@ -78,7 +78,8 @@ stash@{1}: On master: 9cc0589... Add git-stash
|
||||
----------------------------------------------------------------
|
||||
+
|
||||
The command takes options applicable to the 'git-log'
|
||||
command to control what is shown and how. See linkgit:git-log[1].
|
||||
command to control what is shown and how. If no options are set, the
|
||||
default is `-n 10`. See linkgit:git-log[1].
|
||||
|
||||
show [<stash>]::
|
||||
|
||||
|
||||
@@ -46,6 +46,7 @@ Documentation for older releases are available here:
|
||||
* link:v1.6.5/git.html[documentation for release 1.6.5]
|
||||
|
||||
* release notes for
|
||||
link:RelNotes-1.6.5.1.txt[1.6.5.1],
|
||||
link:RelNotes-1.6.5.txt[1.6.5].
|
||||
|
||||
* link:v1.6.4.4/git.html[documentation for release 1.6.4.4]
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#!/bin/sh
|
||||
|
||||
GVF=GIT-VERSION-FILE
|
||||
DEF_VER=v1.6.5
|
||||
DEF_VER=v1.6.5.1
|
||||
|
||||
LF='
|
||||
'
|
||||
|
||||
2
RelNotes
2
RelNotes
@@ -1 +1 @@
|
||||
Documentation/RelNotes-1.6.5.txt
|
||||
Documentation/RelNotes-1.6.5.1.txt
|
||||
@@ -641,7 +641,8 @@ int cmd_clone(int argc, const char **argv, const char *prefix)
|
||||
die("unable to write new index file");
|
||||
|
||||
err |= run_hook(NULL, "post-checkout", sha1_to_hex(null_sha1),
|
||||
sha1_to_hex(remote_head->old_sha1), "1", NULL);
|
||||
sha1_to_hex(our_head_points_at->old_sha1), "1",
|
||||
NULL);
|
||||
|
||||
if (!err && option_recursive)
|
||||
err = run_command_v_opt(argv_submodule, RUN_GIT_CMD);
|
||||
|
||||
@@ -631,7 +631,7 @@ static int file_callback(const struct option *opt, const char *arg, int unset)
|
||||
struct grep_opt *grep_opt = opt->value;
|
||||
FILE *patterns;
|
||||
int lno = 0;
|
||||
struct strbuf sb;
|
||||
struct strbuf sb = STRBUF_INIT;
|
||||
|
||||
patterns = fopen(arg, "r");
|
||||
if (!patterns)
|
||||
|
||||
@@ -131,7 +131,13 @@ static void throughput_string(struct throughput *tp, off_t total,
|
||||
} else {
|
||||
l -= snprintf(tp->display, l, ", %u bytes", (int)total);
|
||||
}
|
||||
if (rate)
|
||||
|
||||
if (rate > 1 << 10) {
|
||||
int x = rate + 5; /* for rounding */
|
||||
snprintf(tp->display + sizeof(tp->display) - l, l,
|
||||
" | %u.%2.2u MiB/s",
|
||||
x >> 10, ((x & ((1 << 10) - 1)) * 100) >> 10);
|
||||
} else if (rate)
|
||||
snprintf(tp->display + sizeof(tp->display) - l, l,
|
||||
" | %u KiB/s", rate);
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
#include "strbuf.h"
|
||||
#include "walker.h"
|
||||
#include "http.h"
|
||||
#include "exec_cmd.h"
|
||||
|
||||
static struct ref *get_refs(struct walker *walker, const char *url)
|
||||
{
|
||||
@@ -82,6 +83,7 @@ int main(int argc, const char **argv)
|
||||
const char *url;
|
||||
struct walker *walker = NULL;
|
||||
|
||||
git_extract_argv0_path(argv[0]);
|
||||
setup_git_directory();
|
||||
if (argc < 2) {
|
||||
fprintf(stderr, "Remote needed\n");
|
||||
|
||||
@@ -1357,6 +1357,8 @@ unsigned long get_size_from_delta(struct packed_git *p,
|
||||
in = use_pack(p, w_curs, curpos, &stream.avail_in);
|
||||
stream.next_in = in;
|
||||
st = git_inflate(&stream, Z_FINISH);
|
||||
if (st == Z_BUF_ERROR && (stream.avail_in || !stream.avail_out))
|
||||
break;
|
||||
curpos += stream.next_in - in;
|
||||
} while ((st == Z_OK || st == Z_BUF_ERROR) &&
|
||||
stream.total_out < sizeof(delta_head));
|
||||
@@ -1594,6 +1596,8 @@ static void *unpack_compressed_entry(struct packed_git *p,
|
||||
in = use_pack(p, w_curs, curpos, &stream.avail_in);
|
||||
stream.next_in = in;
|
||||
st = git_inflate(&stream, Z_FINISH);
|
||||
if (st == Z_BUF_ERROR && (stream.avail_in || !stream.avail_out))
|
||||
break;
|
||||
curpos += stream.next_in - in;
|
||||
} while (st == Z_OK || st == Z_BUF_ERROR);
|
||||
git_inflate_end(&stream);
|
||||
|
||||
@@ -275,4 +275,13 @@ test_expect_success \
|
||||
git cat-file blob $blob_2 > /dev/null &&
|
||||
git cat-file blob $blob_3 > /dev/null'
|
||||
|
||||
test_expect_success \
|
||||
'corrupting header to have too small output buffer fails unpack' \
|
||||
'create_new_pack &&
|
||||
git prune-packed &&
|
||||
printf "\262\001" | do_corrupt_object $blob_1 0 &&
|
||||
test_must_fail git cat-file blob $blob_1 > /dev/null &&
|
||||
test_must_fail git cat-file blob $blob_2 > /dev/null &&
|
||||
test_must_fail git cat-file blob $blob_3 > /dev/null'
|
||||
|
||||
test_done
|
||||
|
||||
@@ -213,6 +213,72 @@ test_expect_success 'grep -e A --and --not -e B' '
|
||||
test_cmp expected actual
|
||||
'
|
||||
|
||||
test_expect_success 'grep -f, non-existent file' '
|
||||
test_must_fail git grep -f patterns
|
||||
'
|
||||
|
||||
cat >expected <<EOF
|
||||
file:foo mmap bar
|
||||
file:foo_mmap bar
|
||||
file:foo_mmap bar mmap
|
||||
file:foo mmap bar_mmap
|
||||
file:foo_mmap bar mmap baz
|
||||
EOF
|
||||
|
||||
cat >pattern <<EOF
|
||||
mmap
|
||||
EOF
|
||||
|
||||
test_expect_success 'grep -f, one pattern' '
|
||||
git grep -f pattern >actual &&
|
||||
test_cmp expected actual
|
||||
'
|
||||
|
||||
cat >expected <<EOF
|
||||
file:foo mmap bar
|
||||
file:foo_mmap bar
|
||||
file:foo_mmap bar mmap
|
||||
file:foo mmap bar_mmap
|
||||
file:foo_mmap bar mmap baz
|
||||
t/a/v:vvv
|
||||
t/v:vvv
|
||||
v:vvv
|
||||
EOF
|
||||
|
||||
cat >patterns <<EOF
|
||||
mmap
|
||||
vvv
|
||||
EOF
|
||||
|
||||
test_expect_success 'grep -f, multiple patterns' '
|
||||
git grep -f patterns >actual &&
|
||||
test_cmp expected actual
|
||||
'
|
||||
|
||||
cat >expected <<EOF
|
||||
file:foo mmap bar
|
||||
file:foo_mmap bar
|
||||
file:foo_mmap bar mmap
|
||||
file:foo mmap bar_mmap
|
||||
file:foo_mmap bar mmap baz
|
||||
t/a/v:vvv
|
||||
t/v:vvv
|
||||
v:vvv
|
||||
EOF
|
||||
|
||||
cat >patterns <<EOF
|
||||
|
||||
mmap
|
||||
|
||||
vvv
|
||||
|
||||
EOF
|
||||
|
||||
test_expect_success 'grep -f, ignore empty lines' '
|
||||
git grep -f patterns >actual &&
|
||||
test_cmp expected actual
|
||||
'
|
||||
|
||||
cat >expected <<EOF
|
||||
y:y yy
|
||||
--
|
||||
|
||||
Reference in New Issue
Block a user