summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2011-06-10zlib: allow feeding more than 4GB in one goLibravatar Junio C Hamano1-20/+58
Update zlib_post_call() that adjusts the wrapper's notion of avail_in and avail_out to what came back from zlib, so that the callers can feed buffers larger than than 4GB to the API. When underlying inflate/deflate stopped processing because we fed a buffer larger than 4GB limit, detect that case, update the state variables, and let the zlib function work another round. Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-06-10zlib: zlib can only process 4GB at a timeLibravatar Junio C Hamano15-70/+142
The size of objects we read from the repository and data we try to put into the repository are represented in "unsigned long", so that on larger architectures we can handle objects that weigh more than 4GB. But the interface defined in zlib.h to communicate with inflate/deflate limits avail_in (how many bytes of input are we calling zlib with) and avail_out (how many bytes of output from zlib are we ready to accept) fields effectively to 4GB by defining their type to be uInt. In many places in our code, we allocate a large buffer (e.g. mmap'ing a large loose object file) and tell zlib its size by assigning the size to avail_in field of the stream, but that will truncate the high octets of the real size. The worst part of this story is that we often pass around z_stream (the state object used by zlib) to keep track of the number of used bytes in input/output buffer by inspecting these two fields, which practically limits our callchain to the same 4GB limit. Wrap z_stream in another structure git_zstream that can express avail_in and avail_out in unsigned long. For now, just die() when the caller gives a size that cannot be given to a single zlib call. In later patches in the series, we would make git_inflate() and git_deflate() internally loop to give callers an illusion that our "improved" version of zlib interface can operate on a buffer larger than 4GB in one go. Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-06-10zlib: wrap deflateBound() tooLibravatar Junio C Hamano8-10/+17
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-06-10zlib: wrap deflate side of the APILibravatar Junio C Hamano10-41/+105
Wrap deflateInit, deflate, and deflateEnd for everybody, and the sole use of deflateInit2 in remote-curl.c to tell the library to use gzip header and trailer in git_deflate_init_gzip(). There is only one caller that cares about the status from deflateEnd(). Introduce git_deflate_end_gently() to let that sole caller retrieve the status and act on it (i.e. die) for now, but we would probably want to make inflate_end/deflate_end die when they ran out of memory and get rid of the _gently() kind. Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-06-10zlib: wrap inflateInit2 used to accept only for gzip formatLibravatar Junio C Hamano3-4/+17
http-backend.c uses inflateInit2() to tell the library that it wants to accept only gzip format. Wrap it in a helper function so that readers do not have to wonder what the magic numbers 15 and 16 are for. Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-06-10zlib: wrap remaining calls to direct inflate/inflateEndLibravatar Junio C Hamano1-2/+2
Two callsites in http-backend.c to inflate() and inflateEnd() were not using git_ prefixed versions. After this, running $ find all objects -print | xargs nm -ugo | grep inflate shows only zlib.c makes direct calls to zlib for inflate operation, except for a singlecall to inflateInit2 in http-backend.c Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-06-10zlib wrapper: refactor error message formatterLibravatar Junio C Hamano1-35/+38
Before refactoring the main part of the wrappers, first move the logic to convert error status that come back from zlib to string to a helper function. Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-06-01Git 1.7.5.4Libravatar Junio C Hamano3-2/+6
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-06-01Merge branch 'jk/maint-config-alias-fix' into maintLibravatar Junio C Hamano4-48/+30
* jk/maint-config-alias-fix: handle_options(): do not miscount how many arguments were used config: always parse GIT_CONFIG_PARAMETERS during git_config git_config: don't peek at global config_parameters config: make environment parsing routines static
2011-06-01Merge branch 'jc/fmt-req-fix' into maintLibravatar Junio C Hamano1-1/+1
* jc/fmt-req-fix: userformat_find_requirements(): find requirement for the correct format
2011-06-01Merge branch 'jk/maint-docs' into maintLibravatar Junio C Hamano4-15/+35
* jk/maint-docs: docs: fix some antique example output docs: make sure literal "->" isn't converted to arrow docs: update status --porcelain format docs: minor grammar fixes to git-status
2011-06-01Merge branch 'jn/doc-remote-helpers' into maintLibravatar Junio C Hamano1-3/+3
* jn/doc-remote-helpers: Documentation: do not misinterpret refspecs as bold text
2011-06-01Merge branch 'kk/maint-prefix-in-config-mak' into maintLibravatar Junio C Hamano1-0/+1
* kk/maint-prefix-in-config-mak: config.mak.in: allow "configure --sysconfdir=/else/where"
2011-06-01diffcore-rename.c: avoid set-but-not-used warningLibravatar Jim Meyering1-2/+1
Since 9d8a5a5 (diffcore-rename: refactor "too many candidates" logic, 2011-01-06), diffcore_rename() initializes num_src but does not use it anymore. "-Wunused-but-set-variable" in gcc-4.6 complains about this. Signed-off-by: Jim Meyering <meyering@redhat.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-05-31Start 1.7.5.4 draft release notesLibravatar Junio C Hamano2-1/+19
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-05-31Merge branch 'tr/add-i-no-escape' into maintLibravatar Junio C Hamano1-0/+19
* tr/add-i-no-escape: add -i: ignore terminal escape sequences
2011-05-31Merge branch 'vh/config-interactive-singlekey-doc' into maintLibravatar Junio C Hamano5-13/+21
* vh/config-interactive-singlekey-doc: git-reset.txt: better docs for '--patch' git-checkout.txt: better docs for '--patch' git-stash.txt: better docs for '--patch' git-add.txt: document 'interactive.singlekey' config.txt: 'interactive.singlekey; is used by...
2011-05-31Merge branch 'ml/test-readme' into maintLibravatar Junio C Hamano1-8/+9
* ml/test-readme: t/README: unify documentation of test function args
2011-05-31Merge branch 'ab/i18n-fixup' into maintLibravatar Junio C Hamano40-383/+375
* ab/i18n-fixup: (24 commits) i18n: use test_i18n{cmp,grep} in t7600, t7607, t7611 and t7811 i18n: use test_i18n{grep,cmp} in t7508 i18n: use test_i18ngrep in t7506 i18n: use test_i18ngrep and test_i18ncmp in t7502 i18n: use test_i18ngrep in t7501 i18n: use test_i18ncmp in t7500 i18n: use test_i18ngrep in t7201 i18n: use test_i18ncmp and test_i18ngrep in t7102 and t7110 i18n: use test_i18ncmp and test_i18ngrep in t5541, t6040, t6120, t7004, t7012 and t7060 i18n: use test_i18ncmp and test_i18ngrep in t3700, t4001 and t4014 i18n: use test_i18ncmp and test_i18ngrep in t3203, t3501 and t3507 i18n: use test_i18ngrep in t2020, t2204, t3030, and t3200 i18n: use test_i18ngrep in lib-httpd and t2019 i18n: do not overuse C_LOCALE_OUTPUT (grep) i18n: use test_i18ncmp in t1200 and t2200 i18n: .git file is not a human readable message (t5601) i18n: do not overuse C_LOCALE_OUTPUT i18n: mark init-db messages for translation i18n: mark checkout plural warning for translation i18n: mark checkout --detach messages for translation ...
2011-05-31Merge branch 'jc/rename-degrade-cc-to-c' into maintLibravatar Junio C Hamano8-40/+152
* jc/rename-degrade-cc-to-c: diffcore-rename: fall back to -C when -C -C busts the rename limit diffcore-rename: record filepair for rename src diffcore-rename: refactor "too many candidates" logic builtin/diff.c: remove duplicated call to diff_result_code()
2011-05-31Merge branch 'rr/doc-content-type' into maintLibravatar Junio C Hamano2-62/+103
* rr/doc-content-type: Documentation: Allow custom diff tools to be specified in 'diff.tool' Documentation: Add diff.<driver>.* to config Documentation: Move diff.<driver>.* from config.txt to diff-config.txt Documentation: Add filter.<driver>.* to config
2011-05-30Documentation: do not misinterpret refspecs as bold textLibravatar Jonathan Nieder1-3/+3
In v1.7.3.3~2 (Documentation: do not misinterpret pull refspec as bold text, 2010-12-03) many uses of asterisks in expressions like "refs/heads/*:refs/svn/origin/branches/*" were escaped as {asterisk} to avoid being treated as delimiters for bold text, but these two were missed. Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-05-30Merge branch 'jm/maint-misc-fix' into maintLibravatar Junio C Hamano4-5/+11
* jm/maint-misc-fix: read_gitfile_gently: use ssize_t to hold read result remove tests of always-false condition rerere.c: diagnose a corrupt MERGE_RR when hitting EOF between TAB and '\0'
2011-05-30Merge branch 'bc/maint-submodule-fix-parked' into maintLibravatar Junio C Hamano1-1/+1
* bc/maint-submodule-fix-parked: git-submodule.sh: separate parens by a space to avoid confusing some shells
2011-05-30Merge branch 'bc/maint-api-doc-parked' into maintLibravatar Junio C Hamano1-2/+2
* bc/maint-api-doc-parked: Documentation/technical/api-diff.txt: correct name of diff_unmerge()
2011-05-29Merge branch 'jn/run-command-error-failure' into maintLibravatar Junio C Hamano3-6/+34
* jn/run-command-error-failure: run-command: handle short writes and EINTR in die_child tests: check error message from run_command
2011-05-27config.mak.in: allow "configure --sysconfdir=/else/where"Libravatar Junio C Hamano1-0/+1
We do allow vanilla Makefile users to say make sysconfdir=/else/where and config.mak can also be tweaked manually for the same effect. Give the same configurablity to ./configure users as well. Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-05-26docs: fix some antique example outputLibravatar Jeff King2-4/+4
These diff-index and diff-tree sample outputs date back to the first month of git's existence. The output format has changed slightly since then, so let's have it match the current output. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-05-26docs: make sure literal "->" isn't converted to arrowLibravatar Jeff King2-5/+5
Recent versions of asciidoc will treat "->" as a single-glyph arrow symbol, unless it is inside a literal code block. This is a problem if we are discussing literal output and want to show the ASCII characters. Our usage falls into three categories: 1. Inside a code block. These can be left as-is. 2. Discussing literal output or code, but inside a paragraph. This patch escapes these as "\->". 3. Using the arrow as a symbolic element, such as "use the Edit->Account Settings menu". In this case, the arrow symbol is preferable, so we leave it as-is. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-05-26docs: update status --porcelain formatLibravatar Jeff King1-4/+23
The --porcelain format was originally identical to the --short format, but designed to be stable as the short format changed. Since this was written, the short format picked up a few incompatible niceties, but this description was never changed. Let's mention the differences. While we're at it, let's add some sub-section headings to make the "output" section a little easier to navigate. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-05-26docs: minor grammar fixes to git-statusLibravatar Jeff King1-3/+4
Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-05-26git-submodule.sh: separate parens by a space to avoid confusing some shellsLibravatar Brandon Casey1-1/+1
Some shells interpret '(( ))' according to the rules for arithmetic expansion. This may not follow POSIX, but is prevalent in commonly used shells. Bash does not have a problem with this particular instance of '((', likely because it is not followed by a '))', but the public domain ksh does, and so does ksh on IRIX 6.5. So, add a space between the parenthesis to avoid confusing these shells. Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-05-26Documentation/technical/api-diff.txt: correct name of diff_unmerge()Libravatar Brandon Casey1-2/+2
Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-05-26read_gitfile_gently: use ssize_t to hold read resultLibravatar Jeff King1-1/+1
Otherwise, a negative error return becomes a very large read value. We catch this in practice because we compare the expected and actual numbers of bytes (and you are not likely to be reading (size_t)-1 bytes), but this makes the correctness a little more obvious. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-05-26remove tests of always-false conditionLibravatar Jim Meyering2-2/+2
* fsck.c (fsck_error_function): Don't test obj->sha1 == 0. It can never be true, since that sha1 member is an array. * transport.c (set_upstreams): Likewise for ref->new_sha1. Signed-off-by: Jim Meyering <meyering@redhat.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-05-26rerere.c: diagnose a corrupt MERGE_RR when hitting EOF between TAB and '\0'Libravatar Jim Meyering1-2/+8
If we reach EOF after the SHA1-then-TAB, yet before the NUL that terminates each file name, we would fill the file name buffer with \255 bytes resulting from the repeatedly-failing fgetc (returns EOF/-1) and ultimately complain about "filename too long", because no NUL was encountered. Signed-off-by: Jim Meyering <jim@meyering.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-05-26Git 1.7.5.3Libravatar Junio C Hamano4-3/+36
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-05-26Merge branch 'maint-1.7.4' into maintLibravatar Junio C Hamano0-0/+0
* maint-1.7.4:
2011-05-26Merge branch 'jk/git-connection-deadlock-fix' into maint-1.7.4Libravatar Junio C Hamano4-14/+67
* jk/git-connection-deadlock-fix: test core.gitproxy configuration send-pack: avoid deadlock on git:// push with failed pack-objects connect: let callers know if connection is a socket connect: treat generic proxy processes like ssh processes Conflicts: connect.c
2011-05-26Merge branch 'js/maint-send-pack-stateless-rpc-deadlock-fix' into maint-1.7.4Libravatar Junio C Hamano1-2/+7
* js/maint-send-pack-stateless-rpc-deadlock-fix: sideband_demux(): fix decl-after-stmt send-pack: unbreak push over stateless rpc send-pack: avoid deadlock when pack-object dies early
2011-05-26Merge branch 'jk/maint-upload-pack-shallow' into maint-1.7.4Libravatar Junio C Hamano1-12/+11
* jk/maint-upload-pack-shallow: upload-pack: start pack-objects before async rev-list
2011-05-26Merge branch 'jm/maint-diff-words-with-sbe' into maintLibravatar Junio C Hamano2-2/+36
* jm/maint-diff-words-with-sbe: do not read beyond end of malloc'd buffer
2011-05-26Merge branch 'kk/maint-prefix-in-config-mak' into maintLibravatar Junio C Hamano1-9/+9
* kk/maint-prefix-in-config-mak: Honor $(prefix) set in config.mak* when defining ETC_GIT* Revert "Honor $(prefix) set in config.mak* when defining ETC_GIT* and sysconfdir" Honor $(prefix) set in config.mak* when defining ETC_GIT* and sysconfdir
2011-05-26Merge branch 'mg/diff-uiconfig-doc' into maintLibravatar Junio C Hamano2-12/+30
* mg/diff-uiconfig-doc: config.txt,diff-options.txt: porcelain vs. plumbing for color.diff
2011-05-26Merge branch 'ft/gitweb-tar-with-gzip-n' into maintLibravatar Junio C Hamano1-1/+1
* ft/gitweb-tar-with-gzip-n: gitweb: supply '-n' to gzip for identical output
2011-05-26Merge branch 'ss/doc-svn' into maintLibravatar Junio C Hamano1-9/+7
* ss/doc-svn: remove noise and inaccuracies from git-svn docs
2011-05-26Merge branch 'jn/format-patch-doc' into maintLibravatar Junio C Hamano4-195/+229
* jn/format-patch-doc: Documentation/format-patch: suggest Toggle Word Wrap add-on for Thunderbird Documentation: publicize hints for sending patches with GMail Documentation: publicize KMail hints for sending patches inline Documentation: hints for sending patches inline with Thunderbird Documentation: explain how to check for patch corruption
2011-05-26Merge branch 'jc/maint-pathspec-stdin-and-cmdline' into maintLibravatar Junio C Hamano2-52/+45
* jc/maint-pathspec-stdin-and-cmdline: setup_revisions(): take pathspec from command line and --stdin correctly
2011-05-26Merge branch 'jk/cherry-pick-root-with-resolve' into maintLibravatar Junio C Hamano3-7/+36
* jk/cherry-pick-root-with-resolve: t3503: test cherry picking and reverting root commits revert: allow reverting a root commit cherry-pick: handle root commits with external strategies
2011-05-26Merge branch 'rg/copy-gecos-username' into maintLibravatar Junio C Hamano1-0/+1
* rg/copy-gecos-username: copy_gecos: fix not adding nlen to len when processing "&"