Junio C Hamano [Wed, 14 Dec 2011 05:55:31 +0000 (21:55 -0800)]
Git 1.7.7.5
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Wed, 14 Dec 2011 05:47:51 +0000 (21:47 -0800)]
Merge branch 'ab/clang-lints' into maint-1.7.7
* ab/clang-lints:
cast variable in call to free() in builtin/diff.c and submodule.c
apply: get rid of useless x < 0 comparison on a size_t type
Junio C Hamano [Wed, 14 Dec 2011 05:47:08 +0000 (21:47 -0800)]
Merge branch 'nd/maint-ignore-exclude' into maint-1.7.7
* nd/maint-ignore-exclude:
checkout,merge: loosen overwriting untracked file check based on info/exclude
Junio C Hamano [Wed, 14 Dec 2011 05:44:56 +0000 (21:44 -0800)]
Merge branch 'maint-1.7.6' into maint-1.7.7
* maint-1.7.6:
Git 1.7.6.5
blame: don't overflow time buffer
fetch: create status table using strbuf
Conflicts:
Documentation/git.txt
GIT-VERSION-GEN
RelNotes
Junio C Hamano [Wed, 14 Dec 2011 05:30:40 +0000 (21:30 -0800)]
Git 1.7.6.5
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Wed, 14 Dec 2011 05:21:30 +0000 (21:21 -0800)]
Merge branch 'jk/maint-fetch-status-table' into maint-1.7.6
* jk/maint-fetch-status-table:
fetch: create status table using strbuf
Junio C Hamano [Wed, 14 Dec 2011 05:12:34 +0000 (21:12 -0800)]
Merge branch 'jc/maint-name-rev-all' into maint-1.7.6
* jc/maint-name-rev-all:
name-rev --all: do not even attempt to describe non-commit object
Junio C Hamano [Wed, 14 Dec 2011 05:12:14 +0000 (21:12 -0800)]
Merge branch 'ml/mailmap' into maint-1.7.6
* ml/mailmap:
mailmap: xcalloc mailmap_info
Conflicts:
mailmap.c
Jeff King [Thu, 8 Dec 2011 10:25:54 +0000 (05:25 -0500)]
blame: don't overflow time buffer
When showing the raw timestamp, we format the numeric
seconds-since-epoch into a buffer, followed by the timezone
string. This string has come straight from the commit
object. A well-formed object should have a timezone string
of only a few bytes, but we could be operating on data
pushed by a malicious user.
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jeff King [Thu, 8 Dec 2011 08:43:19 +0000 (03:43 -0500)]
fetch: create status table using strbuf
When we fetch from a remote, we print a status table like:
From url
* [new branch] foo -> origin/foo
We create this table in a static buffer using sprintf. If
the remote refnames are long, they can overflow this buffer
and smash the stack.
Instead, let's use a strbuf to build the string.
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Martin von Zweigbergk [Fri, 9 Dec 2011 07:30:45 +0000 (23:30 -0800)]
am: don't persist keepcr flag
The keepcr flag is only used in the split_patches function, which is
only called before a patch application has to stopped for user input,
not after resuming. It is therefore unnecessary to persist the
flag. This seems to have been the case since it was introduced in
ad2c928 (git-am: Add command line parameter `--keep-cr` passing it to
git-mailsplit, 2010-02-27).
Signed-off-by: Martin von Zweigbergk <martin.von.zweigbergk@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Erik Faye-Lund [Thu, 8 Dec 2011 19:39:57 +0000 (20:39 +0100)]
mingw: give waitpid the correct signature
POSIX says that last parameter to waitpid should be 'int',
so let's make it so.
Signed-off-by: Erik Faye-Lund <kusmabite@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Michael Haggerty [Wed, 7 Dec 2011 15:20:16 +0000 (16:20 +0100)]
git symbolic-ref: documentation fix
The old "git symbolic-ref" manpage seemed to imply in one place that
symlinks are still the default way to represent symbolic references
and in another that symlinks are deprecated. Fix the text and shorten
the justification for the change of implementation.
Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Mon, 5 Dec 2011 23:07:49 +0000 (15:07 -0800)]
Merge branch 'maint-1.7.6' into maint-1.7.7
* maint-1.7.6:
stripspace: fix outdated comment
Add MYMETA.yml to perl/.gitignore
Jeff King [Mon, 5 Dec 2011 22:29:15 +0000 (17:29 -0500)]
stripspace: fix outdated comment
The comment on top of stripspace() claims that the buffer
will no longer be NUL-terminated. However, this has not been
the case at least since the move to using strbuf in 2007.
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Sebastian Morr [Fri, 2 Dec 2011 22:55:28 +0000 (23:55 +0100)]
Add MYMETA.yml to perl/.gitignore
This file is auto-generated by newer versions of ExtUtils::MakeMaker
(presumably starting with the version shipping with Perl 5.14). It just
contains extra information about the environment and arguments to the
Makefile-building process, and should be ignored.
Signed-off-by: Sebastian Morr <sebastian@morr.cc>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Nguyễn Thái Ngọc Duy [Sun, 27 Nov 2011 10:15:32 +0000 (17:15 +0700)]
checkout,merge: loosen overwriting untracked file check based on info/exclude
Back in
1127148 (Loosen "working file will be lost" check in
Porcelain-ish - 2006-12-04), git-checkout.sh learned to quietly
overwrite ignored files. Howver the code only took .gitignore files
into account.
Standard ignored files include all specified in .gitignore files in
working directory _and_ $GIT_DIR/info/exclude. This patch makes sure
ignored files in info/exclude can also be overwritten automatically in
the spirit of the original patch.
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Thomas Hochstein [Mon, 14 Nov 2011 22:55:52 +0000 (23:55 +0100)]
documentation fix: git difftool uses diff tools, not merge tools.
Let the documentation for -t list valid *diff* tools,
not valid *merge* tools.
Signed-off-by: Thomas Hochstein <thh@inter.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Fri, 18 Nov 2011 19:28:05 +0000 (11:28 -0800)]
Git 1.7.7.4
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Fri, 18 Nov 2011 19:14:16 +0000 (11:14 -0800)]
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
Junio C Hamano [Fri, 18 Nov 2011 19:14:00 +0000 (11:14 -0800)]
Merge branch 'ml/mailmap' into maint
* ml/mailmap:
mailmap: xcalloc mailmap_info
Conflicts:
mailmap.c
Junio C Hamano [Fri, 18 Nov 2011 19:11:50 +0000 (11:11 -0800)]
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
Jonathan Nieder [Fri, 18 Nov 2011 10:02:02 +0000 (04:02 -0600)]
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>
Jonathan Nieder [Fri, 18 Nov 2011 01:27:46 +0000 (19:27 -0600)]
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>
Marc-André Lureau [Thu, 17 Nov 2011 01:25:06 +0000 (02:25 +0100)]
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>
Junio C Hamano [Tue, 15 Nov 2011 23:51:05 +0000 (15:51 -0800)]
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>
Junio C Hamano [Wed, 9 Nov 2011 00:37:00 +0000 (16:37 -0800)]
Git 1.7.7.3
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Wed, 9 Nov 2011 00:35:53 +0000 (16:35 -0800)]
Merge branch 'jc/maint-remove-renamed-ref' into maint
* jc/maint-remove-renamed-ref:
branch -m/-M: remove undocumented RENAMED-REF
Conflicts:
refs.c
Junio C Hamano [Wed, 9 Nov 2011 00:26:50 +0000 (16:26 -0800)]
Merge branch 'jm/maint-gitweb-filter-forks-fix' into maint
* jm/maint-gitweb-filter-forks-fix:
gitweb: fix regression when filtering out forks
Junio C Hamano [Wed, 9 Nov 2011 00:26:45 +0000 (16:26 -0800)]
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
Junio C Hamano [Tue, 8 Nov 2011 18:17:40 +0000 (10:17 -0800)]
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>
Jeff King [Tue, 8 Nov 2011 21:29:30 +0000 (16:29 -0500)]
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>
Ævar Arnfjörð Bjarmason [Sun, 6 Nov 2011 12:06:23 +0000 (13:06 +0100)]
cast variable in call to free() in builtin/diff.c and submodule.c
Both of these free() calls are freeing a "const unsigned char (*)[20]"
type while free() expects a "void *". This results in the following
warning under clang 2.9:
builtin/diff.c:185:7: warning: passing 'const unsigned char (*)[20]' to parameter of type 'void *' discards qualifiers
free(parent);
^~~~~~
submodule.c:394:7: warning: passing 'const unsigned char (*)[20]' to parameter of type 'void *' discards qualifiers
free(parents);
^~~~~~~
This free()-ing without a cast was added by Jim Meyering to
builtin/diff.c in v1.7.6-rc3~4 and later by Fredrik Gustafsson in
submodule.c in v1.7.7-rc1~25^2.
Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Ævar Arnfjörð Bjarmason [Sun, 6 Nov 2011 12:06:22 +0000 (13:06 +0100)]
apply: get rid of useless x < 0 comparison on a size_t type
According to the C standard size_t is always unsigned, therefore the
comparison "n1 < 0 || n2 < 0" when n1 and n2 are size_t will always be
false.
This was raised by clang 2.9 which throws this warning when compiling
apply.c:
builtin/apply.c:253:9: warning: comparison of unsigned expression < 0 is always false [-Wtautological-compare]
if (n1 < 0 || n2 < 0)
~~ ^ ~
builtin/apply.c:253:19: warning: comparison of unsigned expression < 0 is always false [-Wtautological-compare]
if (n1 < 0 || n2 < 0)
~~ ^ ~
This check was originally added in v1.6.5-rc0~53^2 by Giuseppe Bilotta
while adding an option to git-apply to ignore whitespace differences.
Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Tue, 1 Nov 2011 23:16:36 +0000 (16:16 -0700)]
Git 1.7.7.2
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Tue, 1 Nov 2011 23:41:41 +0000 (16:41 -0700)]
Merge branch 'rs/maint-estimate-cache-size' into maint
* rs/maint-estimate-cache-size:
t7511: avoid use of reserved filename on Windows.
Junio C Hamano [Tue, 1 Nov 2011 23:12:19 +0000 (16:12 -0700)]
Merge branch 'md/smtp-tls-hello-again' into maint
* md/smtp-tls-hello-again:
send-email: Honour SMTP domain when using TLS
Junio C Hamano [Tue, 1 Nov 2011 23:11:00 +0000 (16:11 -0700)]
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
Junio C Hamano [Tue, 1 Nov 2011 23:10:56 +0000 (16:10 -0700)]
Merge branch 'jc/maint-diffstat-numstat-context' into maint
* jc/maint-diffstat-numstat-context:
diff: teach --stat/--numstat to honor -U$num
Junio C Hamano [Tue, 1 Nov 2011 23:03:35 +0000 (16:03 -0700)]
Merge branch 'js/bisect-no-checkout' into maint
* js/bisect-no-checkout:
bisect: fix exiting when checkout failed in bisect_start()
Junio C Hamano [Tue, 1 Nov 2011 22:54:45 +0000 (15:54 -0700)]
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
Junio C Hamano [Tue, 1 Nov 2011 22:51:01 +0000 (15:51 -0700)]
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
Junio C Hamano [Tue, 1 Nov 2011 22:45:16 +0000 (15:45 -0700)]
Merge branch 'sp/smart-http-failure' into maint
* sp/smart-http-failure:
remote-curl: Fix warning after HTTP failure
Junio C Hamano [Tue, 1 Nov 2011 22:42:25 +0000 (15:42 -0700)]
Merge jn/maint-http-error-message
* commit '
be22d92eac809ad2bfa2b7c83ad7cad5a15f1c43':
http: avoid empty error messages for some curl errors
http: remove extra newline in error message
Pat Thoyts [Mon, 31 Oct 2011 14:07:27 +0000 (14:07 +0000)]
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>
Junio C Hamano [Thu, 27 Oct 2011 19:03:16 +0000 (12:03 -0700)]
Merge branch 'rs/maint-estimate-cache-size' into maint
* rs/maint-estimate-cache-size:
read-cache.c: fix index memory allocation
Richard Hartmann [Thu, 27 Oct 2011 16:46:53 +0000 (18:46 +0200)]
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>
Junio C Hamano [Wed, 26 Oct 2011 23:13:31 +0000 (16:13 -0700)]
Merge branch 'jn/gitweb-highlite-sanitise' into maint
* jn/gitweb-highlite-sanitise:
gitweb: Strip non-printable characters from syntax highlighter output
Junio C Hamano [Wed, 26 Oct 2011 23:13:31 +0000 (16:13 -0700)]
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
Junio C Hamano [Wed, 26 Oct 2011 23:13:31 +0000 (16:13 -0700)]
Merge branch 'jc/run-receive-hook-cleanup' into maint
* jc/run-receive-hook-cleanup:
refactor run_receive_hook()
Junio C Hamano [Wed, 26 Oct 2011 23:13:31 +0000 (16:13 -0700)]
Merge branch 'cn/eradicate-working-copy' into maint
* cn/eradicate-working-copy:
Remove 'working copy' from the documentation and C code
Junio C Hamano [Wed, 26 Oct 2011 23:13:27 +0000 (16:13 -0700)]
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'
Junio C Hamano [Wed, 26 Oct 2011 23:12:48 +0000 (16:12 -0700)]
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
Junio C Hamano [Wed, 26 Oct 2011 23:12:35 +0000 (16:12 -0700)]
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
Junio C Hamano [Wed, 26 Oct 2011 23:12:25 +0000 (16:12 -0700)]
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
Junio C Hamano [Wed, 26 Oct 2011 23:12:19 +0000 (16:12 -0700)]
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'
Junio C Hamano [Wed, 26 Oct 2011 23:12:13 +0000 (16:12 -0700)]
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
Junio C Hamano [Wed, 26 Oct 2011 23:11:28 +0000 (16:11 -0700)]
Merge branch 'hl/iso8601-more-zone-formats' into maint-1.7.6
* hl/iso8601-more-zone-formats:
date.c: Support iso8601 timezone formats
Junio C Hamano [Wed, 26 Oct 2011 23:09:28 +0000 (16:09 -0700)]
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
Junio C Hamano [Wed, 26 Oct 2011 23:09:04 +0000 (16:09 -0700)]
Merge branch 'tr/doc-note-rewrite' into maint-1.7.6
* tr/doc-note-rewrite:
Documentation: basic configuration of notes.rewriteRef
Junio C Hamano [Wed, 26 Oct 2011 23:09:04 +0000 (16:09 -0700)]
Merge branch 'nd/sparse-doc' into maint-1.7.6
* nd/sparse-doc:
git-read-tree.txt: update sparse checkout examples
Junio C Hamano [Wed, 26 Oct 2011 23:09:03 +0000 (16:09 -0700)]
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
Junio C Hamano [Wed, 26 Oct 2011 23:08:19 +0000 (16:08 -0700)]
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'
Junio C Hamano [Wed, 26 Oct 2011 23:08:14 +0000 (16:08 -0700)]
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'
Junio C Hamano [Wed, 26 Oct 2011 23:08:08 +0000 (16:08 -0700)]
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'
Junio C Hamano [Wed, 26 Oct 2011 23:08:00 +0000 (16:08 -0700)]
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'
René Scharfe [Mon, 24 Oct 2011 01:01:27 +0000 (03:01 +0200)]
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>
Jim Meyering [Sat, 22 Oct 2011 17:44:40 +0000 (19:44 +0200)]
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>
Junio C Hamano [Mon, 24 Oct 2011 06:55:22 +0000 (23:55 -0700)]
Merge branch 'maint-1.7.3' into maint
* maint-1.7.3:
Reindent closing bracket using tab instead of spaces
Nguyễn Thái Ngọc Duy [Mon, 24 Oct 2011 04:24:51 +0000 (15:24 +1100)]
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>
Junio C Hamano [Mon, 24 Oct 2011 04:48:06 +0000 (21:48 -0700)]
Git 1.7.7.1
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jonathan Nieder [Sat, 22 Oct 2011 11:11:07 +0000 (06:11 -0500)]
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>
Julien Muchembled [Fri, 21 Oct 2011 19:04:21 +0000 (21:04 +0200)]
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>
Junio C Hamano [Fri, 21 Oct 2011 18:01:07 +0000 (11:01 -0700)]
Almost ready for 1.7.7.1
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Fri, 21 Oct 2011 17:49:26 +0000 (10:49 -0700)]
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
Junio C Hamano [Fri, 21 Oct 2011 17:49:26 +0000 (10:49 -0700)]
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
Junio C Hamano [Fri, 21 Oct 2011 17:49:25 +0000 (10:49 -0700)]
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
Junio C Hamano [Fri, 21 Oct 2011 17:49:25 +0000 (10:49 -0700)]
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
Junio C Hamano [Fri, 21 Oct 2011 17:49:25 +0000 (10:49 -0700)]
Merge branch 'il/archive-err-signal' into maint
* il/archive-err-signal:
Support ERR in remote archive like in fetch/push
Junio C Hamano [Fri, 21 Oct 2011 17:49:25 +0000 (10:49 -0700)]
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"
Junio C Hamano [Fri, 21 Oct 2011 17:49:24 +0000 (10:49 -0700)]
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
Junio C Hamano [Fri, 21 Oct 2011 17:49:24 +0000 (10:49 -0700)]
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
Junio C Hamano [Fri, 21 Oct 2011 17:49:24 +0000 (10:49 -0700)]
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
Dan McGee [Tue, 18 Oct 2011 05:21:23 +0000 (00:21 -0500)]
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>
Brandon Casey [Thu, 6 Oct 2011 04:21:33 +0000 (23:21 -0500)]
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>
Dan McGee [Tue, 18 Oct 2011 05:21:24 +0000 (00:21 -0500)]
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>
Dan McGee [Tue, 18 Oct 2011 05:21:22 +0000 (00:21 -0500)]
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>
Dan McGee [Tue, 18 Oct 2011 05:21:21 +0000 (00:21 -0500)]
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>
Carlos Martín Nieto [Sat, 15 Oct 2011 05:04:26 +0000 (07:04 +0200)]
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>
Carlos Martín Nieto [Sat, 15 Oct 2011 05:04:25 +0000 (07:04 +0200)]
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>
Carlos Martín Nieto [Sat, 15 Oct 2011 05:04:24 +0000 (07:04 +0200)]
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>
Junio C Hamano [Sun, 16 Oct 2011 03:55:12 +0000 (20:55 -0700)]
Prepare for 1.7.7.1
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Sun, 16 Oct 2011 03:46:39 +0000 (20:46 -0700)]
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
Junio C Hamano [Sun, 16 Oct 2011 03:46:39 +0000 (20:46 -0700)]
Merge branch 'jc/maint-bundle-too-quiet' into maint
* jc/maint-bundle-too-quiet:
Teach progress eye-candy to fetch_refs_from_bundle()
Junio C Hamano [Sun, 16 Oct 2011 03:46:38 +0000 (20:46 -0700)]
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
Junio C Hamano [Sun, 16 Oct 2011 03:46:38 +0000 (20:46 -0700)]
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
Junio C Hamano [Sun, 16 Oct 2011 03:46:38 +0000 (20:46 -0700)]
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
Junio C Hamano [Sun, 16 Oct 2011 03:46:38 +0000 (20:46 -0700)]
Merge branch 'jk/maint-fetch-submodule-check-fix' into maint
* jk/maint-fetch-submodule-check-fix:
fetch: avoid quadratic loop checking for updated submodules
Junio C Hamano [Sun, 16 Oct 2011 03:46:37 +0000 (20:46 -0700)]
Merge branch 'tr/mergetool-valgrind' into maint
* tr/mergetool-valgrind:
Symlink mergetools scriptlets into valgrind wrappers
Junio C Hamano [Sun, 16 Oct 2011 03:46:37 +0000 (20:46 -0700)]
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