Code

git.git
13 years agoMerge branch 'jk/name-hash-dirent'
Junio C Hamano [Tue, 1 Nov 2011 22:31:12 +0000 (15:31 -0700)]
Merge branch 'jk/name-hash-dirent'

* jk/name-hash-dirent:
  name-hash.c: always initialize dir_next pointer

13 years agoname-hash.c: always initialize dir_next pointer
Johannes Sixt [Tue, 1 Nov 2011 22:21:06 +0000 (23:21 +0100)]
name-hash.c: always initialize dir_next pointer

Test t2021-checkout-overwrite.sh reveals a segfault in 'git add' on a
case-insensitive file system when git is compiled with XMALLOC_POISON
defined. The reason is that 2548183b (fix phantom untracked files when
core.ignorecase is set) added a new member dir_next to struct cache_entry,
but forgot to initialize it in all cases.

Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoMerge branch 'ss/blame-textconv-fake-working-tree'
Junio C Hamano [Tue, 1 Nov 2011 22:20:28 +0000 (15:20 -0700)]
Merge branch 'ss/blame-textconv-fake-working-tree'

* ss/blame-textconv-fake-working-tree:
  (squash) test for previous
  blame.c: Properly initialize strbuf after calling, textconv_object()

Conflicts:
t/t8006-blame-textconv.sh

13 years agoMerge branch 'ef/mingw-upload-archive'
Junio C Hamano [Tue, 1 Nov 2011 22:20:22 +0000 (15:20 -0700)]
Merge branch 'ef/mingw-upload-archive'

* ef/mingw-upload-archive:
  mingw: poll.h is no longer in sys/
  upload-archive: use start_command instead of fork
  compat/win32/poll.c: upgrade from upstream
  mingw: move poll out of sys-folder

13 years agoMerge branch 'dm/pack-objects-update'
Junio C Hamano [Tue, 1 Nov 2011 22:20:07 +0000 (15:20 -0700)]
Merge branch 'dm/pack-objects-update'

* 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

13 years agoMerge branch 'nd/pretty-commit-log-message'
Junio C Hamano [Tue, 1 Nov 2011 22:20:03 +0000 (15:20 -0700)]
Merge branch 'nd/pretty-commit-log-message'

* nd/pretty-commit-log-message:
  pretty.c: use original commit message if reencoding fails
  pretty.c: free get_header() return value

13 years agosvn: Quote repository root in regex match
Ted Percival [Mon, 31 Oct 2011 22:37:12 +0000 (16:37 -0600)]
svn: Quote repository root in regex match

Fixes a problem matching repository URLs, especially those with a '+' in
the URL, such as svn+ssh:// URLs. Parts of the URL were interpreted as
special characters by the regex matching.

Signed-off-by: Ted Percival <ted.percival@quest.com>
Acked-by: Eric Wong <normalperson@yhbt.net>
13 years agomingw: poll.h is no longer in sys/
Erik Faye-Lund [Tue, 1 Nov 2011 11:56:21 +0000 (12:56 +0100)]
mingw: poll.h is no longer in sys/

Earlier we moved this header file in the code but forgot to
update the Makefile that refers to it.

Signed-off-by: Erik Faye-Lund <kusmabite@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoGit 1.7.8-rc0 v1.7.8-rc0
Junio C Hamano [Mon, 31 Oct 2011 02:14:24 +0000 (19:14 -0700)]
Git 1.7.8-rc0

Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoMerge branch 'jk/git-tricks'
Junio C Hamano [Mon, 31 Oct 2011 02:13:13 +0000 (19:13 -0700)]
Merge branch 'jk/git-tricks'

* jk/git-tricks:
  completion: match ctags symbol names in grep patterns
  contrib: add git-jump script
  contrib: add diff highlight script

13 years agoupload-archive: use start_command instead of fork
Erik Faye-Lund [Mon, 24 Oct 2011 16:02:11 +0000 (18:02 +0200)]
upload-archive: use start_command instead of fork

The POSIX-function fork is not supported on Windows. Use our
start_command API instead.

As this is the last call-site that depends on the fork-stub in
compat/mingw.h, remove that as well.

Add an undocumented flag to git-archive that tells it that the
action originated from a remote, so features can be disabled.
Thanks to Jeff King for work on this part.

Remove the NOT_MINGW-prereq for t5000, as git-archive --remote
now works.

