Code

git.git
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>
13 years agoresolve_ref(): report breakage to the caller without warning
Junio C Hamano [Wed, 19 Oct 2011 20:55:49 +0000 (13:55 -0700)]
resolve_ref(): report breakage to the caller without warning

629cd3a (resolve_ref(): emit warnings for improperly-formatted references,
2011-09-15) made resolve_ref() warn against files that are found in the
directories the ref dwimmery looks at. The intent may be good, but these
messages come from a wrong level of the API hierarchy.

Instead record the breakage in "flags" whose purpose is to explain the
result of the function to the caller, who is in a much better position to
make intelligent decision based on the information.

This updates sha1_name.c::dwim_ref() to warn against such a broken
candidate only when it does not appear directly below $GIT_DIR to restore
the traditional behaviour, as we know many files directly underneath
$GIT_DIR/ are not refs.

Warning against "git show config --" with "$GIT_DIR/config does not look
like a well-formed ref" does not make sense, and we may later tweak the
dwimmery not to even consider them as candidates, but that is a longer
term topic.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoresolve_ref(): expose REF_ISBROKEN flag
Junio C Hamano [Wed, 19 Oct 2011 20:45:50 +0000 (13:45 -0700)]
resolve_ref(): expose REF_ISBROKEN flag

Instead of keeping this as an internal API, let the callers find
out the reason why resolve_ref() returned NULL is not because there
was no such file in $GIT_DIR but because a file was corrupt.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoUpdate draft release notes to 1.7.8
Junio C Hamano [Wed, 19 Oct 2011 05:03:30 +0000 (22:03 -0700)]
Update draft release notes to 1.7.8

Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agot/t3000-ls-files-others.sh: use $SHELL_PATH to run git-new-workdir script
Brandon Casey [Wed, 19 Oct 2011 16:26:02 +0000 (09:26 -0700)]
t/t3000-ls-files-others.sh: use $SHELL_PATH to run git-new-workdir script

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoMerge branch 'js/merge-edit-option'
Junio C Hamano [Wed, 19 Oct 2011 17:49:27 +0000 (10:49 -0700)]
Merge branch 'js/merge-edit-option'

* js/merge-edit-option:
  Teach merge the '[-e|--edit]' option

Conflicts:
builtin/merge.c

13 years agoMerge branch 'rs/diff-whole-function'
Junio C Hamano [Wed, 19 Oct 2011 17:49:13 +0000 (10:49 -0700)]
Merge branch 'rs/diff-whole-function'

* rs/diff-whole-function:
  diff: add option to show whole functions as context
  xdiff: factor out get_func_line()

13 years agoMerge branch 'rs/pickaxe'
Junio C Hamano [Wed, 19 Oct 2011 17:49:09 +0000 (10:49 -0700)]
Merge branch 'rs/pickaxe'

* rs/pickaxe:
  pickaxe: factor out pickaxe
  pickaxe: give diff_grep the same signature as has_changes
  pickaxe: pass diff_options to contains and has_changes
  pickaxe: factor out has_changes
  pickaxe: plug regex/kws leak
  pickaxe: plug regex leak
  pickaxe: plug diff filespec leak with empty needle

13 years agoMerge branch 'js/no-cherry-pick-head-after-punted'
Junio C Hamano [Wed, 19 Oct 2011 17:49:05 +0000 (10:49 -0700)]
Merge branch 'js/no-cherry-pick-head-after-punted'

* js/no-cherry-pick-head-after-punted:
  cherry-pick: do not give irrelevant advice when cherry-pick punted
  revert.c: defer writing CHERRY_PICK_HEAD till it is safe to do so

13 years agoMerge branch 'bk/submodule-in-recursive-merge'
Junio C Hamano [Wed, 19 Oct 2011 17:48:38 +0000 (10:48 -0700)]
Merge branch 'bk/submodule-in-recursive-merge'

* bk/submodule-in-recursive-merge:
  submodule: Search for merges only at end of recursive merge
  submodule: Demonstrate known breakage during recursive merge

13 years agoMerge branch 'jm/maint-apply-detects-corrupt-patch-header'
Junio C Hamano [Wed, 19 Oct 2011 17:48:29 +0000 (10:48 -0700)]
Merge branch 'jm/maint-apply-detects-corrupt-patch-header'

