Code

git.git
13 years agogitweb: Extract formatting of diff chunk header
Jakub Narebski [Sun, 30 Oct 2011 23:36:21 +0000 (00:36 +0100)]
gitweb: Extract formatting of diff chunk header

Refactor main parts of HTML-formatting for diff chunk headers
(formatting means here adding links and syntax hightlighting) into
separate subroutines:

 * format_unidiff_chunk_header for ordinary diff,
 * format_cc_diff_chunk_header for combined diff
   (more than one parent)

This makes format_diff_line() subroutine easier to follow.

Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agogitweb: Refactor diff body line classification
Jakub Narebski [Sun, 30 Oct 2011 23:36:20 +0000 (00:36 +0100)]
gitweb: Refactor diff body line classification

Simplify classification of diff line body in format_diff_line(),
replacing two long if-elsif chains (one for ordinary diff and one for
combined diff of a merge commit) with a single regexp match.  Refactor
this code into diff_line_class() function.

While at it:

* Fix an artifact in that $diff_class included leading space to be
  able to compose classes like this "class=\"diff$diff_class\"', even
  when $diff_class was an empty string.  This made code unnecessary
  ugly: $diff_class is now just class name or an empty string.

* Introduce "ctx" class for context lines ($diff_class was set to ""
  in this case before this commit).

Idea and initial code by Junio C Hamano, polish and testing by Jakub
Narebski.  Inspired by patch adding side-by-side diff by Kato Kazuyoshi,
which required $diff_class to be name of class without extra space.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agot7511: avoid use of reserved filename on Windows.
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>
13 years agogit-gui: fix spelling error in sshkey.tcl
Dejan Ribič [Sun, 30 Oct 2011 17:18:44 +0000 (18:18 +0100)]
git-gui: fix spelling error in sshkey.tcl

Spelling error originally reported to Ubuntu as launchpad bug #879427.

Acked-by: Erik Faye-Lund <kusmabite@gmail.com>
Signed-off-by: Dejan Ribič <dejan.ribic@gmail.com>
Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>
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 agofinish_tmp_packfile(): a helper function
Junio C Hamano [Fri, 28 Oct 2011 19:34:09 +0000 (12:34 -0700)]
finish_tmp_packfile(): a helper function

Factor out a small logic out of the private write_pack_file() function
in builtin/pack-objects.c.

This changes the order of finishing multi-pack generation slightly. The
code used to

 - adjust shared perm of temporary packfile
 - rename temporary packfile to the final name
 - update mtime of the packfile under the final name
 - adjust shared perm of temporary idxfile
 - rename temporary idxfile to the final name

but because the helper does not want to do the mtime thing, the updated
code does that step first and then all the rest.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agocreate_tmp_packfile(): a helper function
Junio C Hamano [Fri, 28 Oct 2011 18:52:14 +0000 (11:52 -0700)]
create_tmp_packfile(): a helper function

Factor out a small logic out of the private write_pack_file() function
in builtin/pack-objects.c

Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agowrite_pack_header(): a helper function
Junio C Hamano [Fri, 28 Oct 2011 18:40:48 +0000 (11:40 -0700)]
write_pack_header(): a helper function

Factor out a small logic out of the private write_pack_file() function
in builtin/pack-objects.c

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 agounpack_object_header_buffer(): clear the size field upon error
Junio C Hamano [Thu, 27 Oct 2011 18:42:57 +0000 (11:42 -0700)]
unpack_object_header_buffer(): clear the size field upon error

The callers do not use the returned size when the function says
it did not use any bytes and sets the type to OBJ_BAD, so this
should not matter in practice, but it is a good code hygiene
anyway.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agotree_entry_interesting: make use of local pointer "item"
Nguyễn Thái Ngọc Duy [Mon, 24 Oct 2011 06:36:12 +0000 (17:36 +1100)]
tree_entry_interesting: make use of local pointer "item"

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agotree_entry_interesting(): give meaningful names to return values
Nguyễn Thái Ngọc Duy [Mon, 24 Oct 2011 06:36:10 +0000 (17:36 +1100)]
tree_entry_interesting(): give meaningful names to return values

