bd5bce7 | Junio C Hamano | 18 November 2011, 19:28:05 UTC | Git 1.7.7.4 Signed-off-by: Junio C Hamano <gitster@pobox.com> | 18 November 2011, 19:28:05 UTC |
c9de921 | Junio C Hamano | 18 November 2011, 19:14:16 UTC | Merge branch 'jc/maint-name-rev-all' into maint * jc/maint-name-rev-all: name-rev --all: do not even attempt to describe non-commit object | 18 November 2011, 19:14:16 UTC |
79cfe0c | Junio C Hamano | 18 November 2011, 19:14:00 UTC | Merge branch 'ml/mailmap' into maint * ml/mailmap: mailmap: xcalloc mailmap_info Conflicts: mailmap.c | 18 November 2011, 19:14:00 UTC |
01e0f16 | Junio C Hamano | 18 November 2011, 19:11:50 UTC | Merge branch 'jn/maint-notes-avoid-va-args' into maint * jn/maint-notes-avoid-va-args: notes merge: eliminate OUTPUT macro Conflicts: notes-merge.c | 18 November 2011, 19:11:50 UTC |
487da9c | Jonathan Nieder | 18 November 2011, 10:02:02 UTC | Makefile: add missing header file dependencies When the streaming filter API was introduced in v1.7.7-rc0~60^2~7 (2011-05-20), we forgot to add its header to LIB_H. Most translation units depend on streaming.h via cache.h. v1.7.5-rc0~48 (Fix sparse warnings, 2011-03-22) introduced undeclared dependencies by url.o on url.h and thread-utils.o on thread-utils.h. Noticed by make CHECK_HEADER_DEPENDENCIES=1. Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 18 November 2011, 18:45:33 UTC |
5f9f8d1 | Jonathan Nieder | 18 November 2011, 01:27:46 UTC | notes merge: eliminate OUTPUT macro The macro is variadic, which breaks support for pre-C99 compilers, and it hides an "if", which can make code hard to understand on first reading if some arguments have side-effects. The OUTPUT macro seems to have been inspired by the "output" function from merge-recursive. But that function in merge-recursive exists to indent output based on the level of recursion and there is no similar justification for such a function in "notes merge". Noticed with 'make CC="gcc -std=c89 -pedantic"': notes-merge.c:24:22: warning: anonymous variadic macros were introduced in C99 [-Wvariadic-macros] Encouraged-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Acked-by: Johan Herland <johan@herland.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 18 November 2011, 07:35:22 UTC |
74b531f | Marc-André Lureau | 17 November 2011, 01:25:06 UTC | mailmap: xcalloc mailmap_info This is to avoid reaching free of uninitialized members. With an invalid .mailmap (and perhaps in other cases), it can reach free(mi->name) with garbage for example. Signed-off-by: Marc-André Lureau <marcandre.lureau@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 17 November 2011, 02:00:56 UTC |
e8b14d7 | Junio C Hamano | 15 November 2011, 23:51:05 UTC | name-rev --all: do not even attempt to describe non-commit object This even dates back to the very beginning of "git name-rev"; it does not make much sense to dump all objects in the repository and label non-commits as "undefined". Signed-off-by: Junio C Hamano <gitster@pobox.com> | 15 November 2011, 23:51:05 UTC |
d4d5ab4 | Junio C Hamano | 09 November 2011, 00:37:00 UTC | Git 1.7.7.3 Signed-off-by: Junio C Hamano <gitster@pobox.com> | 09 November 2011, 00:37:00 UTC |
916034b | Junio C Hamano | 09 November 2011, 00:35:53 UTC | Merge branch 'jc/maint-remove-renamed-ref' into maint * jc/maint-remove-renamed-ref: branch -m/-M: remove undocumented RENAMED-REF Conflicts: refs.c | 09 November 2011, 00:35:53 UTC |
1a61a9d | Junio C Hamano | 09 November 2011, 00:26:50 UTC | Merge branch 'jm/maint-gitweb-filter-forks-fix' into maint * jm/maint-gitweb-filter-forks-fix: gitweb: fix regression when filtering out forks | 09 November 2011, 00:26:50 UTC |
992499d | Junio C Hamano | 09 November 2011, 00:26:45 UTC | Merge branch 'dm/pack-objects-update' into maint * dm/pack-objects-update: pack-objects: don't traverse objects unnecessarily pack-objects: rewrite add_descendants_to_write_order() iteratively pack-objects: use unsigned int for counter and offset values pack-objects: mark add_to_write_order() as inline | 09 November 2011, 00:26:45 UTC |
fcbebfd | Junio C Hamano | 08 November 2011, 18:17:40 UTC | docs: Update install-doc-quick The preformatted documentation pages live in their own repositories these days. Adjust the installation procedure to the updated layout. Tested-by: Stefan Naewe <stefan.naewe@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 08 November 2011, 21:37:10 UTC |
939ca96 | Jeff King | 08 November 2011, 21:29:30 UTC | docs: don't mention --quiet or --exit-code in git-log(1) These are diff-options, but they don't actually make sense in the context of log. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 08 November 2011, 21:37:02 UTC |
8d19b44 | Junio C Hamano | 01 November 2011, 23:16:36 UTC | Git 1.7.7.2 Signed-off-by: Junio C Hamano <gitster@pobox.com> | 01 November 2011, 23:41:57 UTC |
60a31ec | Junio C Hamano | 01 November 2011, 23:41:41 UTC | Merge branch 'rs/maint-estimate-cache-size' into maint * rs/maint-estimate-cache-size: t7511: avoid use of reserved filename on Windows. | 01 November 2011, 23:41:41 UTC |
ac7acaa | Junio C Hamano | 01 November 2011, 23:12:19 UTC | Merge branch 'md/smtp-tls-hello-again' into maint * md/smtp-tls-hello-again: send-email: Honour SMTP domain when using TLS | 01 November 2011, 23:12:19 UTC |
0814d6e | Junio C Hamano | 01 November 2011, 23:11:00 UTC | Merge branch 'jk/pull-rebase-with-work-tree' into maint * jk/pull-rebase-with-work-tree: pull,rebase: handle GIT_WORK_TREE better Conflicts: git-pull.sh | 01 November 2011, 23:11:00 UTC |
eee947f | Junio C Hamano | 01 November 2011, 23:10:56 UTC | Merge branch 'jc/maint-diffstat-numstat-context' into maint * jc/maint-diffstat-numstat-context: diff: teach --stat/--numstat to honor -U$num | 01 November 2011, 23:10:56 UTC |
dddc411 | Junio C Hamano | 01 November 2011, 23:03:35 UTC | Merge branch 'js/bisect-no-checkout' into maint * js/bisect-no-checkout: bisect: fix exiting when checkout failed in bisect_start() | 01 November 2011, 23:03:35 UTC |
a4fdd79 | Junio C Hamano | 01 November 2011, 22:54:45 UTC | Merge branch 'bc/attr-ignore-case' into maint * bc/attr-ignore-case: attr.c: respect core.ignorecase when matching attribute patterns attr: read core.attributesfile from git_default_core_config builtin/mv.c: plug miniscule memory leak cleanup: use internal memory allocation wrapper functions everywhere attr.c: avoid inappropriate access to strbuf "buf" member Conflicts: remote.c | 01 November 2011, 22:54:46 UTC |
ffa4c36 | Junio C Hamano | 01 November 2011, 22:51:01 UTC | Merge branch 'cn/fetch-prune' into maint * cn/fetch-prune: fetch: treat --tags like refs/tags/*:refs/tags/* when pruning fetch: honor the user-provided refspecs when pruning refs remote: separate out the remote_find_tracking logic into query_refspecs t5510: add tests for fetch --prune fetch: free all the additional refspecs | 01 November 2011, 22:51:01 UTC |
7fa6c90 | Junio C Hamano | 01 November 2011, 22:45:16 UTC | Merge branch 'sp/smart-http-failure' into maint * sp/smart-http-failure: remote-curl: Fix warning after HTTP failure | 01 November 2011, 22:45:16 UTC |
5b5d92a | Junio C Hamano | 01 November 2011, 22:42:25 UTC | Merge jn/maint-http-error-message * commit 'be22d92eac809ad2bfa2b7c83ad7cad5a15f1c43': http: avoid empty error messages for some curl errors http: remove extra newline in error message | 01 November 2011, 22:42:25 UTC |
b323c64 | Pat Thoyts | 31 October 2011, 14:07:27 UTC | t7511: avoid use of reserved filename on Windows. PRN is a special filename on Windows to send data to the printer. As this is generated during test 3 substitute an alternate prefix to avoid this. Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 31 October 2011, 19:31:42 UTC |
a76a326 | Junio C Hamano | 27 October 2011, 19:03:16 UTC | Merge branch 'rs/maint-estimate-cache-size' into maint * rs/maint-estimate-cache-size: read-cache.c: fix index memory allocation | 27 October 2011, 19:03:16 UTC |
8debf69 | Richard Hartmann | 27 October 2011, 16:46:53 UTC | clone: Quote user supplied path in a single quote pair Without this patch, $ git clone foo . results in this: Cloning into .... done. With it: Cloning into '.'... done. Signed-off-by: Richard Hartmann <richih.mailinglist@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 27 October 2011, 19:02:02 UTC |
25f745f | Junio C Hamano | 26 October 2011, 23:13:31 UTC | Merge branch 'jn/gitweb-highlite-sanitise' into maint * jn/gitweb-highlite-sanitise: gitweb: Strip non-printable characters from syntax highlighter output | 26 October 2011, 23:13:31 UTC |
60f60b4 | Junio C Hamano | 26 October 2011, 23:13:31 UTC | Merge branch 'jk/argv-array' into maint * jk/argv-array: run_hook: use argv_array API checkout: use argv_array API bisect: use argv_array API quote: provide sq_dequote_to_argv_array refactor argv_array into generic code quote.h: fix bogus comment add sha1_array API docs | 26 October 2011, 23:13:31 UTC |
7bb07f6 | Junio C Hamano | 26 October 2011, 23:13:31 UTC | Merge branch 'jc/run-receive-hook-cleanup' into maint * jc/run-receive-hook-cleanup: refactor run_receive_hook() | 26 October 2011, 23:13:31 UTC |
a5ad8d1 | Junio C Hamano | 26 October 2011, 23:13:31 UTC | Merge branch 'cn/eradicate-working-copy' into maint * cn/eradicate-working-copy: Remove 'working copy' from the documentation and C code | 26 October 2011, 23:13:31 UTC |
f0911b9 | Junio C Hamano | 26 October 2011, 23:13:27 UTC | Merge branch 'maint-1.7.6' into maint * maint-1.7.6: notes_merge_commit(): do not pass temporary buffer to other function gitweb: Fix links to lines in blobs when javascript-actions are enabled mergetool: no longer need to save standard input mergetool: Use args as pathspec to unmerged files t9159-*.sh: skip for mergeinfo test for svn <= 1.4 date.c: Support iso8601 timezone formats remote: only update remote-tracking branch if updating refspec remote rename: warn when refspec was not updated remote: "rename o foo" should not rename ref "origin/bar" remote: write correct fetch spec when renaming remote 'remote' | 26 October 2011, 23:13:27 UTC |
8280baf | Junio C Hamano | 26 October 2011, 23:12:48 UTC | Merge branch 'mh/maint-notes-merge-pathbuf-fix' into maint-1.7.6 * mh/maint-notes-merge-pathbuf-fix: notes_merge_commit(): do not pass temporary buffer to other function | 26 October 2011, 23:12:48 UTC |
58f75bc | Junio C Hamano | 26 October 2011, 23:12:35 UTC | Merge branch 'ps/gitweb-js-with-lineno' into maint-1.7.6 * ps/gitweb-js-with-lineno: gitweb: Fix links to lines in blobs when javascript-actions are enabled | 26 October 2011, 23:12:35 UTC |
87d99c6 | Junio C Hamano | 26 October 2011, 23:12:25 UTC | Merge branch 'jm/mergetool-pathspec' into maint-1.7.6 * jm/mergetool-pathspec: mergetool: no longer need to save standard input mergetool: Use args as pathspec to unmerged files | 26 October 2011, 23:12:25 UTC |
716b64a | Junio C Hamano | 26 October 2011, 23:12:19 UTC | Merge branch 'mz/remote-rename' into maint-1.7.6 * mz/remote-rename: remote: only update remote-tracking branch if updating refspec remote rename: warn when refspec was not updated remote: "rename o foo" should not rename ref "origin/bar" remote: write correct fetch spec when renaming remote 'remote' | 26 October 2011, 23:12:19 UTC |
8371e91 | Junio C Hamano | 26 October 2011, 23:12:13 UTC | Merge branch 'rj/maint-t9159-svn-rev-notation' into maint-1.7.6 * rj/maint-t9159-svn-rev-notation: t9159-*.sh: skip for mergeinfo test for svn <= 1.4 | 26 October 2011, 23:12:13 UTC |
1f7a2ab | Junio C Hamano | 26 October 2011, 23:11:28 UTC | Merge branch 'hl/iso8601-more-zone-formats' into maint-1.7.6 * hl/iso8601-more-zone-formats: date.c: Support iso8601 timezone formats | 26 October 2011, 23:11:28 UTC |
411e6cf | Junio C Hamano | 26 October 2011, 23:09:28 UTC | Merge branch 'maint-1.7.6' into maint * maint-1.7.6: make the sample pre-commit hook script reject names with newlines, too git-read-tree.txt: update sparse checkout examples git-read-tree.txt: correct sparse-checkout and skip-worktree description git-read-tree.txt: language and typography fixes unpack-trees: print "Aborting" to stderr Documentation/git-update-index: refer to 'ls-files' Documentation: basic configuration of notes.rewriteRef | 26 October 2011, 23:09:28 UTC |
588150b | Junio C Hamano | 26 October 2011, 23:09:04 UTC | Merge branch 'tr/doc-note-rewrite' into maint-1.7.6 * tr/doc-note-rewrite: Documentation: basic configuration of notes.rewriteRef | 26 October 2011, 23:09:04 UTC |
139088b | Junio C Hamano | 26 October 2011, 23:09:04 UTC | Merge branch 'nd/sparse-doc' into maint-1.7.6 * nd/sparse-doc: git-read-tree.txt: update sparse checkout examples | 26 October 2011, 23:09:04 UTC |
df9701e | Junio C Hamano | 26 October 2011, 23:09:03 UTC | Merge branch 'mg/maint-doc-sparse-checkout' into maint-1.7.6 * mg/maint-doc-sparse-checkout: git-read-tree.txt: correct sparse-checkout and skip-worktree description git-read-tree.txt: language and typography fixes unpack-trees: print "Aborting" to stderr | 26 October 2011, 23:09:03 UTC |
a574c04 | Junio C Hamano | 26 October 2011, 23:08:19 UTC | Merge branch 'maint-1.7.5' into maint-1.7.6 * maint-1.7.5: make the sample pre-commit hook script reject names with newlines, too Reindent closing bracket using tab instead of spaces Documentation/git-update-index: refer to 'ls-files' | 26 October 2011, 23:08:19 UTC |
69d61da | Junio C Hamano | 26 October 2011, 23:08:14 UTC | Merge branch 'maint-1.7.4' into maint-1.7.5 * maint-1.7.4: make the sample pre-commit hook script reject names with newlines, too Reindent closing bracket using tab instead of spaces Documentation/git-update-index: refer to 'ls-files' | 26 October 2011, 23:08:14 UTC |
ed36a48 | Junio C Hamano | 26 October 2011, 23:08:08 UTC | Merge branch 'maint-1.7.3' into maint-1.7.4 * maint-1.7.3: make the sample pre-commit hook script reject names with newlines, too Reindent closing bracket using tab instead of spaces Documentation/git-update-index: refer to 'ls-files' | 26 October 2011, 23:08:08 UTC |
eb4e672 | Junio C Hamano | 26 October 2011, 23:08:00 UTC | Merge branch 'sn/doc-update-index-assume-unchanged' into maint-1.7.3 * sn/doc-update-index-assume-unchanged: Documentation/git-update-index: refer to 'ls-files' | 26 October 2011, 23:08:00 UTC |
8f41c07 | René Scharfe | 24 October 2011, 01:01:27 UTC | read-cache.c: fix index memory allocation estimate_cache_size() tries to guess how much memory is needed for the in-memory representation of an index file. It does that by using the file size, the number of entries and the difference of the sizes of the on-disk and in-memory structs -- without having to check the length of the name of each entry, which varies for each entry, but their sums are the same no matter the representation. Except there can be a difference. First of all, the size is really calculated by ce_size and ondisk_ce_size based on offsetof(..., name), not sizeof, which can be different. And entries are padded with 1 to 8 NULs at the end (after the variable name) to make their total length a multiple of eight. So in order to allocate enough memory to hold the index, change the delta calculation to be based on offsetof(..., name) and round up to the next multiple of eight. On a 32-bit Linux, this delta was used before: sizeof(struct cache_entry) == 72 sizeof(struct ondisk_cache_entry) == 64 --- 8 The actual difference for an entry with a filename length of one was, however (find the definitions are in cache.h): offsetof(struct cache_entry, name) == 72 offsetof(struct ondisk_cache_entry, name) == 62 ce_size == (72 + 1 + 8) & ~7 == 80 ondisk_ce_size == (62 + 1 + 8) & ~7 == 64 --- 16 So eight bytes less had been allocated for such entries. The new formula yields the correct delta: (72 - 62 + 7) & ~7 == 16 Reported-by: John Hsing <tsyj2007@gmail.com> Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 26 October 2011, 21:35:16 UTC |
c14daa4 | Jim Meyering | 22 October 2011, 17:44:40 UTC | make the sample pre-commit hook script reject names with newlines, too The sample pre-commit hook script would fail to reject a file name like "a\nb" because of the way newlines are handled in "$(...)". Adjust the test to count filtered bytes and require there be 0. Also print all diagnostics to standard error, not stdout, so they will actually be seen. Signed-off-by: Jim Meyering <meyering@redhat.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 26 October 2011, 21:31:14 UTC |
982d1dc | Junio C Hamano | 24 October 2011, 06:55:22 UTC | Merge branch 'maint-1.7.3' into maint * maint-1.7.3: Reindent closing bracket using tab instead of spaces | 24 October 2011, 06:55:22 UTC |
c4c42f2 | Nguyễn Thái Ngọc Duy | 24 October 2011, 04:24:51 UTC | Reindent closing bracket using tab instead of spaces Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 24 October 2011, 06:54:58 UTC |
f7d958d | Junio C Hamano | 24 October 2011, 04:48:06 UTC | Git 1.7.7.1 Signed-off-by: Junio C Hamano <gitster@pobox.com> | 24 October 2011, 04:48:06 UTC |
7fe74f5 | Jonathan Nieder | 22 October 2011, 11:11:07 UTC | RelNotes/1.7.7.1: setgid bit patch is about fixing "git init" via Makefile setting The change was actually about "git init -s" which sets the setgid bit on SysV-style systems to allow shared access to a repository, and can provoke errors on BSD-style systems, depending on how permissive the filesystem in use wants to be. More to the point, the patch was just taking a fix that arrived for FreeBSD in v1.5.5 days and making it also apply to machines using an (obscure) GNU userland/FreeBSD kernel mixture. Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 24 October 2011, 04:16:31 UTC |
53c632f | Julien Muchembled | 21 October 2011, 19:04:21 UTC | gitweb: fix regression when filtering out forks This fixes a condition in filter_forks_from_projects_list that failed if process directory was different from project root: in such case, the subroutine was a no-op and forks were not detected. Signed-off-by: Julien Muchembled <jm@jmuchemb.eu> Tested-by: Jakub Narebski <jnareb@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 21 October 2011, 21:46:38 UTC |
8742218 | Junio C Hamano | 21 October 2011, 18:01:07 UTC | Almost ready for 1.7.7.1 Signed-off-by: Junio C Hamano <gitster@pobox.com> | 21 October 2011, 18:01:07 UTC |
d25a265 | Junio C Hamano | 21 October 2011, 17:49:26 UTC | Merge branch 'nd/maint-autofix-tag-in-head' into maint * nd/maint-autofix-tag-in-head: Accept tags in HEAD or MERGE_HEAD merge: remove global variable head[] merge: use return value of resolve_ref() to determine if HEAD is invalid merge: keep stash[] a local variable Conflicts: builtin/merge.c | 21 October 2011, 17:49:26 UTC |
e63f87a | Junio C Hamano | 21 October 2011, 17:49:26 UTC | Merge branch 'jc/apply-blank-at-eof-fix' into maint * jc/apply-blank-at-eof-fix: apply --whitespace=error: correctly report new blank lines at end | 21 October 2011, 17:49:26 UTC |
6e89b37 | Junio C Hamano | 21 October 2011, 17:49:25 UTC | Merge branch 'jn/no-g-plus-s-on-bsd' into maint * jn/no-g-plus-s-on-bsd: Makefile: do not set setgid bit on directories on GNU/kFreeBSD | 21 October 2011, 17:49:25 UTC |
713b85c | Junio C Hamano | 21 October 2011, 17:49:25 UTC | Merge branch 'rs/diff-cleanup-records-fix' into maint * rs/diff-cleanup-records-fix: diff: resurrect XDF_NEED_MINIMAL with --minimal Revert removal of multi-match discard heuristic in 27af01 | 21 October 2011, 17:49:25 UTC |
689b047 | Junio C Hamano | 21 October 2011, 17:49:25 UTC | Merge branch 'il/archive-err-signal' into maint * il/archive-err-signal: Support ERR in remote archive like in fetch/push | 21 October 2011, 17:49:25 UTC |
c510259 | Junio C Hamano | 21 October 2011, 17:49:25 UTC | Merge branch 'js/maint-merge-one-file-osx-expr' into maint * js/maint-merge-one-file-osx-expr: merge-one-file: fix "expr: non-numeric argument" | 21 October 2011, 17:49:25 UTC |
cec3e18 | Junio C Hamano | 21 October 2011, 17:49:24 UTC | Merge branch 'jm/maint-apply-detects-corrupt-patch-header' into maint * jm/maint-apply-detects-corrupt-patch-header: fix "git apply --index ..." not to deref NULL | 21 October 2011, 17:49:24 UTC |
df68408 | Junio C Hamano | 21 October 2011, 17:49:24 UTC | Merge branch 'jc/checkout-from-tree-keep-local-changes' into maint * jc/checkout-from-tree-keep-local-changes: checkout $tree $path: do not clobber local changes in $path not in $tree | 21 October 2011, 17:49:24 UTC |
634b29d | Junio C Hamano | 21 October 2011, 17:49:24 UTC | Merge branch 'mm/maint-config-explicit-bool-display' into maint * mm/maint-config-explicit-bool-display: config: display key_delim for config --bool --get-regexp | 21 October 2011, 17:49:24 UTC |
38d4deb | Dan McGee | 18 October 2011, 05:21:23 UTC | pack-objects: don't traverse objects unnecessarily This brings back some of the performance lost in optimizing recency order inside pack objects. We were doing extreme amounts of object re-traversal: for the 2.14 million objects in the Linux kernel repository, we were calling add_to_write_order() over 1.03 billion times (a 0.2% hit rate, making 99.8% of of these calls extraneous). Two optimizations take place here- we can start our objects array iteration from a known point where we left off before we started trying to find our tags, and we don't need to do the deep dives required by add_family_to_write_order() if the object has already been marked as filled. These two optimizations bring some pretty spectacular results via `perf stat`: task-clock: 83373 ms --> 43800 ms (50% faster) cycles: 221,633,461,676 --> 116,307,209,986 (47% fewer) instructions: 149,299,179,939 --> 122,998,800,184 (18% fewer) Helped-by: Ramsay Jones (format string fix in "die" message) Signed-off-by: Dan McGee <dpmcgee@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 21 October 2011, 00:17:49 UTC |
1844f8d | Brandon Casey | 06 October 2011, 04:21:33 UTC | strbuf.c: remove unnecessary strbuf_grow() from strbuf_getwholeline() This use of strbuf_grow() is a historical artifact that was once used to ensure that strbuf.buf was allocated and properly nul-terminated. This was added before the introduction of the slopbuf in b315c5c0, which guarantees that strbuf.buf always points to a usable nul-terminated string. So let's remove it. Signed-off-by: Brandon Casey <drafnel@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 18 October 2011, 20:28:17 UTC |
f380872 | Dan McGee | 18 October 2011, 05:21:24 UTC | pack-objects: rewrite add_descendants_to_write_order() iteratively This removes the need to call this function recursively, shinking the code size slightly and netting a small performance increase. Signed-off-by: Dan McGee <dpmcgee@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 18 October 2011, 07:16:32 UTC |
92bef1a | Dan McGee | 18 October 2011, 05:21:22 UTC | pack-objects: use unsigned int for counter and offset values This is done in some of the new pack layout code introduced in commit 1b4bb16b9ec331c. This more closely matches the nr_objects global that is unsigned that these variables are based off of and bounded by. Signed-off-by: Dan McGee <dpmcgee@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 18 October 2011, 07:16:32 UTC |
be12681 | Dan McGee | 18 October 2011, 05:21:21 UTC | pack-objects: mark add_to_write_order() as inline This function is a whole 26 bytes when compiled on x86_64, but is currently invoked over 1.037 billion times when running pack-objects on the Linux kernel git repository. This is hitting the point where micro-optimizations do make a difference, and inlining it only increases the object file size by 38 bytes. As reported by perf, this dropped task-clock from 84183 to 83373 ms, and total cycles from 223.5 billion to 221.6 billion. Not astronomical, but worth getting for adding one word. Signed-off-by: Dan McGee <dpmcgee@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 18 October 2011, 07:16:31 UTC |
e8c1e6c | Carlos Martín Nieto | 15 October 2011, 05:04:26 UTC | fetch: treat --tags like refs/tags/*:refs/tags/* when pruning If --tags is specified, add that refspec to the list given to prune_refs so it knows to treat it as a filter on what refs to should consider for prunning. This way git fetch --prune --tags origin only prunes tags and doesn't delete the branch refs. Signed-off-by: Carlos Martín Nieto <cmn@elego.de> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 16 October 2011, 05:00:37 UTC |
ed43de6 | Carlos Martín Nieto | 15 October 2011, 05:04:25 UTC | fetch: honor the user-provided refspecs when pruning refs If the user gave us refspecs on the command line, we should use those when deciding whether to prune a ref instead of relying on the refspecs in the config. Previously, running git fetch --prune origin refs/heads/master:refs/remotes/origin/master would delete every other ref under the origin namespace because we were using the refspec to filter the available refs but using the configured refspec to figure out if a ref had been deleted on the remote. This is clearly the wrong thing to do. Change prune_refs and get_stale_heads to simply accept a list of references and a list of refspecs. The caller of either function needs to decide what refspecs should be used to decide whether a ref is stale. Signed-off-by: Carlos Martín Nieto <cmn@elego.de> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 16 October 2011, 04:56:13 UTC |
c500352 | Carlos Martín Nieto | 15 October 2011, 05:04:24 UTC | remote: separate out the remote_find_tracking logic into query_refspecs Move the body of remote_find_tracking() to a new helper query_refspecs() that finds a refspec that matches and applies the transformation, but explicitly takes the list of refspecs, and make remote_find_tracking() a thin wrapper of it. Make apply_refspecs() also use query_refspecs(). Signed-off-by: Carlos Martín Nieto <cmn@elego.de> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 16 October 2011, 04:55:05 UTC |
16b3b2d | Junio C Hamano | 16 October 2011, 03:55:12 UTC | Prepare for 1.7.7.1 Signed-off-by: Junio C Hamano <gitster@pobox.com> | 16 October 2011, 03:55:12 UTC |
f5fcb59 | Junio C Hamano | 16 October 2011, 03:46:39 UTC | Merge branch 'ms/patch-id-with-overlong-line' into maint * ms/patch-id-with-overlong-line: patch-id.c: use strbuf instead of a fixed buffer | 16 October 2011, 03:46:39 UTC |
6323a14 | Junio C Hamano | 16 October 2011, 03:46:39 UTC | Merge branch 'jc/maint-bundle-too-quiet' into maint * jc/maint-bundle-too-quiet: Teach progress eye-candy to fetch_refs_from_bundle() | 16 October 2011, 03:46:39 UTC |
3197bd8 | Junio C Hamano | 16 October 2011, 03:46:38 UTC | Merge branch 'jk/filter-branch-require-clean-work-tree' into maint * jk/filter-branch-require-clean-work-tree: filter-branch: use require_clean_work_tree | 16 October 2011, 03:46:38 UTC |
d7b7dd3 | Junio C Hamano | 16 October 2011, 03:46:38 UTC | Merge branch 'jc/maint-fsck-fwrite-size-check' into maint * jc/maint-fsck-fwrite-size-check: fsck: do not abort upon finding an empty blob | 16 October 2011, 03:46:38 UTC |
a151c28 | Junio C Hamano | 16 October 2011, 03:46:38 UTC | Merge branch 'bk/ancestry-path' into maint * bk/ancestry-path: t6019: avoid refname collision on case-insensitive systems revision: do not include sibling history in --ancestry-path output revision: keep track of the end-user input from the command line rev-list: Demonstrate breakage with --ancestry-path --all | 16 October 2011, 03:46:38 UTC |
e2d0a2e | Junio C Hamano | 16 October 2011, 03:46:38 UTC | Merge branch 'jk/maint-fetch-submodule-check-fix' into maint * jk/maint-fetch-submodule-check-fix: fetch: avoid quadratic loop checking for updated submodules | 16 October 2011, 03:46:38 UTC |
8f85829 | Junio C Hamano | 16 October 2011, 03:46:37 UTC | Merge branch 'tr/mergetool-valgrind' into maint * tr/mergetool-valgrind: Symlink mergetools scriptlets into valgrind wrappers | 16 October 2011, 03:46:37 UTC |
7c4f050 | Junio C Hamano | 16 October 2011, 03:46:37 UTC | Merge branch 'nm/grep-object-sha1-lock' into maint * nm/grep-object-sha1-lock: grep: Fix race condition in delta_base_cache Conflicts: builtin/grep.c | 16 October 2011, 03:46:37 UTC |
fc26f57 | Junio C Hamano | 16 October 2011, 03:46:36 UTC | Merge branch 'jc/diff-index-unpack' into maint * jc/diff-index-unpack: diff-index: pass pathspec down to unpack-trees machinery unpack-trees: allow pruning with pathspec traverse_trees(): allow pruning with pathspec | 16 October 2011, 03:46:36 UTC |
57ded05 | Junio C Hamano | 16 October 2011, 03:46:36 UTC | Merge branch 'mm/rebase-i-exec-edit' into maint * mm/rebase-i-exec-edit: rebase -i: notice and warn if "exec $cmd" modifies the index or the working tree rebase -i: clean error message for --continue after failed exec | 16 October 2011, 03:46:36 UTC |
155b940 | Matthew Daley | 15 October 2011, 08:44:52 UTC | send-email: Honour SMTP domain when using TLS git-send-email sends two SMTP EHLOs when using TLS encryption, however only the first, unencrypted EHLO uses the SMTP domain that can be optionally specified by the user (--smtp-domain). This is because the call to hello() that produces the second, encrypted EHLO does not pass the SMTP domain as an argument, and hence a default of 'localhost.localdomain' is used instead. Fix by passing in the SMTP domain in this call. Signed-off-by: Matthew Daley <mattjd@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 16 October 2011, 03:33:04 UTC |
ac2604c | René Scharfe | 14 October 2011, 17:44:45 UTC | t1304: fall back to $USER if $LOGNAME is not defined For some reason $LOGNAME is not set anymore for me after an upgrade from Ubuntu 11.04 to 11.10. Use $USER in such a case. Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 14 October 2011, 18:41:28 UTC |
035b5bf | Jeff King | 13 October 2011, 15:59:24 UTC | pull,rebase: handle GIT_WORK_TREE better You can't currently run git-pull or git-rebase from outside of the work tree, even with GIT_WORK_TREE set, due to an overeager require_work_tree function. Commit e2eb527 documents this problem and provides the infrastructure for a fix, but left it to later commits to audit and update individual scripts. Changing these scripts to use require_work_tree_exists is easy to verify. We immediately call cd_to_toplevel, anyway. Therefore no matter which function we use, the state afterwards is one of: 1. We have a work tree, and we are at the top level. 2. We don't have a work tree, and we have died. The only catch is that we must also make sure no code that ran before the cd_to_toplevel assumed that we were already in the working tree. In this case, we will only have included shell libraries and called set_reflog_action, neither of which care about the current working directory at all. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 13 October 2011, 19:16:36 UTC |
2c93286 | Jim Meyering | 12 October 2011, 14:33:54 UTC | fix "git apply --index ..." not to deref NULL I noticed this when "git am CORRUPTED" unexpectedly failed with an odd diagnostic, and even removed one of the files it was supposed to have patched. Reproduce with any valid old/new patch from which you have removed the "+++ b/FILE" line. You'll see a diagnostic like this fatal: unable to write file '(null)' mode 100644: Bad address and you'll find that FILE has been removed. The above is on glibc-based systems. On other systems, rather than getting "null", you may provoke a segfault as git tries to dereference the NULL file name. Signed-off-by: Jim Meyering <meyering@redhat.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 12 October 2011, 19:08:11 UTC |
b0eab01 | Junio C Hamano | 12 October 2011, 16:42:26 UTC | branch -m/-M: remove undocumented RENAMED-REF The commit message for c976d41 (git-branch: add options and tests for branch renaming, 2006-11-28) mentions RENAME_REF but otherwise this is not documented anywhere, and it does not appear in any of the tests. Worse yet, the name of the actual file is "RENAMED-REF". This was supposed to hold the commit object name at the tip of the branch the most recent "branch -m/-M" renamed, but that is not necessary in order to be able to recover from a mistake. Even when "branch -M A B" overwrites an existing branch B, what is kept in RENAMED-REF is the commit at the tip of the original branch A, not the commit B from the now-lost branch. Just remove this unused "feature". Signed-off-by: Junio C Hamano <gitster@pobox.com> | 12 October 2011, 16:52:55 UTC |
6eba621 | Brandon Casey | 11 October 2011, 15:53:31 UTC | attr.c: respect core.ignorecase when matching attribute patterns When core.ignorecase is true, the file globs configured in the .gitattributes file should be matched case-insensitively against the paths in the working directory. Let's do so. Plus, add some tests. The last set of tests is performed only on a case-insensitive filesystem. Those tests make sure that git handles the case where the .gitignore file resides in a subdirectory and the user supplies a path that does not match the case in the filesystem. In that case^H^H^H^Hsituation, part of the path supplied by the user is effectively interpreted case-insensitively, and part of it is dependent on the setting of core.ignorecase. git will currently only match the portion of the path below the directory holding the .gitignore file according to the setting of core.ignorecase. This is also partly future-proofing. Currently, git builds the attr stack based on the path supplied by the user, so we don't have to do anything special (like use strcmp_icase) to handle the parts of that path that don't match the filesystem with respect to case. If git instead built the attr stack by scanning the repository, then the paths in the origin field would not necessarily match the paths supplied by the user. If someone makes a change like that in the future, these tests will notice. Signed-off-by: Brandon Casey <drafnel@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 11 October 2011, 16:43:05 UTC |
008e3cc | Matthieu Moy | 10 October 2011, 12:54:51 UTC | config: display key_delim for config --bool --get-regexp The previous logic in show_config was to print the delimiter when the value was set, but Boolean variables have an implicit value "true" when they appear with no value in the config file. As a result, we got: git_Config --get-regexp '.*\.Boolean' #1. Ok: example.boolean git_Config --bool --get-regexp '.*\.Boolean' #2. NO: example.booleantrue Fix this by defering the display of the separator until after the value to display has been computed. Reported-by: Brian Foster <brian.foster@maxim-ic.com> Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 10 October 2011, 19:34:44 UTC |
43a8a04 | Carlos Martín Nieto | 07 October 2011, 22:51:07 UTC | t5510: add tests for fetch --prune The failures will be fixed in later commits. Signed-off-by: Carlos Martín Nieto <cmn@elego.de> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 07 October 2011, 23:03:30 UTC |
5caf197 | Carlos Martín Nieto | 07 October 2011, 22:51:06 UTC | fetch: free all the additional refspecs Signed-off-by: Carlos Martín Nieto <cmn@elego.de> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 07 October 2011, 23:02:19 UTC |
64589a0 | Junio C Hamano | 06 October 2011, 18:22:24 UTC | attr: read core.attributesfile from git_default_core_config This code calls git_config from a helper function to parse the config entry it is interested in. Calling git_config in this way may cause a problem if the helper function can be called after a previous call to git_config by another function since the second call to git_config may reset some variable to the value in the config file which was previously overridden. The above is not a problem in this case since the function passed to git_config only parses one config entry and the variable it sets is not assigned outside of the parsing function. But a programmer who desires all of the standard config options to be parsed may be tempted to modify git_attr_config() so that it falls back to git_default_config() and then it _would_ be vulnerable to the above described behavior. So, move the call to git_config up into the top-level cmd_* function and move the responsibility for parsing core.attributesfile into the main config file parser. Which is only the logical thing to do ;-) Signed-off-by: Brandon Casey <drafnel@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 06 October 2011, 20:54:32 UTC |
0d0ff65 | Brandon Casey | 06 October 2011, 18:22:23 UTC | builtin/mv.c: plug miniscule memory leak The "it" string would not be free'ed if base_name was non-NULL. Let's free it. Signed-off-by: Brandon Casey <drafnel@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 06 October 2011, 20:54:32 UTC |
040a655 | Brandon Casey | 06 October 2011, 18:22:22 UTC | cleanup: use internal memory allocation wrapper functions everywhere The "x"-prefixed versions of strdup, malloc, etc. will check whether the allocation was successful and terminate the process otherwise. A few uses of malloc were left alone since they already implemented a graceful path of failure or were in a quasi external library like xdiff. Additionally, the call to malloc in compat/win32/syslog.c was not modified since the syslog() implemented there is a die handler and a call to the x-wrappers within a die handler could result in recursion should memory allocation fail. This will have to be addressed separately. Signed-off-by: Brandon Casey <drafnel@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 06 October 2011, 20:54:32 UTC |
97410b2 | Brandon Casey | 06 October 2011, 18:22:21 UTC | attr.c: avoid inappropriate access to strbuf "buf" member This code sequence performs a strcpy into the buf member of a strbuf struct. The strcpy may move the position of the terminating nul of the string and effectively change the length of string so that it does not match the len member of the strbuf struct. Currently, this sequence works since the strbuf was given a hint when it was initialized to allocate enough space to accomodate the string that will be strcpy'ed, but this is an implementation detail of strbufs, not a guarantee. So, lets rework this sequence so that the strbuf is only manipulated by strbuf functions, and direct modification of its "buf" member is not necessary. Signed-off-by: Brandon Casey <drafnel@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 06 October 2011, 20:54:31 UTC |
d30db56 | Jay Soffian | 06 October 2011, 18:25:55 UTC | merge-one-file: fix "expr: non-numeric argument" When invoking expr to compare two numbers, don't quote the variables which are the output of 'wc -c'. On OS X, this output includes spaces, which expr balks at: $ sz0=`wc -c </etc/passwd` $ sz1=`wc -c </etc/passwd` $ echo "'$sz0'" ' 3667' $ expr "$sz0" \< "$sz1" \* 2 expr: non-numeric argument $ expr $sz0 \< $sz1 \* 2 1 Signed-off-by: Jay Soffian <jaysoffian@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 06 October 2011, 20:24:59 UTC |
908aace | Ilari Liusvaara | 03 October 2011, 11:01:59 UTC | Support ERR in remote archive like in fetch/push Make ERR as first packet of remote snapshot reply work like it does in fetch/push. Lets servers decline remote snapshot with message the same way as declining fetch/push with a message. Signed-off-by: Ilari Liusvaara <ilari.liusvaara@elisanet.fi> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 05 October 2011, 16:27:29 UTC |
6cdf022 | Shawn O. Pearce | 04 October 2011, 23:20:19 UTC | remote-curl: Fix warning after HTTP failure If the HTTP connection is broken in the middle of a fetch or clone body, the client presented a useless error message due to part of the upload-pack->remote-curl pkt-line protocol leaking out of the helper as the helper's "fetch result": error: RPC failed; result=18, HTTP code = 200 fatal: The remote end hung up unexpectedly fatal: early EOF fatal: unpack-objects failed warning: https unexpectedly said: '0000' Instead when the HTTP RPC fails discard all remaining data from upload-pack and report nothing to the transport helper. Errors were already sent to stderr. Signed-off-by: Shawn O. Pearce <spearce@spearce.org> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 05 October 2011, 02:11:50 UTC |
0b20dd8 | Jonathan Nieder | 03 October 2011, 06:41:20 UTC | Makefile: do not set setgid bit on directories on GNU/kFreeBSD The g+s bit on directories to make group ownership inherited is a SysVism --- BSD and most of its descendants do not need it since they do the sane thing by default without g+s. In fact, on some filesystems (but not all --- tmpfs works this way but UFS does not), the kernel of FreeBSD does not even allow non-root users to set setgid bit on directories and produces errors when one tries: $ git init --shared dir fatal: Could not make /tmp/dir/.git/refs writable by group Since the setgid bit would only mean "do what you were going to do already", it's better to avoid setting it. Accordingly, ever since v1.5.5-rc0~59^2 (Do not use GUID on dir in git init --share=all on FreeBSD, 2008-03-05), git on true FreeBSD has done exactly that. Set DIR_HAS_BSD_GROUP_SEMANTICS in the makefile for GNU/kFreeBSD, too, so machines that use glibc with the kernel of FreeBSD get the same fix. This fixes t0001-init.sh and t1301-shared-repo.sh on GNU/kFreeBSD when running tests with --root pointing to a directory that uses tmpfs. Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 03 October 2011, 21:53:00 UTC |
81b568c | Junio C Hamano | 02 October 2011, 04:56:28 UTC | diff: resurrect XDF_NEED_MINIMAL with --minimal Earlier, 582aa00 (git diff too slow for a file, 2010-05-02) unconditionally dropped XDF_NEED_MINIMAL option from the internal xdiff invocation to help performance on pathological cases, while hinting that a follow-up patch could reintroduce it with "--minimal" option from the command line. Make it so. Signed-off-by: Junio C Hamano <gitster@pobox.com> | 03 October 2011, 18:58:18 UTC |