summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2011-09-11obstack.c: Fix some sparse warningsLibravatar Ramsay Jones1-8/+7
In particular, sparse issues the following warnings: compat/obstack.c:176:17: warning: Using plain integer as NULL pointer compat/obstack.c:224:17: warning: Using plain integer as NULL pointer compat/obstack.c:324:16: warning: Using plain integer as NULL pointer compat/obstack.c:329:16: warning: Using plain integer as NULL pointer compat/obstack.c:347:16: warning: Using plain integer as NULL pointer compat/obstack.c:362:19: warning: Using plain integer as NULL pointer compat/obstack.c:379:29: warning: Using plain integer as NULL pointer compat/obstack.c:399:1: error: symbol 'print_and_abort' redeclared with \ different type (originally declared at compat/obstack.c:95) \ - different modifiers Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-09-11sparse: Fix an "Using plain integer as NULL pointer" warningLibravatar Ramsay Jones1-1/+1
Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-08-28obstack: Fix portability issuesLibravatar Fredrik Kuivinen3-36/+6
i686-apple-darwin10-gcc-4.2.1 (GCC) 4.2.1, SunOS 5.10, and possibly others do not have exit.h and exitfail.h. Remove the use of these in obstack.c. The __block variable was renamed to block to avoid a gcc error: compat/obstack.h:190: error: __block attribute can be specified on variables only Initial-patch-by: David Aguilar <davvid@gmail.com> Reported-by: Brian Gernhardt <brian@gernhardtsoftware.com> Signed-off-by: Fredrik Kuivinen <frekui@gmail.com> Acked-by: David Aguilar <davvid@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-08-20Use kwset in grepLibravatar Fredrik Kuivinen3-23/+49
Benchmarks for the hot cache case: before: $ perf stat --repeat=5 git grep qwerty > /dev/null Performance counter stats for 'git grep qwerty' (5 runs): 3,478,085 cache-misses # 2.322 M/sec ( +- 2.690% ) 11,356,177 cache-references # 7.582 M/sec ( +- 2.598% ) 3,872,184 branch-misses # 0.363 % ( +- 0.258% ) 1,067,367,848 branches # 712.673 M/sec ( +- 2.622% ) 3,828,370,782 instructions # 0.947 IPC ( +- 0.033% ) 4,043,832,831 cycles # 2700.037 M/sec ( +- 0.167% ) 8,518 page-faults # 0.006 M/sec ( +- 3.648% ) 847 CPU-migrations # 0.001 M/sec ( +- 3.262% ) 6,546 context-switches # 0.004 M/sec ( +- 2.292% ) 1497.695495 task-clock-msecs # 3.303 CPUs ( +- 2.550% ) 0.453394396 seconds time elapsed ( +- 0.912% ) after: $ perf stat --repeat=5 git grep qwerty > /dev/null Performance counter stats for 'git grep qwerty' (5 runs): 2,989,918 cache-misses # 3.166 M/sec ( +- 5.013% ) 10,986,041 cache-references # 11.633 M/sec ( +- 4.899% ) (scaled from 95.06%) 3,511,993 branch-misses # 1.422 % ( +- 0.785% ) 246,893,561 branches # 261.433 M/sec ( +- 3.967% ) 1,392,727,757 instructions # 0.564 IPC ( +- 0.040% ) 2,468,142,397 cycles # 2613.494 M/sec ( +- 0.110% ) 7,747 page-faults # 0.008 M/sec ( +- 3.995% ) 897 CPU-migrations # 0.001 M/sec ( +- 2.383% ) 6,535 context-switches # 0.007 M/sec ( +- 1.993% ) 944.384228 task-clock-msecs # 3.177 CPUs ( +- 0.268% ) 0.297257643 seconds time elapsed ( +- 0.450% ) So we gain about 35% by using the kwset code. As a side effect of using kwset two grep tests are fixed by this patch. The first is fixed because kwset can deal with case-insensitive search containing NULs, something strcasestr cannot do. The second one is fixed because we consider patterns containing NULs as fixed strings (regcomp cannot accept patterns with NULs). Signed-off-by: Fredrik Kuivinen <frekui@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-08-20Use kwset in pickaxeLibravatar Fredrik Kuivinen2-11/+25
Benchmarks in the hot cache case: before: $ perf stat --repeat=5 git log -Sqwerty Performance counter stats for 'git log -Sqwerty' (5 runs): 47,092,744 cache-misses # 2.825 M/sec ( +- 1.607% ) 123,368,389 cache-references # 7.400 M/sec ( +- 0.812% ) 330,040,998 branch-misses # 3.134 % ( +- 0.257% ) 10,530,896,750 branches # 631.663 M/sec ( +- 0.121% ) 62,037,201,030 instructions # 1.399 IPC ( +- 0.142% ) 44,331,294,321 cycles # 2659.073 M/sec ( +- 0.326% ) 96,794 page-faults # 0.006 M/sec ( +- 11.952% ) 25 CPU-migrations # 0.000 M/sec ( +- 25.266% ) 1,424 context-switches # 0.000 M/sec ( +- 0.540% ) 16671.708650 task-clock-msecs # 0.997 CPUs ( +- 0.343% ) 16.728692052 seconds time elapsed ( +- 0.344% ) after: $ perf stat --repeat=5 git log -Sqwerty Performance counter stats for 'git log -Sqwerty' (5 runs): 51,385,522 cache-misses # 4.619 M/sec ( +- 0.565% ) 129,177,880 cache-references # 11.611 M/sec ( +- 0.219% ) 319,222,775 branch-misses # 6.946 % ( +- 0.134% ) 4,595,913,233 branches # 413.086 M/sec ( +- 0.112% ) 31,395,042,533 instructions # 1.062 IPC ( +- 0.129% ) 29,558,348,598 cycles # 2656.740 M/sec ( +- 0.204% ) 93,224 page-faults # 0.008 M/sec ( +- 4.487% ) 19 CPU-migrations # 0.000 M/sec ( +- 10.425% ) 950 context-switches # 0.000 M/sec ( +- 0.360% ) 11125.796039 task-clock-msecs # 0.997 CPUs ( +- 0.239% ) 11.164216599 seconds time elapsed ( +- 0.240% ) So the kwset code is about 33% faster. Signed-off-by: Fredrik Kuivinen <frekui@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-08-20Adapt the kwset code to GitLibravatar Fredrik Kuivinen2-26/+26
Signed-off-by: Fredrik Kuivinen <frekui@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-08-20Add string search routines from GNU grepLibravatar Fredrik Kuivinen2-0/+834
kwset.c and kwset.h have been copied unmodified from commit e7ac713d^ in the GNU grep git repository (this is the last commit in the repository licensed under GPLv2). Signed-off-by: Fredrik Kuivinen <frekui@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-08-20Add obstack.[ch] from EGLIBC 2.10Libravatar Fredrik Kuivinen3-0/+952
Signed-off-by: Fredrik Kuivinen <frekui@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-08-18Update draft release notes to 1.7.7Libravatar Junio C Hamano1-0/+6
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-08-18Merge branch 'db/am-skip-blank-at-the-beginning'Libravatar Junio C Hamano2-3/+26
* db/am-skip-blank-at-the-beginning: am: ignore leading whitespace before patch
2011-08-18Merge branch 'ma/am-exclude'Libravatar Junio C Hamano2-2/+5
* ma/am-exclude: am: Document new --exclude=<path> option am: pass exclude down to apply
2011-08-18Merge branch 'maint'Libravatar Junio C Hamano1-0/+2
* maint: fetch-pack: check for valid commit from server
2011-08-18fetch-pack: check for valid commit from serverLibravatar Nguyễn Thái Ngọc Duy1-0/+2
A malicious server can return ACK with non-existent SHA-1 or not a commit. lookup_commit() in this case may return NULL. Do not let fetch-pack crash by accessing NULL address in this case. Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-08-17Update draft release notes to 1.7.7Libravatar Junio C Hamano1-1/+34
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-08-17Merge branch 'mh/check-attr-relative'Libravatar Junio C Hamano14-115/+322
* mh/check-attr-relative: (29 commits) test-path-utils: Add subcommand "prefix_path" test-path-utils: Add subcommand "absolute_path" git-check-attr: Normalize paths git-check-attr: Demonstrate problems with relative paths git-check-attr: Demonstrate problems with unnormalized paths git-check-attr: test that no output is written to stderr Rename git_checkattr() to git_check_attr() git-check-attr: Fix command-line handling to match docs git-check-attr: Drive two tests using the same raw data git-check-attr: Add an --all option to show all attributes git-check-attr: Error out if no pathnames are specified git-check-attr: Process command-line args more systematically git-check-attr: Handle each error separately git-check-attr: Extract a function error_with_usage() git-check-attr: Introduce a new variable git-check-attr: Extract a function output_attr() Allow querying all attributes on a file Remove redundant check Remove redundant call to bootstrap_attr_stack() Extract a function collect_all_attrs() ...
2011-08-17Merge branch 'js/bisect-no-checkout'Libravatar Junio C Hamano7-178/+430
* js/bisect-no-checkout: bisect: add support for bisecting bare repositories bisect: further style nitpicks bisect: replace "; then" with "\n<tab>*then" bisect: cleanup whitespace errors in git-bisect.sh. bisect: add documentation for --no-checkout option. bisect: add tests for the --no-checkout option. bisect: introduce --no-checkout support into porcelain. bisect: introduce support for --no-checkout option. bisect: add tests to document expected behaviour in presence of broken trees. bisect: use && to connect statements that are deferred with eval. bisect: move argument parsing before state modification.
2011-08-17Merge branch 'rc/histogram-diff'Libravatar Junio C Hamano14-285/+655
* rc/histogram-diff: xdiff/xhistogram: drop need for additional variable xdiff/xhistogram: rely on xdl_trim_ends() xdiff/xhistogram: rework handling of recursed results xdiff: do away with xdl_mmfile_next() Make test number unique xdiff/xprepare: use a smaller sample size for histogram diff xdiff/xprepare: skip classification teach --histogram to diff t4033-diff-patience: factor out tests xdiff/xpatience: factor out fall-back-diff function xdiff/xprepare: refactor abort cleanups xdiff/xprepare: use memset()
2011-08-17Merge branch 'jc/maint-smart-http-race-upload-pack'Libravatar Junio C Hamano1-9/+98
* jc/maint-smart-http-race-upload-pack: helping smart-http/stateless-rpc fetch race
2011-08-17Merge branch 'js/sh-style'Libravatar Junio C Hamano4-12/+12
* js/sh-style: filter-branch.sh: de-dent usage string misc-sh: fix up whitespace in some other .sh files.
2011-08-17Merge branch 'js/ref-namespaces'Libravatar Junio C Hamano15-24/+326
* js/ref-namespaces: ref namespaces: tests ref namespaces: documentation ref namespaces: Support remote repositories via upload-pack and receive-pack ref namespaces: infrastructure Fix prefix handling in ref iteration functions
2011-08-17Merge branch 'cb/maint-quiet-push'Libravatar Junio C Hamano6-10/+39
* cb/maint-quiet-push: receive-pack: do not overstep command line argument array propagate --quiet to send-pack/receive-pack Conflicts: Documentation/git-receive-pack.txt Documentation/git-send-pack.txt
2011-08-17Merge branch 'jc/maint-combined-diff-work-tree'Libravatar Junio C Hamano1-4/+10
* jc/maint-combined-diff-work-tree: diff -c/--cc: do not mistake "resolved as deletion" as "use working tree" Conflicts: combine-diff.c
2011-08-17Merge branch 'cb/maint-exec-error-report'Libravatar Junio C Hamano3-17/+33
* cb/maint-exec-error-report: notice error exit from pager error_routine: use parent's stderr if exec fails
2011-08-17Merge branch 'maint'Libravatar Junio C Hamano1-32/+0
* maint: checkout-index: remove obsolete comment
2011-08-17checkout-index: remove obsolete commentLibravatar Nguyễn Thái Ngọc Duy1-32/+0
The first paragraph about flag order is no longer true and is mentioned in git-checkout-index.txt. The rest is also mentioned in git-checkout-index.txt. Remove it and keep uptodate document in one place. Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-08-16Sync with "maint"Libravatar Junio C Hamano1-49/+1
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-08-16Merge branch 'maint'Libravatar Junio C Hamano2-0/+54
* maint: Prepare for 1.7.6.1 am: refresh the index at start and --resolved Conflicts: GIT-VERSION-GEN RelNotes
2011-08-16Prepare for 1.7.6.1Libravatar Junio C Hamano2-1/+53
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-08-16Merge branch 'jk/tag-list-multiple-patterns' into maintLibravatar Junio C Hamano3-12/+28
* jk/tag-list-multiple-patterns: tag: accept multiple patterns for --list
2011-08-16Merge branch 'jl/submodule-update-quiet' into maintLibravatar Junio C Hamano2-4/+11
* jl/submodule-update-quiet: submodule: update and add must honor --quiet flag
2011-08-16Merge branch 'jl/submodule-add-relurl-wo-upstream' into maintLibravatar Junio C Hamano3-11/+15
* jl/submodule-add-relurl-wo-upstream: submodule add: clean up duplicated code submodule add: allow relative repository path even when no url is set submodule add: test failure when url is not configured in superproject Conflicts: git-submodule.sh
2011-08-16Merge branch 'oa/pull-reflog' into maintLibravatar Junio C Hamano1-1/+1
* oa/pull-reflog: pull: remove extra space from reflog message
2011-08-16Merge branch 'js/ls-tree-error' into maintLibravatar Junio C Hamano2-3/+25
* js/ls-tree-error: Ensure git ls-tree exits with a non-zero exit code if read_tree_recursive fails. Add a test to check that git ls-tree sets non-zero exit code on error.
2011-08-16Merge branch 'jk/fast-export-quote-path' into maintLibravatar Junio C Hamano2-8/+51
* jk/fast-export-quote-path: fast-export: quote paths in output
2011-08-16Merge branch 'jc/checkout-reflog-fix' into maintLibravatar Junio C Hamano1-2/+5
* jc/checkout-reflog-fix: checkout: do not write bogus reflog entry out
2011-08-16Merge branch 'jc/maint-reset-unmerged-path' into maintLibravatar Junio C Hamano3-2/+18
* jc/maint-reset-unmerged-path: reset [<commit>] paths...: do not mishandle unmerged paths
2011-08-16Merge branch 'mz/doc-rebase-abort' into maintLibravatar Junio C Hamano2-7/+11
* mz/doc-rebase-abort: rebase: clarify "restore the original branch"
2011-08-16Merge branch 'bw/log-all-ref-updates-doc' into maintLibravatar Junio C Hamano2-3/+6
* bw/log-all-ref-updates-doc: Documentation: clearly specify what refs are honored by core.logAllRefUpdates
2011-08-16Merge branch 'js/maint-add-path-stat-pwd' into maintLibravatar Junio C Hamano1-1/+2
* js/maint-add-path-stat-pwd: get_pwd_cwd(): Do not trust st_dev/st_ino blindly
2011-08-16Merge branch 'ms/help-unknown' into maintLibravatar Junio C Hamano1-0/+12
* ms/help-unknown: help_unknown_cmd: do not propose an "unknown" cmd
2011-08-16Merge branch 'mz/doc-synopsis-verse' into maintLibravatar Junio C Hamano93-6/+92
* mz/doc-synopsis-verse: Documentation: use [verse] for SYNOPSIS sections
2011-08-16Merge branch 'jn/mime-type-with-params' into maintLibravatar Junio C Hamano1-1/+10
* jn/mime-type-with-params: gitweb: Serve */*+xml 'blob_plain' as text/plain with $prevent_xss gitweb: Serve text/* 'blob_plain' as text/plain with $prevent_xss
2011-08-16Merge branch 'jc/submodule-sync-no-auto-vivify' into maintLibravatar Junio C Hamano3-30/+47
* jc/submodule-sync-no-auto-vivify: submodule add: always initialize .git/config entry submodule sync: do not auto-vivify uninteresting submodule
2011-08-16Merge branch 'jc/zlib-wrap' into maintLibravatar Junio C Hamano15-124/+321
* jc/zlib-wrap: zlib: allow feeding more than 4GB in one go zlib: zlib can only process 4GB at a time zlib: wrap deflateBound() too zlib: wrap deflate side of the API zlib: wrap inflateInit2 used to accept only for gzip format zlib: wrap remaining calls to direct inflate/inflateEnd zlib wrapper: refactor error message formatter
2011-08-16Merge branch 'fk/relink-upon-ldflags-update' into maintLibravatar Junio C Hamano2-8/+18
* fk/relink-upon-ldflags-update: Makefile: Track changes to LDFLAGS and relink when necessary
2011-08-16Merge branch 'bc/submodule-foreach-stdin-fix-1.7.4' into maintLibravatar Junio C Hamano2-1/+23
* bc/submodule-foreach-stdin-fix-1.7.4: git-submodule.sh: preserve stdin for the command spawned by foreach t/t7407: demonstrate that the command called by 'submodule foreach' loses stdin
2011-08-16Merge branch 'aw/rebase-i-p' into maintLibravatar Junio C Hamano4-5/+30
* aw/rebase-i-p: rebase -i -p: include non-first-parent commits in todo list
2011-08-16Merge branch 'jc/diff-index-quick-exit-early' into maintLibravatar Junio C Hamano3-2/+10
* jc/diff-index-quick-exit-early: diff-index --quiet: learn the "stop feeding the backend early" logic Conflicts: unpack-trees.h
2011-08-16Merge branch 'jk/combine-diff-binary-etc' into maintLibravatar Junio C Hamano5-83/+376
* jk/combine-diff-binary-etc: combine-diff: respect textconv attributes refactor get_textconv to not require diff_filespec combine-diff: handle binary files as binary combine-diff: calculate mode_differs earlier combine-diff: split header printing into its own function
2011-08-16am: refresh the index at start and --resolvedLibravatar Jeff King1-0/+2
If a file is unchanged but stat-dirty, we may erroneously fail to apply patches, thinking that they conflict with a dirty working tree. This patch adds a call to "update-index --refresh". It comes as late as possible, so that we don't bother with it for thinks like "git rebase --abort", or when mbox-splitting fails. However, it does come before we actually start applying patches, meaning we will only call it once when we start applying patches (or any time we return to "am" after having resolved conflicts), and not once per patch. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>