Signed-off-by: Erik Faye-Lund <kusmabite@gmail.com>
Helped-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agocompat/win32/poll.c: upgrade from upstream
Erik Faye-Lund [Mon, 24 Oct 2011 16:02:10 +0000 (18:02 +0200)]
compat/win32/poll.c: upgrade from upstream

poll.c is updated from revision adc3a5b in
git://git.savannah.gnu.org/gnulib.git

The changes are applied with --whitespace=fix to reduce noise.

poll.h is not upgraded, because the most recent version now
contains template-stuff that breaks compilation for us.

Signed-off-by: Erik Faye-Lund <kusmabite@gmail.com>
Acked-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agomingw: move poll out of sys-folder
Erik Faye-Lund [Mon, 24 Oct 2011 16:02:09 +0000 (18:02 +0200)]
mingw: move poll out of sys-folder

Both XSI and upstream Gnulib versions expects to find poll.h at
the root of some include path, not inside the sys-folder.

This helps us when upgrading Gnulib.

Signed-off-by: Erik Faye-Lund <kusmabite@gmail.com>
Acked-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years ago(squash) test for previous
Junio C Hamano [Fri, 28 Oct 2011 16:36:55 +0000 (09:36 -0700)]
(squash) test for previous

Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoblame.c: Properly initialize strbuf after calling, textconv_object()
Sebastian Schuberth [Fri, 28 Oct 2011 15:28:28 +0000 (17:28 +0200)]
blame.c: Properly initialize strbuf after calling, textconv_object()

For a plain string where only the length is known, strbuf.alloc needs to
be initialized to the length. Otherwise strbuf.alloc is 0 and a later
call to strbuf_setlen() will fail.

This bug surfaced when calling git blame under Windows on a *.doc file.
The *.doc file is converted to plain text by antiword via the textconv
mechanism. However, the plain text returned by antiword contains DOS line
endings instead of Unix line endings which triggered the strbuf_setlen()
which previous to this patch failed.

Signed-off-by: Sebastian Schuberth <sschuberth@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoUpdate draft release notes to 1.7.8
Junio C Hamano [Thu, 27 Oct 2011 19:06:44 +0000 (12:06 -0700)]
Update draft release notes to 1.7.8

Getting very close to -rc0

Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoMerge branch 'sn/complete-bash-wo-process-subst'
Junio C Hamano [Thu, 27 Oct 2011 19:04:28 +0000 (12:04 -0700)]
Merge branch 'sn/complete-bash-wo-process-subst'

* sn/complete-bash-wo-process-subst:
  completion: fix issue with process substitution not working on Git for Windows

13 years agoMerge branch 'rj/gitweb-clean-js'
Junio C Hamano [Thu, 27 Oct 2011 19:04:21 +0000 (12:04 -0700)]
Merge branch 'rj/gitweb-clean-js'

* rj/gitweb-clean-js:
  gitweb/Makefile: Remove static/gitweb.js in the clean target

13 years agoMerge branch 'js/grep-mutex'
Junio C Hamano [Thu, 27 Oct 2011 19:04:02 +0000 (12:04 -0700)]
Merge branch 'js/grep-mutex'

* js/grep-mutex:
  builtin/grep: simplify lock_and_read_sha1_file()
  builtin/grep: make lock/unlock into static inline functions
  git grep: be careful to use mutexes only when they are initialized

13 years agoMerge branch 'maint'
Junio C Hamano [Thu, 27 Oct 2011 19:03:37 +0000 (12:03 -0700)]
Merge branch 'maint'

* maint:
  clone: Quote user supplied path in a single quote pair
  read-cache.c: fix index memory allocation

13 years agoMerge branch 'rs/maint-estimate-cache-size' into maint
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

13 years agoclone: Quote user supplied path in a single quote pair
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>
13 years agoMerge branch 'maint'
Junio C Hamano [Wed, 26 Oct 2011 23:24:55 +0000 (16:24 -0700)]
Merge branch 'maint'

* maint:
  make the sample pre-commit hook script reject names with newlines, too

13 years agoUpdate draft release notes to 1.7.8
Junio C Hamano [Wed, 26 Oct 2011 23:23:26 +0000 (16:23 -0700)]
Update draft release notes to 1.7.8

Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoMerge branch 'tc/submodule-clone-name-detection'
Junio C Hamano [Wed, 26 Oct 2011 23:16:32 +0000 (16:16 -0700)]
Merge branch 'tc/submodule-clone-name-detection'

