Merge branch 'master' into next

* master:
  plug a DIR buffer leak in rerere.c
  Update 1.7.6 draft release notes
  Git 1.7.5.3
  compat/fnmatch/fnmatch.c: give a fall-back definition for NULL
  Revert "t0081 (line-buffer): add buffering tests"
This commit is contained in:
Junio C Hamano
2011-05-26 11:40:43 -07:00
6 changed files with 56 additions and 140 deletions

View File

@@ -0,0 +1,32 @@
Git v1.7.5.3 Release Notes
==========================
Fixes since v1.7.5.2
--------------------
* The bash completion scripts should correctly work using zsh's bash
completion emulation layer now.
* Setting $(prefix) in config.mak did not affect where etc/gitconfig
file is read from, even though passing it from the command line of
$(MAKE) did.
* The logic to handle "&" (expand to UNIX username) in GECOS field
miscounted the length of the name it formatted.
* "git cherry-pick -s resolve" failed to cherry-pick a root commit.
* "git diff --word-diff" misbehaved when diff.suppress-blank-empty was
in effect.
* "git log --stdin path" with an input that has additional pathspec
used to corrupt memory.
* "git send-pack" (hence "git push") over smalt-HTTP protocol could
deadlock when the client side pack-object died early.
* Compressed tarball gitweb generates used to be made with the timestamp
of the tarball generation; this was bad because snapshot from the same
tree should result in a same tarball.
And other minor fixes and documentation updates.

View File

@@ -6,7 +6,8 @@ Updates since v1.7.5
* Various git-svn updates.
* Updates the way content tags are handled in gitweb.
* Updates the way content tags are handled in gitweb. Also adds
a UI to choose common timezone for displaying the dates.
* Similar to branch names, tagnames that begin with "-" are now
disallowed.
@@ -16,6 +17,15 @@ Updates since v1.7.5
* The scripting part of the codebase is getting prepared for i18n/l10n.
* Pushing and pulling from a repository with large number of refs that
point to identical commits are optimized by not listing the same commit
during the common ancestor negotiation exchange with the other side.
* Adding a file larger than core.bigfilethreshold (defaults to 1/2 Gig)
using "git add" will send the contents straight to a packfile without
having to hold it and its compressed representation both at the same
time in memory.
* Processes spawned by "[alias] <name> = !process" in the configuration
can inspect GIT_PREFIX environment variable to learn where in the
working tree the original command was invoked.
@@ -66,6 +76,9 @@ Updates since v1.7.5
"--show-notes" option. Unlike "--show-notes", "--notes=<ref>" does
not imply showing the default notes.
* They also learned a log.abbrevCommit configuration variable to augment
the --abbrev-commit command line option.
* "git ls-remote" learned "--exit-code" option to consider it a
different kind of error when no remote ref to be shown.
@@ -93,10 +106,6 @@ Updates since v1.7.5
still in a conflicted state during a merge, to avoid using information
that is not final and possibly corrupt with conflict markers.
* Compressed tarball gitweb generates is made without the timestamp of
the tarball generation; snapshot from the same tree should result in
a same tarball.
Also contains various documentation updates and minor miscellaneous
changes.
@@ -107,45 +116,16 @@ Fixes since v1.7.5
Unless otherwise noted, all the fixes in 1.7.5.X maintenance track are
included in this release.
* Setting $(prefix) in config.mak did not affect where etc/gitconfig
file is read from, even though passing it from the command line of
$(MAKE) did.
(merge kk/maint-prefix-in-config-mak later)
* The bash completion scripts should correctly work using zsh's bash
completion emulation layer now.
(merge fc/completion-zsh later)
* The logic to handle "&" (expand to UNIX username) in GECOS field
miscounted the length of the name it formatted.
(merge rg/copy-gecos-username later)
* The single-key mode of "git add -p" was easily fooled into thinking
that it was told to add everthing ('a') when up-arrow was pressed by
mistake.
(merge tr/add-i-no-escape later)
* "git cherry-pick -s resolve" failed to cherry-pick a root commit.
(merge jk/cherry-pick-root-with-resolve later)
* "git config" used to choke with an insanely long line.
(merge ef/maint-strbuf-init later)
* "git diff --word-diff" misbehaved when diff.suppress-blank-empty was
in effect.
(merge jm/maint-diff-words-with-sbe later)
* "git log --stdin path" with an input that has additional pathspec
used to corrupt memory.
(merge jc/maint-pathspec-stdin-and-cmdline later)
* "git send-pack" (hence "git push") over smalt-HTTP protocol could
deadlock when the client side pack-object died early.
(merge js/maint-send-pack-stateless-rpc-deadlock-fix later)
(merge jk/git-connection-deadlock-fix later)
---
exec >/var/tmp/1
echo O=$(git describe master)
O=v1.7.5.2-352-g4961210
O=v1.7.5.3-365-g7eacc2b
git shortlog --no-merges ^maint ^$O master