* jm/maint-apply-detects-corrupt-patch-header:
  fix "git apply --index ..." not to deref NULL

13 years agoMerge branch 'jk/config-test-cleanup'
Junio C Hamano [Wed, 19 Oct 2011 17:47:59 +0000 (10:47 -0700)]
Merge branch 'jk/config-test-cleanup'

* jk/config-test-cleanup:
  t1300: attempting to remove a non-existent .git/config is not an error

13 years agot1300: attempting to remove a non-existent .git/config is not an error
Johannes Sixt [Wed, 19 Oct 2011 07:37:06 +0000 (09:37 +0200)]
t1300: attempting to remove a non-existent .git/config is not an error

Since some tests before test number 79 ("quoting") are skipped, .git/config
does not exist and 'rm .git/config' fails. Fix this particular case.

While at it, move other instance of 'rm .git/config' that occur in this
file inside the test function to document that the test cases want to
protect themselves from remnants of earlier tests.

Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agogit-gui: set suitable extended window manager hints.
Pat Thoyts [Wed, 19 Oct 2011 13:26:29 +0000 (14:26 +0100)]
git-gui: set suitable extended window manager hints.

This patch uses recent Tk attributes support to specify the intended use of new
toplevels by setting the correct EWMH hint. This helps modern window managers
to apply sensible decoration for the tooltip and dialogs.

Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>
13 years agogit-gui: fix display of path in browser title
Bert Wesarg [Tue, 23 Nov 2010 07:37:50 +0000 (08:37 +0100)]
git-gui: fix display of path in browser title

Ensure the browser path is shown on the title with a / suffix and escape
any backslashes or newlines in path elements before display.

Signed-off-by: Bert Wesarg <bert.wesarg@googlemail.com>
Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>
13 years agoMerge branch 'bw/searching' gitgui-0.15.0
Pat Thoyts [Wed, 19 Oct 2011 12:35:30 +0000 (13:35 +0100)]
Merge branch 'bw/searching'

13 years agogit-gui: enable the smart case sensitive search only if gui.search.smartcase is true
Pat Thoyts [Wed, 19 Oct 2011 12:29:52 +0000 (13:29 +0100)]
git-gui: enable the smart case sensitive search only if gui.search.smartcase is true

Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>
13 years agogit-gui: catch invalid or complete regular expressions and treat as no match.
Pat Thoyts [Wed, 19 Oct 2011 12:22:33 +0000 (13:22 +0100)]
git-gui: catch invalid or complete regular expressions and treat as no match.

Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>
13 years agogit-gui: theme the search and line-number entry fields on blame screen
Pat Thoyts [Wed, 19 Oct 2011 11:44:39 +0000 (12:44 +0100)]
git-gui: theme the search and line-number entry fields on blame screen

Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>
13 years agoMerge branch 'js/log-show-children'
Junio C Hamano [Wed, 19 Oct 2011 04:59:12 +0000 (21:59 -0700)]
Merge branch 'js/log-show-children'

* js/log-show-children:
  log --children

13 years agoMerge branch 'cb/httpd-test-fix-port'
Junio C Hamano [Wed, 19 Oct 2011 04:59:11 +0000 (21:59 -0700)]
Merge branch 'cb/httpd-test-fix-port'

* cb/httpd-test-fix-port:
  use test number as port number

13 years agoMerge branch 'jn/gitweb-manpages'
Junio C Hamano [Wed, 19 Oct 2011 04:59:11 +0000 (21:59 -0700)]
Merge branch 'jn/gitweb-manpages'

* jn/gitweb-manpages:
  gitweb: Add gitweb manpages to 'gitweb' package in git.spec
  Documentation: Add gitweb config variables to git-config(1)
  Documentation: Link to gitweb(1) and gitweb.conf(5) in other manpages
  gitweb: Add gitweb(1) manpage for gitweb itself
  gitweb: Add gitweb.conf(5) manpage for gitweb configuration files

13 years agoMerge branch 'pt/mingw-misc-fixes'
Junio C Hamano [Wed, 19 Oct 2011 04:59:11 +0000 (21:59 -0700)]
Merge branch 'pt/mingw-misc-fixes'