* tc/submodule-clone-name-detection:
  submodule::module_clone(): silence die() message from module_name()
  submodule: whitespace fix

13 years agoMerge branch 'lh/gitweb-site-html-head'
Junio C Hamano [Wed, 26 Oct 2011 23:16:31 +0000 (16:16 -0700)]
Merge branch 'lh/gitweb-site-html-head'

* lh/gitweb-site-html-head:
  gitweb: provide a way to customize html headers

13 years agoMerge branch 'mm/mediawiki-author-fix'
Junio C Hamano [Wed, 26 Oct 2011 23:16:31 +0000 (16:16 -0700)]
Merge branch 'mm/mediawiki-author-fix'

* mm/mediawiki-author-fix:
  git-remote-mediawiki: don't include HTTP login/password in author

13 years agoMerge branch 'jn/libperl-git-config'
Junio C Hamano [Wed, 26 Oct 2011 23:16:30 +0000 (16:16 -0700)]
Merge branch 'jn/libperl-git-config'

* jn/libperl-git-config:
  Add simple test for Git::config_path() in t/t9700-perl-git.sh
  libperl-git: refactor Git::config_*

13 years agoMerge branch 'jm/maint-gitweb-filter-forks-fix'
Junio C Hamano [Wed, 26 Oct 2011 23:16:30 +0000 (16:16 -0700)]
Merge branch 'jm/maint-gitweb-filter-forks-fix'

* jm/maint-gitweb-filter-forks-fix:
  gitweb: fix regression when filtering out forks

13 years agoMerge branch 'cn/fetch-prune'
Junio C Hamano [Wed, 26 Oct 2011 23:16:29 +0000 (16:16 -0700)]
Merge branch 'cn/fetch-prune'

* 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

Conflicts:
remote.c

13 years agoMerge branch 'jn/gitweb-highlite-sanitise' into maint
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

13 years agoMerge branch 'jk/argv-array' into maint
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

13 years agoMerge branch 'jc/run-receive-hook-cleanup' into maint
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()

13 years agoMerge branch 'cn/eradicate-working-copy' into maint
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

13 years agoMerge branch 'maint-1.7.6' into maint
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'

13 years agoMerge branch 'mh/maint-notes-merge-pathbuf-fix' into maint-1.7.6
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

13 years agoMerge branch 'ps/gitweb-js-with-lineno' into maint-1.7.6
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

13 years agoMerge branch 'jm/mergetool-pathspec' into maint-1.7.6
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

13 years agoMerge branch 'mz/remote-rename' into maint-1.7.6
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'

13 years agoMerge branch 'rj/maint-t9159-svn-rev-notation' into maint-1.7.6
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

13 years agoMerge branch 'hl/iso8601-more-zone-formats' into maint-1.7.6
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

13 years agoMerge branch 'maint-1.7.6' into maint
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

13 years agoMerge branch 'tr/doc-note-rewrite' into maint-1.7.6
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

13 years agoMerge branch 'nd/sparse-doc' into maint-1.7.6
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

13 years agoMerge branch 'mg/maint-doc-sparse-checkout' into maint-1.7.6
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

13 years agoMerge branch 'maint-1.7.5' into maint-1.7.6
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'

13 years agoMerge branch 'maint-1.7.4' into maint-1.7.5
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'

13 years agoMerge branch 'maint-1.7.3' into maint-1.7.4
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'

13 years agoMerge branch 'sn/doc-update-index-assume-unchanged' into maint-1.7.3
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'

13 years agoread-cache.c: fix index memory allocation
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>
13 years agomake the sample pre-commit hook script reject names with newlines, too
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>
13 years agocompletion: fix issue with process substitution not working on Git for Windows
Stefan Naewe [Wed, 26 Oct 2011 19:13:09 +0000 (21:13 +0200)]
completion: fix issue with process substitution not working on Git for Windows

Git for Windows comes with a bash that doesn't support process substitution.
It issues the following error when using git-completion.bash with
GIT_PS1_SHOWUPSTREAM set:

$ export GIT_PS1_SHOWUPSTREAM=1
sh.exe": cannot make pipe for process substitution: Function not implemented
sh.exe": cannot make pipe for process substitution: Function not implemented
sh.exe": <(git config -z --get-regexp '^(svn-remote\..*\.url|bash\.showupstream)$' 2>/dev/null | tr '\0\n' '\n '): ambiguous redirect

Replace the process substitution with a 'here string'.