It is a basic code hygiene to avoid magic constants that are unnamed.
Besides, this helps extending the value later on for "interesting, but
cannot decide if the entry truely matches yet" (ie. prefix matches)

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoread_directory_recursive: reduce one indentation level
Nguyễn Thái Ngọc Duy [Mon, 24 Oct 2011 06:36:11 +0000 (17:36 +1100)]
read_directory_recursive: reduce one indentation level

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoget_tree_entry(): do not call find_tree_entry() on an empty tree
Junio C Hamano [Thu, 27 Oct 2011 18:18:40 +0000 (11:18 -0700)]
get_tree_entry(): do not call find_tree_entry() on an empty tree

We know we will find nothing.

This incidentally squelches false warning from gcc about potentially
uninitialized usage of t.entry fields. For an empty tree, it is true that
init_tree_desc() does not call decode_tree_entry() and the tree_desc is
left uninitialized, but find_tree_entry() only calls tree_entry_extract()
that uses the tree_desc while it has more things to read from the tree, so
the uninitialized t.entry fields are never used in such a case anyway.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agotree-walk.c: do not leak internal structure in tree_entry_len()
Nguyễn Thái Ngọc Duy [Mon, 24 Oct 2011 06:36:09 +0000 (17:36 +1100)]
tree-walk.c: do not leak internal structure in tree_entry_len()

tree_entry_len() does not simply take two random arguments and return
a tree length. The two pointers must point to a tree item structure,
or struct name_entry. Passing random pointers will return incorrect
value.