* pt/mingw-misc-fixes:
  t9901: fix line-ending dependency on windows
  mingw: ensure sockets are initialized before calling gethostname
  mergetools: use the correct tool for Beyond Compare 3 on Windows
  t9300: do not run --cat-blob-fd related tests on MinGW
  git-svn: On MSYS, escape and quote SVN_SSH also if set by the user
  t9001: do not fail only due to CR/LF issues
  t1020: disable the pwd test on MinGW

13 years agoMerge branch 'md/smtp-tls-hello-again'
Junio C Hamano [Wed, 19 Oct 2011 04:59:10 +0000 (21:59 -0700)]
Merge branch 'md/smtp-tls-hello-again'

* md/smtp-tls-hello-again:
  send-email: Honour SMTP domain when using TLS

13 years agoMerge branch 'maint'
Junio C Hamano [Wed, 19 Oct 2011 04:42:41 +0000 (21:42 -0700)]
Merge branch 'maint'

* maint:
  strbuf.c: remove unnecessary strbuf_grow() from strbuf_getwholeline()

13 years agostrbuf.c: remove unnecessary strbuf_grow() from strbuf_getwholeline()
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>
13 years agolibperl-git: refactor Git::config_*
Junio C Hamano [Tue, 18 Oct 2011 09:47:01 +0000 (11:47 +0200)]
libperl-git: refactor Git::config_*

Move common parts of Git::config(), Git::config_bool(), Git::config_int()
and Git::config_path() into _config_common() helper.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoinet_ntop.c: Work around GCC 4.6's detection of uninitialized variables
Sebastian Schuberth [Tue, 18 Oct 2011 16:25:50 +0000 (18:25 +0200)]
inet_ntop.c: Work around GCC 4.6's detection of uninitialized variables

GCC 4.6 claims that

    error: 'best.len' may be used uninitialized in this function

so silence that warning which is treated as an error by also initializing
the "len" members of the struct.

Signed-off-by: Sebastian Schuberth <sschuberth@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoMakefile: ask "ls-files" to list source files if available
Junio C Hamano [Tue, 18 Oct 2011 07:26:18 +0000 (00:26 -0700)]
Makefile: ask "ls-files" to list source files if available

The [ce]tags and cscope targets used to run "find" looking for any paths
that match '*.[chS]' to feed the list of source files to downstream xargs.

Use "git ls-files" if it is already available to us, and otherwise use a
tighter "find" expression that does not list directories and does not go
into our .git directory.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agogit-gui: include the number of untracked files to stage when asking the user
Pat Thoyts [Tue, 18 Oct 2011 08:32:22 +0000 (09:32 +0100)]
git-gui: include the number of untracked files to stage when asking the user

Signed-off-by: Bert Wesarg <bert.wesarg@googlemail.com>
Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>
13 years agogit-gui: new config to control staging of untracked files
Bert Wesarg [Fri, 14 Oct 2011 19:25:21 +0000 (21:25 +0200)]
git-gui: new config to control staging of untracked files

The default is the current "ask".

Signed-off-by: Bert Wesarg <bert.wesarg@googlemail.com>
Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>
13 years agogit-gui: use "untracked" for files which are not known to git
Bert Wesarg [Fri, 14 Oct 2011 19:25:20 +0000 (21:25 +0200)]
git-gui: use "untracked" for files which are not known to git

"untracked" is the right phrase for files new to git. For example
git-status uses this phrase. Also make the question shorter.

Signed-off-by: Bert Wesarg <bert.wesarg@googlemail.com>
Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>
13 years agogit-gui: fix unintended line break in message string
Bert Wesarg [Fri, 14 Oct 2011 19:25:19 +0000 (21:25 +0200)]
git-gui: fix unintended line break in message string

Signed-off-by: Bert Wesarg <bert.wesarg@googlemail.com>
Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>
13 years agogit-gui: add search history to searchbar
Bert Wesarg [Fri, 14 Oct 2011 08:14:52 +0000 (10:14 +0200)]
git-gui: add search history to searchbar

Use the up/down keys to browse the history.