Signed-off-by: Stefan Naewe <stefan.naewe@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agogitweb/Makefile: Remove static/gitweb.js in the clean target
Ramsay Jones [Tue, 25 Oct 2011 17:15:20 +0000 (18:15 +0100)]
gitweb/Makefile: Remove static/gitweb.js in the clean target

Since 9a86dd5 (gitweb: Split JavaScript for maintability, combining on
build, 2011-04-28), static/gitweb.js has been a build product that should
be cleaned upon "make clean".

Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agobuiltin/grep: simplify lock_and_read_sha1_file()
Junio C Hamano [Wed, 26 Oct 2011 19:15:51 +0000 (12:15 -0700)]
builtin/grep: simplify lock_and_read_sha1_file()

As read_sha1_lock/unlock have been made aware of use_threads,
this caller can be made a lot simpler.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agobuiltin/grep: make lock/unlock into static inline functions
Junio C Hamano [Wed, 26 Oct 2011 18:45:15 +0000 (11:45 -0700)]
builtin/grep: make lock/unlock into static inline functions

Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agogit grep: be careful to use mutexes only when they are initialized
Johannes Schindelin [Tue, 25 Oct 2011 17:25:20 +0000 (12:25 -0500)]
git grep: be careful to use mutexes only when they are initialized

Rather nasty things happen when a mutex is not initialized but locked
nevertheless. Now, when we're not running in a threaded manner, the mutex
is not initialized, which is correct. But then we went and used the mutex
anyway, which -- at least on Windows -- leads to a hard crash (ordinarily
it would be called a segmentation fault, but in Windows speak it is an
access violation).

This problem was identified by our faithful tests when run in the msysGit
environment.

To avoid having to wrap the line due to the 80 column limit, we use
the name "WHEN_THREADED" instead of "IF_USE_THREADS" because it is one
character shorter. Which is all we need in this case.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoMerge branch 'maint'
Junio C Hamano [Mon, 24 Oct 2011 06:55:28 +0000 (23:55 -0700)]
Merge branch 'maint'

* maint:
  Reindent closing bracket using tab instead of spaces

13 years agoMerge branch 'maint-1.7.3' into maint
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

13 years agoReindent 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>
13 years agoMerge branch 'maint'
Junio C Hamano [Mon, 24 Oct 2011 04:49:14 +0000 (21:49 -0700)]
Merge branch 'maint'

* maint:
  Git 1.7.7.1
  RelNotes/1.7.7.1: setgid bit patch is about fixing "git init" via Makefile setting

Conflicts:
GIT-VERSION-GEN

13 years agoGit 1.7.7.1 v1.7.7.1
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>
13 years agopretty.c: use original commit message if reencoding fails
Nguyễn Thái Ngọc Duy [Sun, 23 Oct 2011 11:51:35 +0000 (22:51 +1100)]
pretty.c: use original commit message if reencoding fails

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agopretty.c: free get_header() return value
Nguyễn Thái Ngọc Duy [Sun, 23 Oct 2011 11:51:34 +0000 (22:51 +1100)]
pretty.c: free get_header() return value

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoRelNotes/1.7.7.1: setgid bit patch is about fixing "git init" via Makefile setting
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>
13 years agoUpdate draft release notes to 1.7.8
Junio C Hamano [Fri, 21 Oct 2011 18:46:12 +0000 (11:46 -0700)]
Update draft release notes to 1.7.8

Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoMerge branch 'po/insn-editor'
Junio C Hamano [Fri, 21 Oct 2011 23:04:37 +0000 (16:04 -0700)]
Merge branch 'po/insn-editor'

* po/insn-editor:
  "rebase -i": support special-purpose editor to edit insn sheet

13 years agoMerge branch 'jc/broken-ref-dwim-fix'
Junio C Hamano [Fri, 21 Oct 2011 23:04:36 +0000 (16:04 -0700)]
Merge branch 'jc/broken-ref-dwim-fix'

* jc/broken-ref-dwim-fix:
  resolve_ref(): report breakage to the caller without warning
  resolve_ref(): expose REF_ISBROKEN flag
  refs.c: move dwim_ref()/dwim_log() from sha1_name.c

13 years agoMerge branch 'mh/ref-api'
Junio C Hamano [Fri, 21 Oct 2011 23:04:36 +0000 (16:04 -0700)]
Merge branch 'mh/ref-api'