Force callers to pass struct name_entry instead of two pointers (with
hope that they don't manually construct struct name_entry themselves)

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 [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 agocache.h: put single NUL at end of struct cache_entry
René Scharfe [Tue, 25 Oct 2011 18:00:04 +0000 (20:00 +0200)]
cache.h: put single NUL at end of struct cache_entry

Since in-memory index entries are allocated individually now, the
variable slack at the end meant to provide an eight byte alignment
is not needed anymore.  Have a single NUL instead.  This saves zero
to seven bytes for an entry, depending on its filename length.

Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoread-cache.c: allocate index entries individually
René Scharfe [Mon, 24 Oct 2011 21:59:14 +0000 (23:59 +0200)]
read-cache.c: allocate index entries individually

The code to estimate the in-memory size of the index based on its on-disk
representation is subtly wrong for certain architecture-dependent struct
layouts.  Instead of fixing it, replace the code to keep the index entries
in a single large block of memory and allocate each entry separately
instead.  This is both simpler and more flexible, as individual entries
can now be freed.  Actually using that added flexibility is left for a
later patch.

Suggested-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
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 agogit-gui: include the file path in guitools confirmation dialog
Bert Wesarg [Thu, 20 Oct 2011 19:32:30 +0000 (21:32 +0200)]
git-gui: include the file path in guitools confirmation dialog

For those guitools that require a filename, display this filename when
asking the user to confirm the tool launch.

[PT: modified to use positional parameters for i18n]

Signed-off-by: Bert Wesarg <bert.wesarg@googlemail.com>
Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>
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 agocompletion: remove broken dead code from __git_heads() and __git_tags()
SZEDER Gábor [Sat, 8 Oct 2011 14:54:43 +0000 (16:54 +0200)]
completion: remove broken dead code from __git_heads() and __git_tags()

__git_heads() was introduced in 5de40f5 (Teach bash about
git-repo-config., 2006-11-27), and __git_tags() in 88e21dc (Teach bash
about completing arguments for git-tag, 2007-08-31).  As their name
suggests, __git_heads() is supposed to list only branches, and
__git_tags() only tags.

Since their introduction both of these functions consist of two
distinct parts.  The first part gets branches or tags, respectively,
from a local repositoty using 'git for-each-ref'.  The second part
queries a remote repository given as argument using 'git ls-remote'.

These remote-querying parts are broken in both functions since their
introduction, because they list both branches and tags from the remote
repository.  (The 'git ls-remote' query is not limited to list only
heads or tags, respectively, and the for loop filtering the query
results prints everything except dereferenced tags.)  This breakage
could be easily fixed by passing the '--heads' or '--tags' options or
appropriate refs patterns to the 'git ls-remote' invocations.

However, that no one noticed this breakage yet is probably not a
coincidence: neither of these two functions were used to query a
remote repository, the remote-querying parts were dead code already
upon thier introduction and remained dead ever since.

Since those parts of code are broken, are and were never used, stop
the bit-rotting and remove them.

Signed-off-by: SZEDER Gábor <szeder@ira.uka.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agocompletion: fast initial completion for config 'remote.*.fetch' value
SZEDER Gábor [Sat, 8 Oct 2011 14:54:42 +0000 (16:54 +0200)]
completion: fast initial completion for config 'remote.*.fetch' value

Refspecs for branches in a remote repository start with 'refs/heads/',
so completing those refspecs with 'git config remote.origin.fetch
<TAB>' always offers 'refs/heads/' first, because that's the unique
part of the possible refspecs.  But it does so only after querying the
remote with 'git ls-remote', which can take a while when the request
goes through some slower network to a remote server.

Don't waste the user's time and offer 'refs/heads/' right away for
'git config remote.origin.fetch <TAB>'.

The reason for putting 'refs/heads/' directly into COMPREPLY instead
of using __gitcomp() is to avoid __gitcomp() adding a trailing space.

Signed-off-by: SZEDER Gábor <szeder@ira.uka.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agocompletion: improve ls-remote output filtering in __git_refs_remotes()
SZEDER Gábor [Sat, 8 Oct 2011 14:54:41 +0000 (16:54 +0200)]
completion: improve ls-remote output filtering in __git_refs_remotes()

This follows suit of a previous patch for __git_refs(): use a
while-read loop and let bash's word splitting get rid of object names
from 'git ls-remote's output.

Signed-off-by: SZEDER Gábor <szeder@ira.uka.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agocompletion: query only refs/heads/ in __git_refs_remotes()
SZEDER Gábor [Sat, 8 Oct 2011 14:54:40 +0000 (16:54 +0200)]
completion: query only refs/heads/ in __git_refs_remotes()

__git_refs_remotes() is used to provide completion for refspecs to set
'remote.*.fetch' config variables for branches on the given remote.
So it's really only interested in refs under 'refs/heads/', but it
queries the remote for all its refs and then filters out all refs
outside of 'refs/heads/'.

Let 'git ls-remote' do the filtering.

Also remove the unused $cmd variable from __git_refs_remotes().

Signed-off-by: SZEDER Gábor <szeder@ira.uka.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agocompletion: support full refs from remote repositories
SZEDER Gábor [Sat, 8 Oct 2011 14:54:39 +0000 (16:54 +0200)]
completion: support full refs from remote repositories

When the __git_refs() completion helper function lists refs from a
local repository, it usually lists the refs' short name, except when
it needs to provide completion for words starting with refs, because
in that case it lists full ref names, see 608efb87 (bash: complete
full refs, 2008-11-28).

Add the same functionality to the code path dealing with remote
repositories, too.

Signed-off-by: SZEDER Gábor <szeder@ira.uka.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agocompletion: improve ls-remote output filtering in __git_refs()
SZEDER Gábor [Sat, 8 Oct 2011 14:54:38 +0000 (16:54 +0200)]
completion: improve ls-remote output filtering in __git_refs()

The remote-handling part of __git_refs() has a nice for loop and state
machine case statement to iterate over all words from the output of
'git ls-remote' to identify object names and ref names.  Since each
line in the output of 'git ls-remote' consists of an object name and a
ref name, we can do more effective filtering by using a while-read
loop and letting bash's word splitting take care of object names.
This way the code is easier to understand and the loop will need only
half the number of iterations than before.

Signed-off-by: SZEDER Gábor <szeder@ira.uka.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agocompletion: make refs completion consistent for local and remote repos
SZEDER Gábor [Sat, 8 Oct 2011 14:54:37 +0000 (16:54 +0200)]
completion: make refs completion consistent for local and remote repos

For a local repository the __git_refs() completion helper function
lists refs under 'refs/(tags|heads|remotes)/', plus some special refs
like HEAD and ORIG_HEAD.  For a remote repository, however, it lists
all refs.

Fix this inconsistency by specifying refs filter patterns for 'git
ls-remote' to only list refs under 'refs/(tags|heads|remotes)/'.

For now this makes it impossible to complete refs outside of
'refs/(tags|heads|remotes)/' in a remote repository, but a followup
patch will resurrect that.

Signed-off-by: SZEDER Gábor <szeder@ira.uka.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agocompletion: optimize refs completion
SZEDER Gábor [Sat, 15 Oct 2011 12:57:23 +0000 (14:57 +0200)]
completion: optimize refs completion

After a unique command or option is completed, in most cases it is a
good thing to add a trailing a space, but sometimes it doesn't make
sense, e.g. when the completed word is an option taking an argument
('--option=') or a configuration section ('core.').  Therefore the
completion script uses the '-o nospace' option to prevent bash from
automatically appending a space to unique completions, and it has the
__gitcomp() function to add that trailing space only when necessary.
See 72e5e989 (bash: Add space after unique command name is completed.,
2007-02-04), 78d4d6a2 (bash: Support unique completion on git-config.,
2007-02-04), and b3391775 (bash: Support unique completion when
possible., 2007-02-04).

__gitcomp() therefore iterates over all possible completion words it
got as argument, and checks each word whether a trailing space is
necessary or not.  This is ok for commands, options, etc., i.e. when
the number of words is relatively small, but can be noticeably slow
for large number of refs.  However, while options might or might not
need that trailing space, refs are always handled uniformly and always
get that trailing space (or a trailing '.' for 'git config
branch.<head>.').  Since refs listed by __git_refs() & co. are
separated by newline, this allows us some optimizations with
'compgen'.

So, add a specialized variant of __gitcomp() that only deals with
possible completion words separated by a newline and uniformly appends
the trailing space to all words using 'compgen -S " "' (or any other
suffix, if specified), so no iteration over all words is needed.  But
we need to fiddle with IFS, because the default IFS containing a space
would cause the added space suffix to be stripped off when compgen's
output is stored in the COMPREPLY array.  Therefore we use only
newline as IFS, hence the requirement for the newline-separated
possible completion words.

Convert all callsites of __gitcomp() where it's called with refs, i.e.
when it gets the output of either __git_refs(), __git_heads(),
__git_tags(), __git_refs2(), __git_refs_remotes(), or the odd 'git
for-each-ref' somewhere in _git_config().  Also convert callsites
where it gets other uniformly handled newline separated word lists,
i.e. either remotes from __git_remotes(), names of set configuration
variables from __git_config_get_set_variables(), stashes, or commands.

Here are some timing results for dealing with 10000 refs.
Before:

  $ refs="$(__git_refs ~/tmp/git/repo-with-10k-refs/)"
  $ time __gitcomp "$refs"

  real 0m1.134s
  user 0m1.060s
  sys 0m0.130s

After:

  $ time __gitcomp_nl "$refs"

  real 0m0.373s
  user 0m0.360s
  sys 0m0.020s

Signed-off-by: SZEDER Gábor <szeder@ira.uka.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agocompletion: document __gitcomp()
SZEDER Gábor [Sat, 8 Oct 2011 14:54:35 +0000 (16:54 +0200)]
completion: document __gitcomp()

I always forget which argument is which, and got tired of figuring it
out over and over again.

Signed-off-by: SZEDER Gábor <szeder@ira.uka.de>
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 agogit-gui: span widgets over the full file output area in the blame view
Bert Wesarg [Thu, 20 Oct 2011 19:30:30 +0000 (21:30 +0200)]
git-gui: span widgets over the full file output area in the blame view

Signed-off-by: Bert Wesarg <bert.wesarg@googlemail.com>
Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>
13 years agogit-gui: use a tristate to control the case mode in the searchbar
Bert Wesarg [Thu, 20 Oct 2011 19:27:27 +0000 (21:27 +0200)]
git-gui: use a tristate to control the case mode in the searchbar

The config is now called gui.search.case and can have the three values:
no/yes/smart. yes is the default.

It also resets the case detection in smart mode, when the entry field was
cleared by the use.

Signed-off-by: Bert Wesarg <bert.wesarg@googlemail.com>
Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>