Signed-off-by: Bert Wesarg <bert.wesarg@googlemail.com>
Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>
13 years agogit-gui: add regexp search mode to the searchbar
Bert Wesarg [Fri, 14 Oct 2011 08:14:51 +0000 (10:14 +0200)]
git-gui: add regexp search mode to the searchbar

It's off by default, but can be enabled via the config gui.search.regexp.

Signed-off-by: Bert Wesarg <bert.wesarg@googlemail.com>
Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>
13 years agogit-gui: add smart case search mode in searchbar
Bert Wesarg [Fri, 14 Oct 2011 08:14:50 +0000 (10:14 +0200)]
git-gui: add smart case search mode in searchbar

Setting config gui.search.smartcase to true, the search mode in the
searchbar (from the blame view) is by default case-insensitive. But
entering an upper case letter into the search field activates the case-
sensitive search mode.

Signed-off-by: Bert Wesarg <bert.wesarg@googlemail.com>
Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>
13 years agogit-gui: handle config booleans without value
Bert Wesarg [Fri, 14 Oct 2011 08:14:49 +0000 (10:14 +0200)]
git-gui: handle config booleans without value

When git interprets a config variable without a value as bool it is considered
as true. But git-gui doesn't so until yet.

The value for boolean configs are also case-insensitive.

Signed-off-by: Bert Wesarg <bert.wesarg@googlemail.com>
Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>
13 years agogit-gui: fix multi selected file operation
Bert Wesarg [Fri, 14 Oct 2011 08:19:26 +0000 (10:19 +0200)]
git-gui: fix multi selected file operation

When staging a selection of files using Shift-Click to choose a range
of files then using Ctrl-T or the Stage To Commit menu item will stage
all the selected files. However if a non-sequential range is selected
using Ctrl-Click then all but the first name selected gets staged. This
commit fixes this to properly stage all selected files by explicitly
adding the path to the list before showing the diff.

Signed-off-by: Bert Wesarg <bert.wesarg@googlemail.com>
Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>
13 years agopack-objects: rewrite add_descendants_to_write_order() iteratively
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>
13 years agopack-objects: use unsigned int for counter and offset values
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>
13 years agopack-objects: mark add_to_write_order() as inline
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>
13 years agocontrib: add diff highlight script
Jeff King [Tue, 18 Oct 2011 04:52:20 +0000 (00:52 -0400)]
contrib: add diff highlight script

This is a simple and stupid script for highlighting
differing parts of lines in a unified diff. See the README
for a discussion of the limitations.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoUpdate draft release notes to 1.7.8
Junio C Hamano [Tue, 18 Oct 2011 05:07:57 +0000 (22:07 -0700)]
Update draft release notes to 1.7.8

Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoMerge branch 'jk/http-auth'
Junio C Hamano [Tue, 18 Oct 2011 04:37:15 +0000 (21:37 -0700)]
Merge branch 'jk/http-auth'

* jk/http-auth:
  http_init: accept separate URL parameter
  http: use hostname in credential description
  http: retry authentication failures for all http requests
  remote-curl: don't retry auth failures with dumb protocol
  improve httpd auth tests
  url: decode buffers that are not NUL-terminated

13 years agoMerge branch 'js/check-ref-format-test-mingw'
Junio C Hamano [Tue, 18 Oct 2011 04:37:15 +0000 (21:37 -0700)]
Merge branch 'js/check-ref-format-test-mingw'

* js/check-ref-format-test-mingw:
  t1402-check-ref-format: skip tests of refs beginning with slash on Windows

13 years agoMerge branch 'jk/pull-rebase-with-work-tree'
Junio C Hamano [Tue, 18 Oct 2011 04:37:14 +0000 (21:37 -0700)]
Merge branch 'jk/pull-rebase-with-work-tree'

* jk/pull-rebase-with-work-tree:
  pull,rebase: handle GIT_WORK_TREE better

Conflicts:
git-pull.sh

13 years agoMerge branch 'jk/config-test-cleanup'
Junio C Hamano [Tue, 18 Oct 2011 04:37:14 +0000 (21:37 -0700)]
Merge branch 'jk/config-test-cleanup'

* jk/config-test-cleanup:
  t1300: test mixed-case variable retrieval
  t1300: put git invocations inside test function

