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. * 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 * Similar to branch names, tagnames that begin with "-" are now
disallowed. disallowed.
@@ -16,6 +17,15 @@ Updates since v1.7.5
* The scripting part of the codebase is getting prepared for i18n/l10n. * 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 * Processes spawned by "[alias] <name> = !process" in the configuration
can inspect GIT_PREFIX environment variable to learn where in the can inspect GIT_PREFIX environment variable to learn where in the
working tree the original command was invoked. 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 "--show-notes" option. Unlike "--show-notes", "--notes=<ref>" does
not imply showing the default notes. 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 * "git ls-remote" learned "--exit-code" option to consider it a
different kind of error when no remote ref to be shown. 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 still in a conflicted state during a merge, to avoid using information
that is not final and possibly corrupt with conflict markers. 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 Also contains various documentation updates and minor miscellaneous
changes. changes.
@@ -107,45 +116,16 @@ Fixes since v1.7.5
Unless otherwise noted, all the fixes in 1.7.5.X maintenance track are Unless otherwise noted, all the fixes in 1.7.5.X maintenance track are
included in this release. 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 * 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 that it was told to add everthing ('a') when up-arrow was pressed by
mistake. mistake.
(merge tr/add-i-no-escape later) (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. * "git config" used to choke with an insanely long line.
(merge ef/maint-strbuf-init later) (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 exec >/var/tmp/1
echo O=$(git describe master) 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 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. branch of the `git.git` repository.
Documentation for older releases are available here: 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 * 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.2.txt[1.7.5.2],
link:RelNotes/1.7.5.1.txt[1.7.5.1], link:RelNotes/1.7.5.1.txt[1.7.5.1],
link:RelNotes/1.7.5.txt[1.7.5]. link:RelNotes/1.7.5.txt[1.7.5].

View File

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

View File

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

View File

@@ -2,74 +2,14 @@
test_description="Test the svn importer's input handling routines. test_description="Test the svn importer's input handling routines.
These tests exercise the line_buffer library, but their real purpose These tests provide some simple checks that the line_buffer API
is to check the assumptions that library makes of the platform's input behaves as advertised.
routines. Processes engaged in bi-directional communication would
hang if fread or fgets is too greedy.
While at it, check that input of newlines and null bytes are handled While at it, check that input of newlines and null bytes are handled
correctly. correctly.
" "
. ./test-lib.sh . ./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' ' test_expect_success 'hello world' '
echo ">HELLO" >expect && echo ">HELLO" >expect &&
test-line-buffer <<-\EOF >actual && test-line-buffer <<-\EOF >actual &&
@@ -79,21 +19,6 @@ test_expect_success 'hello world' '
test_cmp expect actual 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' ' test_expect_success '0-length read, send along greeting' '
echo ">HELLO" >expect && echo ">HELLO" >expect &&
test-line-buffer <<-\EOF >actual && test-line-buffer <<-\EOF >actual &&
@@ -104,33 +29,6 @@ test_expect_success '0-length read, send along greeting' '
test_cmp expect actual 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' ' test_expect_success 'read from file descriptor' '
rm -f input && rm -f input &&
echo hello >expect && echo hello >expect &&