View File

@@ -44,9 +44,10 @@ unreleased) version of git, that is available from 'master'
branch of the `git.git` repository.
Documentation for older releases are available here:
* link:v1.7.5.2/git.html[documentation for release 1.7.5.2]
* link:v1.7.5.3/git.html[documentation for release 1.7.5.3]
* release notes for
link:RelNotes/1.7.5.3.txt[1.7.5.3],
link:RelNotes/1.7.5.2.txt[1.7.5.2],
link:RelNotes/1.7.5.1.txt[1.7.5.1],
link:RelNotes/1.7.5.txt[1.7.5].

View File

@@ -127,6 +127,10 @@ extern char *getenv ();
extern int errno;
# endif
# ifndef NULL
# define NULL 0
# endif
/* This function doesn't exist on most systems. */
# if !defined HAVE___STRCHRNUL && !defined _LIBC

View File

@@ -739,6 +739,7 @@ void rerere_gc(struct string_list *rr)
if (then < now - cutoff * 86400)
string_list_append(&to_remove, e->d_name);
}
closedir(dir);
for (i = 0; i < to_remove.nr; i++)
unlink_rr_item(to_remove.items[i].string);
string_list_clear(&to_remove, 0);

View File

@@ -2,74 +2,14 @@
test_description="Test the svn importer's input handling routines.
These tests exercise the line_buffer library, but their real purpose
is to check the assumptions that library makes of the platform's input
routines. Processes engaged in bi-directional communication would
hang if fread or fgets is too greedy.
These tests provide some simple checks that the line_buffer API
behaves as advertised.
While at it, check that input of newlines and null bytes are handled
correctly.
"
. ./test-lib.sh
test -n "$GIT_REMOTE_SVN_TEST_BIG_FILES" && test_set_prereq EXPENSIVE
generate_tens_of_lines () {
tens=$1 &&
line=$2 &&
i=0 &&
while test $i -lt "$tens"
do
for j in a b c d e f g h i j
do
echo "$line"
done &&
: $((i = $i + 1)) ||
return
done
}
long_read_test () {
: each line is 10 bytes, including newline &&
line=abcdefghi &&
echo "$line" >expect &&
if ! test_declared_prereq PIPE
then
echo >&4 "long_read_test: need to declare PIPE prerequisite"
return 127
fi &&
tens_of_lines=$(($1 / 100 + 1)) &&
lines=$(($tens_of_lines * 10)) &&
readsize=$((($lines - 1) * 10 + 3)) &&
copysize=7 &&
rm -f input &&
mkfifo input &&
{
(
generate_tens_of_lines $tens_of_lines "$line" &&
exec sleep 100
) >input &
} &&
test-line-buffer input <<-EOF >output &&
binary $readsize
copy $copysize
EOF
kill $! &&
test_line_count = $lines output &&
tail -n 1 <output >actual &&
test_cmp expect actual
}
test_expect_success 'setup: have pipes?' '
rm -f frob &&
if mkfifo frob
then
test_set_prereq PIPE
fi
'
test_expect_success 'hello world' '
echo ">HELLO" >expect &&
test-line-buffer <<-\EOF >actual &&
@@ -79,21 +19,6 @@ test_expect_success 'hello world' '
test_cmp expect actual
'
test_expect_success PIPE '0-length read, no input available' '
printf ">" >expect &&
rm -f input &&
mkfifo input &&
{
sleep 100 >input &
} &&
test-line-buffer input <<-\EOF >actual &&
binary 0
copy 0
EOF
kill $! &&
test_cmp expect actual
'
test_expect_success '0-length read, send along greeting' '
echo ">HELLO" >expect &&
test-line-buffer <<-\EOF >actual &&
@@ -104,33 +29,6 @@ test_expect_success '0-length read, send along greeting' '
test_cmp expect actual
'
test_expect_success PIPE '1-byte read, no input available' '
printf ">%s" ab >expect &&
rm -f input &&
mkfifo input &&
{
(
printf "%s" a &&
printf "%s" b &&
exec sleep 100
) >input &
} &&
test-line-buffer input <<-\EOF >actual &&
binary 1
copy 1
EOF
kill $! &&
test_cmp expect actual
'
test_expect_success PIPE 'long read (around 8192 bytes)' '
long_read_test 8192
'
test_expect_success PIPE,EXPENSIVE 'longer read (around 65536 bytes)' '
long_read_test 65536
'
test_expect_success 'read from file descriptor' '
rm -f input &&
echo hello >expect &&