13 years agoMerge branch 'bc/attr-ignore-case'
Junio C Hamano [Tue, 18 Oct 2011 04:37:13 +0000 (21:37 -0700)]
Merge branch 'bc/attr-ignore-case'

* 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:
transport-helper.c

13 years agoMerge branch 'sg/completion'
Junio C Hamano [Tue, 18 Oct 2011 04:37:13 +0000 (21:37 -0700)]
Merge branch 'sg/completion'

* sg/completion:
  completion: unite --format and --pretty for 'log' and 'show'
  completion: unite --reuse-message and --reedit-message for 'notes'

13 years agoMerge branch 'mm/maint-config-explicit-bool-display'
Junio C Hamano [Tue, 18 Oct 2011 04:37:12 +0000 (21:37 -0700)]
Merge branch 'mm/maint-config-explicit-bool-display'

* mm/maint-config-explicit-bool-display:
  config: display key_delim for config --bool --get-regexp

13 years agoMerge branch 'tc/fetch-leak'
Junio C Hamano [Tue, 18 Oct 2011 04:37:12 +0000 (21:37 -0700)]
Merge branch 'tc/fetch-leak'

* tc/fetch-leak:
  fetch: plug two leaks on error exit in store_updated_refs

Conflicts:
builtin/fetch.c

13 years agoMerge branch 'jk/name-hash-dirent'
Junio C Hamano [Tue, 18 Oct 2011 04:37:11 +0000 (21:37 -0700)]
Merge branch 'jk/name-hash-dirent'

* jk/name-hash-dirent:
  fix phantom untracked files when core.ignorecase is set

13 years agoMerge branch 'ef/mingw-syslog'
Junio C Hamano [Tue, 18 Oct 2011 04:37:11 +0000 (21:37 -0700)]
Merge branch 'ef/mingw-syslog'

* ef/mingw-syslog:
  mingw: avoid using strbuf in syslog

13 years agoMerge branch 'tm/completion-push-set-upstream'
Junio C Hamano [Tue, 18 Oct 2011 04:37:11 +0000 (21:37 -0700)]
Merge branch 'tm/completion-push-set-upstream'

* tm/completion-push-set-upstream:
  completion: push --set-upstream

13 years agoMerge branch 'tm/completion-commit-fixup-squash'
Junio C Hamano [Tue, 18 Oct 2011 04:37:10 +0000 (21:37 -0700)]
Merge branch 'tm/completion-commit-fixup-squash'

* tm/completion-commit-fixup-squash:
  completion: commit --fixup and --squash
  completion: unite --reuse-message and --reedit-message handling

13 years agoMerge branch 'ph/push-to-delete-nothing'
Junio C Hamano [Tue, 18 Oct 2011 04:37:10 +0000 (21:37 -0700)]
Merge branch 'ph/push-to-delete-nothing'

* ph/push-to-delete-nothing:
  receive-pack: don't pass non-existent refs to post-{receive,update} hooks

Conflicts:
builtin/receive-pack.c

13 years agoMerge branch 'jc/checkout-from-tree-keep-local-changes'
Junio C Hamano [Tue, 18 Oct 2011 04:37:09 +0000 (21:37 -0700)]
Merge branch 'jc/checkout-from-tree-keep-local-changes'

* jc/checkout-from-tree-keep-local-changes:
  checkout $tree $path: do not clobber local changes in $path not in $tree

13 years agoMerge branch 'js/bisect-no-checkout'
Junio C Hamano [Tue, 18 Oct 2011 04:37:09 +0000 (21:37 -0700)]
Merge branch 'js/bisect-no-checkout'

* js/bisect-no-checkout:
  bisect: fix exiting when checkout failed in bisect_start()

13 years agogit-p4: stop ignoring apple filetype
Pete Wyckoff [Sun, 16 Oct 2011 14:45:49 +0000 (10:45 -0400)]
git-p4: stop ignoring apple filetype

Currently "apple" filetype is ignored explicitly, and the file is
not even included in the git repository.  This seems wrong.
Remove this, letting it be treated like a "binary" filetype.