* mh/ref-api:
  clear_ref_cache(): inline function
  write_ref_sha1(): only invalidate the loose ref cache
  clear_ref_cache(): extract two new functions
  clear_ref_cache(): rename parameter
  invalidate_ref_cache(): expose this function in the refs API
  invalidate_ref_cache(): take the submodule as parameter
  invalidate_ref_cache(): rename function from invalidate_cached_refs()

13 years agoMerge branch 'jc/match-refs-clarify'
Junio C Hamano [Fri, 21 Oct 2011 23:04:35 +0000 (16:04 -0700)]
Merge branch 'jc/match-refs-clarify'

* jc/match-refs-clarify:
  rename "match_refs()" to "match_push_refs()"
  send-pack: typofix error message

13 years agoMerge branch 'jc/make-tags'
Junio C Hamano [Fri, 21 Oct 2011 23:04:35 +0000 (16:04 -0700)]
Merge branch 'jc/make-tags'

* jc/make-tags:
  Makefile: ask "ls-files" to list source files if available

13 years agoMerge branch 'ss/inet-ntop'
Junio C Hamano [Fri, 21 Oct 2011 23:04:35 +0000 (16:04 -0700)]
Merge branch 'ss/inet-ntop'

* ss/inet-ntop:
  inet_ntop.c: Work around GCC 4.6's detection of uninitialized variables

13 years agoMerge branch 'jc/maint-remove-renamed-ref'
Junio C Hamano [Fri, 21 Oct 2011 23:04:34 +0000 (16:04 -0700)]
Merge branch 'jc/maint-remove-renamed-ref'

* jc/maint-remove-renamed-ref:
  branch -m/-M: remove undocumented RENAMED-REF

Conflicts:
refs.c

13 years agoMerge branch 'pw/p4-update'
Junio C Hamano [Fri, 21 Oct 2011 23:04:33 +0000 (16:04 -0700)]
Merge branch 'pw/p4-update'

* pw/p4-update:
  git-p4: handle files with shell metacharacters
  git-p4: keyword flattening fixes
  git-p4: stop ignoring apple filetype
  git-p4: recognize all p4 filetypes
  git-p4: handle utf16 filetype properly
  git-p4 tests: refactor and cleanup

13 years agoMerge branch 'cn/doc-config-bare-subsection'
Junio C Hamano [Fri, 21 Oct 2011 23:04:33 +0000 (16:04 -0700)]
Merge branch 'cn/doc-config-bare-subsection'

* cn/doc-config-bare-subsection:
  Documentation: update [section.subsection] to reflect what git does

13 years agoMerge branch 'jk/maint-pack-objects-compete-with-delete'
Junio C Hamano [Fri, 21 Oct 2011 23:04:33 +0000 (16:04 -0700)]
Merge branch 'jk/maint-pack-objects-compete-with-delete'

* jk/maint-pack-objects-compete-with-delete:
  downgrade "packfile cannot be accessed" errors to warnings
  pack-objects: protect against disappearing packs

13 years agoMerge branch 'jk/daemon-msgs'
Junio C Hamano [Fri, 21 Oct 2011 23:04:32 +0000 (16:04 -0700)]
Merge branch 'jk/daemon-msgs'

* jk/daemon-msgs:
  daemon: give friendlier error messages to clients

Conflicts:
daemon.c

13 years agoMerge branch 'sc/difftool-skip'
Junio C Hamano [Fri, 21 Oct 2011 23:04:32 +0000 (16:04 -0700)]
Merge branch 'sc/difftool-skip'

* sc/difftool-skip:
  t7800: avoid arithmetic expansion notation
  git-difftool: allow skipping file by typing 'n' at prompt

13 years agoMerge branch 'jc/unseekable-bundle'
Junio C Hamano [Fri, 21 Oct 2011 23:04:32 +0000 (16:04 -0700)]
Merge branch 'jc/unseekable-bundle'

* jc/unseekable-bundle:
  bundle: add parse_bundle_header() helper function
  bundle: allowing to read from an unseekable fd

Conflicts:
transport.c

13 years agoMerge branch 'ph/transport-with-gitfile'
Junio C Hamano [Fri, 21 Oct 2011 23:04:32 +0000 (16:04 -0700)]
Merge branch 'ph/transport-with-gitfile'

* ph/transport-with-gitfile:
  Fix is_gitfile() for files too small or larger than PATH_MAX to be a gitfile
  Add test showing git-fetch groks gitfiles
  Teach transport about the gitfile mechanism
  Learn to handle gitfiles in enter_repo
  enter_repo: do not modify input