Acked-by: Luke Diamand <luke@diamand.org>
Signed-off-by: Pete Wyckoff <pw@padd.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agogit-p4: handle files with shell metacharacters
Luke Diamand [Sun, 16 Oct 2011 14:47:52 +0000 (10:47 -0400)]
git-p4: handle files with shell metacharacters

git-p4 used to simply pass strings into system() and popen(), and
relied on the shell doing the necessary expansion. This though meant
that shell metacharacters in file names would be corrupted - for
example files with $ or space in them.

Switch to using subprocess.Popen() and friends, and pass in explicit
arrays in the places where it matters. This then avoids needing shell
expansion.

Add trivial helper functions for some common perforce operations. Add
test case.

[pw: test cleanup]

Signed-off-by: Luke Diamand <luke@diamand.org>
Signed-off-by: Pete Wyckoff <pw@padd.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agogit-p4: recognize all p4 filetypes
Pete Wyckoff [Sun, 16 Oct 2011 14:45:01 +0000 (10:45 -0400)]
git-p4: recognize all p4 filetypes

The previous code was approximate in the filetypes it recognized.
Put in the canonical list and be more careful about matching
elements of the file type.

This might change behavior in some cases, hopefully for the
better.  Windows newline mangling will now happen on all
text files.  Previously some like "text+ko" were oddly exempt.

Files with multiple combinations of modifiers, like "text+klx",
are now recognized for keyword expansion.  I expect these to be
seen only rarely.

Acked-by: Luke Diamand <luke@diamand.org>
Signed-off-by: Pete Wyckoff <pw@padd.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agogit-p4: keyword flattening fixes
Pete Wyckoff [Sun, 16 Oct 2011 14:46:52 +0000 (10:46 -0400)]
git-p4: keyword flattening fixes

Join the text before looking for keywords.  There is nothing to
prevent the p4 output marshaller from splitting in the middle of a
keyword, although it has never been known to happen.

Also remove the (?i) regexp modifier; perforce keywords are
documented as case-sensitive.

Remove the "\n" end-character match.  I don't know why that is
in there, and every keyword in a fairly large production p4 repository
always ends with a $.

Acked-by: Luke Diamand <luke@diamand.org>
Signed-off-by: Pete Wyckoff <pw@padd.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agogit-p4: handle utf16 filetype properly
Pete Wyckoff [Sat, 17 Sep 2011 23:16:14 +0000 (19:16 -0400)]
git-p4: handle utf16 filetype properly

One of the filetypes that p4 supports is utf16.  Its behavior is
odd in this case.  The data delivered through "p4 -G print" is
not encoded in utf16, although "p4 print -o" will produce the
proper utf16-encoded file.

When dealing with this filetype, discard the data from -G, and
instead read the contents directly.

An alternate approach would be to try to encode the data in
python.  That worked for true utf16 files, but for other files
marked as utf16, p4 delivers mangled text in no recognizable encoding.

Add a test case to check utf16 handling, and +k and +ko handling.

Reported-by: Chris Li <git@chrisli.org>
Acked-by: Luke Diamand <luke@diamand.org>
Signed-off-by: Pete Wyckoff <pw@padd.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agogit-p4 tests: refactor and cleanup
Pete Wyckoff [Tue, 23 Aug 2011 02:20:33 +0000 (22:20 -0400)]
git-p4 tests: refactor and cleanup

Introduce a library for functions that are common to
multiple git-p4 test files.

Be a bit more clever about starting and stopping p4d.
Specify a unique port number for each test, so that
tests can run in parallel.  Start p4d not in daemon mode,
and save the pid, to be able to kill it cleanly later.
Never kill p4d at startup; always shutdown cleanly.

Handle directory changes better.  Always chdir inside
a subshell, and remove any post-test directory changes.

Clean up whitespace, and use test_cmp and test_must_fail
more consistently.

Separate the tests related to detecting p4 branches
into their own file, and add a few more.

Acked-by: Luke Diamand <luke@diamand.org>
Signed-off-by: Pete Wyckoff <pw@padd.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years ago"rebase -i": support special-purpose editor to edit insn sheet
Peter Oberndorfer [Mon, 17 Oct 2011 20:26:23 +0000 (22:26 +0200)]
"rebase -i": support special-purpose editor to edit insn sheet

The insn sheet used by "rebase -i" is designed to be easily editable by
any text editor, but an editor that is specifically meant for it (but
is otherwise unsuitable for editing regular text files) could be useful
by allowing drag & drop reordering in a GUI environment, for example.

The GIT_SEQUENCE_EDITOR environment variable and/or the sequence.editor
configuration variable can be used to specify such an editor, while
allowing the usual editor to be used to edit commit log messages. As
usual, the environment variable takes precedence over the configuration
variable.

It is envisioned that other "sequencer" based tools will use the same
mechanism.

Signed-off-by: Peter Oberndorfer <kumbayo84@arcor.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agouse test number as port number
Clemens Buchacher [Mon, 17 Oct 2011 19:55:47 +0000 (21:55 +0200)]
use test number as port number

Test 5550 was apparently using the default port number by mistake.

Signed-off-by: Clemens Buchacher <drizzd@aon.at>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoresolve_gitlink_packed_ref(): fix mismerge
Junio C Hamano [Mon, 17 Oct 2011 18:43:30 +0000 (11:43 -0700)]
resolve_gitlink_packed_ref(): fix mismerge

2c5c66b (Merge branch 'jp/get-ref-dir-unsorted', 2011-10-10) merged a
topic that forked from the mainline before a new helper function
get_packed_refs() refactored code to read packed-refs file. The merge made
the call to the helper function with an incorrect argument. The parameter
to the function has to be a path to the submodule.

Fix the mismerge.

Helped-by: Mark Levedahl <mlevedahl@gmail.com>
Helped-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoclear_ref_cache(): inline function
Michael Haggerty [Mon, 17 Oct 2011 02:38:11 +0000 (04:38 +0200)]
clear_ref_cache(): inline function

clear_ref_cache() was only called from one place, so inline it
there.

Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agowrite_ref_sha1(): only invalidate the loose ref cache
Michael Haggerty [Mon, 17 Oct 2011 02:38:10 +0000 (04:38 +0200)]
write_ref_sha1(): only invalidate the loose ref cache

Since write_ref_sha1() can only write loose refs and cannot write
symbolic refs, there is no need for it to invalidate the packed ref
cache.

Suggested by: Martin Fick <mfick@codeaurora.org>
Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoclear_ref_cache(): extract two new functions
Michael Haggerty [Mon, 17 Oct 2011 02:38:09 +0000 (04:38 +0200)]
clear_ref_cache(): extract two new functions

Extract two new functions from clear_cached_refs():
clear_loose_ref_cache() and clear_packed_ref_cache().

Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoclear_ref_cache(): rename parameter
Michael Haggerty [Mon, 17 Oct 2011 02:38:08 +0000 (04:38 +0200)]
clear_ref_cache(): rename parameter

...for consistency with the rest of this module.

Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoinvalidate_ref_cache(): expose this function in the refs API
Michael Haggerty [Mon, 17 Oct 2011 02:38:07 +0000 (04:38 +0200)]
invalidate_ref_cache(): expose this function in the refs API

Make invalidate_ref_cache() an official part of the refs API.  It is
currently a fact of life that code outside of refs.c mucks about with
references.  This change gives such code a way of informing the refs
module that it should no longer trust its cache.

Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoinvalidate_ref_cache(): take the submodule as parameter
Michael Haggerty [Mon, 17 Oct 2011 02:38:06 +0000 (04:38 +0200)]
invalidate_ref_cache(): take the submodule as parameter

Instead of invalidating the ref cache on an all-or-nothing basis,
invalidate the cache for a specific submodule.

Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoinvalidate_ref_cache(): rename function from invalidate_cached_refs()
Michael Haggerty [Mon, 17 Oct 2011 02:38:05 +0000 (04:38 +0200)]
invalidate_ref_cache(): rename function from invalidate_cached_refs()

It is the cache that is being invalidated, not the references, and the
new name makes this unambiguous.  Rename other items analogously:

* struct cached_refs -> struct ref_cache
* cached_refs (the variable) -> ref_cache
* clear_cached_refs() -> clear_ref_cache()
* create_cached_refs() -> create_ref_cache()
* get_cached_refs() -> get_ref_cache()

Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agogitweb: Add gitweb manpages to 'gitweb' package in git.spec
Jakub Narebski [Sun, 16 Oct 2011 11:07:35 +0000 (13:07 +0200)]
gitweb: Add gitweb manpages to 'gitweb' package in git.spec

Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoDocumentation: Add gitweb config variables to git-config(1)
Jakub Narebski [Sun, 16 Oct 2011 11:07:34 +0000 (13:07 +0200)]
Documentation: Add gitweb config variables to git-config(1)

Add a list of gitweb config variables to git-config(1) manpage, just
linking to gitweb(1) or gitweb.conf(5).

Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoDocumentation: Link to gitweb(1) and gitweb.conf(5) in other manpages
Jakub Narebski [Sun, 16 Oct 2011 11:07:33 +0000 (13:07 +0200)]
Documentation: Link to gitweb(1) and gitweb.conf(5) in other manpages

Add link to gitweb(1) in "SEE ALSO" section of git-instaweb(1) manpage,
and "Ancillary Commands" section of git(1) manpage (the latter by the
way of command-list.txt file).

Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agogitweb: Add gitweb(1) manpage for gitweb itself
Jakub Narebski [Sun, 16 Oct 2011 11:07:32 +0000 (13:07 +0200)]
gitweb: Add gitweb(1) manpage for gitweb itself

Most of what is in gitweb.txt it has been pulled directly from the
README and INSTALL files of gitweb.

Current version is somewhat based on structure of SVN::Web manpage
(one of web interfaces for Subversion).

gitweb.conf(5) i.e. gitweb configuration manpage now refers to
appropriate sections in gitweb(1).  gitweb/README now refers to
gitweb/INSTALL and gitweb(1) manpage.  gitweb/INSTALL now refers to
gitweb.conf(5) and gitweb(1).

Inspired-by: Drew Northup <drew.northup@maine.edu>
Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agogitweb: Add gitweb.conf(5) manpage for gitweb configuration files
Drew Northup [Sun, 16 Oct 2011 11:07:31 +0000 (13:07 +0200)]
gitweb: Add gitweb.conf(5) manpage for gitweb configuration files

Much of what is in gitweb.conf.txt has been pulled directly from the
README file of gitweb.  The manpage was supplemented with description
of missing gitweb config variables, and with description of gitweb's
%features.

There remains a bit of redundancy, which should be reduced if
possible... but I think some of duplication of information is
inevitable.

[jn: Improved, extended, removed duplicate info from README]

Signed-off-by: Drew Northup <drew.northup@maine.edu>
Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Helped-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 [Sun, 16 Oct 2011 17:58:35 +0000 (10:58 -0700)]
Update draft release notes to 1.7.8

Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 years agoMerge git://repo.or.cz/git-gui
Junio C Hamano [Sun, 16 Oct 2011 10:01:44 +0000 (03:01 -0700)]
Merge git://repo.or.cz/git-gui

* git://repo.or.cz/git-gui:
  git-gui: incremental goto line in blame view
  git-gui: clear the goto line input when hiding
  git-gui: only accept numbers in the goto-line input
  git-gui: search and linenumber input are mutual exclusive in the blame view
  git-gui: deal with unknown files when pressing the "Stage Changed" button
  git-gui: drop the 'n' and 'Shift-n' bindings from the last patch.
  git-gui: Add keyboard shortcuts for search and goto commands in blame view.
  git-gui: Enable jumping to a specific line number in blame view.
  Fix tooltip display with multiple monitors on windows.
  Fix typo: existant->existent
  git-gui: updated translator README for current procedures.
  git-gui: warn when trying to commit on a detached head
  git-gui: Corrected a typo in the Swedish translation of 'Continue'

13 years agogit-svn: Allow certain refs to be ignored
Michael Olson [Mon, 10 Oct 2011 23:27:37 +0000 (16:27 -0700)]
git-svn: Allow certain refs to be ignored

Implement a new --ignore-refs option which specifies a regex of refs
to ignore while importing svn history.

This is a useful supplement to the --ignore-paths option, as that
option only operates on the contents of branches and tags, not the
branches and tags themselves.

Signed-off-by: Michael Olson <mwolson@gnu.org>
Acked-by: Eric Wong <normalperson@yhbt.net>