13 years agogitweb: fix regression when filtering out forks
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>
13 years agoAdd simple test for Git::config_path() in t/t9700-perl-git.sh
Jakub Narebski [Fri, 21 Oct 2011 18:42:44 +0000 (20:42 +0200)]
Add simple test for Git::config_path() in t/t9700-perl-git.sh

Tests "~/foo" path expansion and multiple values.

Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agocompletion: match ctags symbol names in grep patterns
Jeff King [Fri, 21 Oct 2011 17:30:21 +0000 (13:30 -0400)]
completion: match ctags symbol names in grep patterns

A common thing to grep for is the name of a symbol. This
patch teaches the completion for "git grep" to look in
a 'tags' file, if present, to complete a pattern. For
example, in git.git:

  $ make tags
  $ git grep get_sha1<Tab><Tab>
  get_sha1                 get_sha1_oneline
  get_sha1_1               get_sha1_with_context
  get_sha1_basic           get_sha1_with_context_1
  get_sha1_hex             get_sha1_with_mode
  get_sha1_hex_segment     get_sha1_with_mode_1
  get_sha1_mb

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agocontrib: add git-jump script
Jeff King [Fri, 21 Oct 2011 17:28:04 +0000 (13:28 -0400)]
contrib: add git-jump script

This is a small script for helping your editor jump to
specific points of interest. See the README for details.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoSync with maint
Junio C Hamano [Fri, 21 Oct 2011 18:08:10 +0000 (11:08 -0700)]
Sync with maint

13 years agoAlmost ready for 1.7.7.1
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>
13 years agoMerge branch 'nd/maint-autofix-tag-in-head' into maint
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

13 years agoMerge branch 'jc/apply-blank-at-eof-fix' into maint
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

13 years agoMerge branch 'jn/no-g-plus-s-on-bsd' into maint
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

13 years agoMerge branch 'rs/diff-cleanup-records-fix' into maint
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

13 years agoMerge branch 'il/archive-err-signal' into maint
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

13 years agoMerge branch 'js/maint-merge-one-file-osx-expr' into maint
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"

13 years agoMerge branch 'jm/maint-apply-detects-corrupt-patch-header' into maint
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

13 years agoMerge branch 'jc/checkout-from-tree-keep-local-changes' into maint
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

13 years agoMerge branch 'mm/maint-config-explicit-bool-display' into maint
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

13 years agogitweb: provide a way to customize html headers
Lénaïc Huard [Fri, 21 Oct 2011 07:09:29 +0000 (09:09 +0200)]
gitweb: provide a way to customize html headers

This allows web sites to add some specific html headers to the pages
generated by gitweb.

The new variable $site_html_head_string can be set to an html snippet that
will be inserted at the end of the <head> section of each page generated
by gitweb.

Signed-off-by: Lénaïc Huard <lenaic@lhuard.fr.eu.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agosubmodule::module_clone(): silence die() message from module_name()
Tay Ray Chuan [Fri, 21 Oct 2011 13:49:36 +0000 (21:49 +0800)]
submodule::module_clone(): silence die() message from module_name()

The die() message that may occur in module_name() is not really relevant
to the user when called from module_clone(); the latter handles the
"failure" (no submodule mapping) anyway.

Analysis of other callsites is left to future work.

Acked-by: Jens Lehmann <Jens.Lehmann@web.de>
Signed-off-by: Tay Ray Chuan <rctay89@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agosubmodule: whitespace fix
Tay Ray Chuan [Fri, 21 Oct 2011 13:49:35 +0000 (21:49 +0800)]
submodule: whitespace fix

Replace SPs with TAB.

Signed-off-by: Tay Ray Chuan <rctay89@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agopack-objects: don't traverse objects unnecessarily
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>
13 years agotests: add missing executable bits
Jeff King [Thu, 20 Oct 2011 21:58:33 +0000 (17:58 -0400)]
tests: add missing executable bits

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agogit-remote-mediawiki: don't include HTTP login/password in author
Matthieu Moy [Thu, 20 Oct 2011 17:04:59 +0000 (19:04 +0200)]
git-remote-mediawiki: don't include HTTP login/password in author

On the MediaWiki side, the author information is just the MediaWiki login
of the contributor. The import turns it into login@$wiki_name to create
the author's email address on the wiki side. But we don't want this to
include the HTTP password if it's present in the URL ...

Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>