gitweb.git
http: don't always prompt for passwordStefan Naewe Fri, 4 Nov 2011 07:03:08 +0000 (08:03 +0100)

http: don't always prompt for password

When a username is already specified at the beginning of any HTTP
transaction (e.g. "git push https://user@hosting.example.com/project.git"
or "git ls-remote https://user@hosting.example.com/project.git"), the code
interactively asks for a password before calling into the libcurl library.
It is very likely that the reason why user included the username in the
URL is because the user knows that it would require authentication to
access the resource. Asking for the password upfront would save one
roundtrip to get a 401 response, getting the password and then retrying
the request. This is a reasonable optimization.

HOWEVER.

This is done even when $HOME/.netrc might have a corresponding entry to
access the site, or the site does not require authentication to access the
resource after all. But neither condition can be determined until we call
into libcurl library (we do not read and parse $HOME/.netrc ourselves). In
these cases, the user is forced to respond to the password prompt, only to
give a password that is not used in the HTTP transaction. If the password
is in $HOME/.netrc, an empty input would later let the libcurl layer to
pick up the password from there, and if the resource does not require
authentication, any input would be taken and then discarded without
getting used. It is wasteful to ask this unused information to the end
user.

Reduce the confusion by not trying to optimize for this case and always
incur roundtrip penalty. An alternative might be to document this and keep
this round-trip optimization as-is.

Signed-off-by: Stefan Naewe <stefan.naewe@gmail.com>
Helped-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge 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

Merge 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

Merge 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

Merge 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

Merge 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

Merge 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'

Merge 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

Merge 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

Merge 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

Merge 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

Merge 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

Merge 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

Merge 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

Merge 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

Merge 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()

resolve_gitlink_packed_ref(): fix mismergeJunio 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>

Update draft release notes to 1.7.8Junio 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>

Merge git://repo.or.cz/git-guiJunio 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'

git-svn: Allow certain refs to be ignoredMichael 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>

git svn dcommit: new option --interactive.Frédéric Heitzmann Fri, 16 Sep 2011 21:02:01 +0000 (23:02 +0200)

git svn dcommit: new option --interactive.

Allow the user to check the patch set before it is commited to SVN. It is
then possible to accept/discard one patch, accept all, or quit.

This interactive mode is similar with 'git send email' behaviour. However,
'git svn dcommit' returns as soon as one patch is discarded.
Part of the code was taken from git-send-email.perl (see 'ask' function)

Tests several combinations of potential answers to
'git svn dcommit --interactive'. For each of them, test whether patches
were commited to SVN or not.

Thanks-to Eric Wong <normalperson@yhbt.net> for the initial idea.

Acked-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Frédéric Heitzmann <frederic.heitzmann@gmail.com>

http_init: accept separate URL parameterJeff King Fri, 14 Oct 2011 07:40:40 +0000 (09:40 +0200)

http_init: accept separate URL parameter

The http_init function takes a "struct remote". Part of its
initialization procedure is to look at the remote's url and
grab some auth-related parameters. However, using the url
included in the remote is:

- wrong; the remote-curl helper may have a separate,
unrelated URL (e.g., from remote.*.pushurl). Looking at
the remote's configured url is incorrect.

- incomplete; http-fetch doesn't have a remote, so passes
NULL. So http_init never gets to see the URL we are
actually going to use.

- cumbersome; http-push has a similar problem to
http-fetch, but actually builds a fake remote just to
pass in the URL.

Instead, let's just add a separate URL parameter to
http_init, and all three callsites can pass in the
appropriate information.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

http: use hostname in credential descriptionMichael J Gruber Fri, 14 Oct 2011 07:40:39 +0000 (09:40 +0200)

http: use hostname in credential description

Until now, a request for an http password looked like:

Username:
Password:

Now it will look like:

Username for 'example.com':
Password for 'example.com':

Picked-from: Jeff King <peff@peff.net>
Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Sync with maintJunio C Hamano Sun, 16 Oct 2011 03:56:50 +0000 (20:56 -0700)

Sync with maint

Signed-off-by: Junio C Hamano <gitster@pobox.com>

Prepare for 1.7.7.1Junio C Hamano Sun, 16 Oct 2011 03:55:12 +0000 (20:55 -0700)

Prepare for 1.7.7.1

Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'ms/patch-id-with-overlong-line' into... Junio C Hamano Sun, 16 Oct 2011 03:46:39 +0000 (20:46 -0700)

Merge branch 'ms/patch-id-with-overlong-line' into maint

* ms/patch-id-with-overlong-line:
patch-id.c: use strbuf instead of a fixed buffer

Merge branch 'jc/maint-bundle-too-quiet' into maintJunio C Hamano Sun, 16 Oct 2011 03:46:39 +0000 (20:46 -0700)

Merge branch 'jc/maint-bundle-too-quiet' into maint

* jc/maint-bundle-too-quiet:
Teach progress eye-candy to fetch_refs_from_bundle()

Merge branch 'jk/filter-branch-require-clean-work-tree... Junio C Hamano Sun, 16 Oct 2011 03:46:38 +0000 (20:46 -0700)

Merge branch 'jk/filter-branch-require-clean-work-tree' into maint

* jk/filter-branch-require-clean-work-tree:
filter-branch: use require_clean_work_tree

Merge branch 'jc/maint-fsck-fwrite-size-check' into... Junio C Hamano Sun, 16 Oct 2011 03:46:38 +0000 (20:46 -0700)

Merge branch 'jc/maint-fsck-fwrite-size-check' into maint

* jc/maint-fsck-fwrite-size-check:
fsck: do not abort upon finding an empty blob

Merge branch 'bk/ancestry-path' into maintJunio C Hamano Sun, 16 Oct 2011 03:46:38 +0000 (20:46 -0700)

Merge branch 'bk/ancestry-path' into maint

* bk/ancestry-path:
t6019: avoid refname collision on case-insensitive systems
revision: do not include sibling history in --ancestry-path output
revision: keep track of the end-user input from the command line
rev-list: Demonstrate breakage with --ancestry-path --all

Merge branch 'jk/maint-fetch-submodule-check-fix' into... Junio C Hamano Sun, 16 Oct 2011 03:46:38 +0000 (20:46 -0700)

Merge branch 'jk/maint-fetch-submodule-check-fix' into maint

* jk/maint-fetch-submodule-check-fix:
fetch: avoid quadratic loop checking for updated submodules

Merge branch 'tr/mergetool-valgrind' into maintJunio C Hamano Sun, 16 Oct 2011 03:46:37 +0000 (20:46 -0700)

Merge branch 'tr/mergetool-valgrind' into maint

* tr/mergetool-valgrind:
Symlink mergetools scriptlets into valgrind wrappers

Merge branch 'nm/grep-object-sha1-lock' into maintJunio C Hamano Sun, 16 Oct 2011 03:46:37 +0000 (20:46 -0700)

Merge branch 'nm/grep-object-sha1-lock' into maint

* nm/grep-object-sha1-lock:
grep: Fix race condition in delta_base_cache

Conflicts:
builtin/grep.c

Merge branch 'jc/diff-index-unpack' into maintJunio C Hamano Sun, 16 Oct 2011 03:46:36 +0000 (20:46 -0700)

Merge branch 'jc/diff-index-unpack' into maint

* jc/diff-index-unpack:
diff-index: pass pathspec down to unpack-trees machinery
unpack-trees: allow pruning with pathspec
traverse_trees(): allow pruning with pathspec

Merge branch 'mm/rebase-i-exec-edit' into maintJunio C Hamano Sun, 16 Oct 2011 03:46:36 +0000 (20:46 -0700)

Merge branch 'mm/rebase-i-exec-edit' into maint

* mm/rebase-i-exec-edit:
rebase -i: notice and warn if "exec $cmd" modifies the index or the working tree
rebase -i: clean error message for --continue after failed exec

Merge branch 'jc/grep-untracked-exclude'Junio C Hamano Sun, 16 Oct 2011 03:27:19 +0000 (20:27 -0700)

Merge branch 'jc/grep-untracked-exclude'

* jc/grep-untracked-exclude:
grep: fix the error message that mentions --exclude

Merge branch 'jc/maint-grep-untracked-exclude' into... Junio C Hamano Sun, 16 Oct 2011 03:26:52 +0000 (20:26 -0700)

Merge branch 'jc/maint-grep-untracked-exclude' into jc/grep-untracked-exclude

* jc/maint-grep-untracked-exclude:
grep: fix the error message that mentions --exclude

Conflicts:
builtin/grep.c

grep: fix the error message that mentions --excludeBert Wesarg Sat, 15 Oct 2011 18:36:22 +0000 (20:36 +0200)

grep: fix the error message that mentions --exclude

Missing rename from --exclude to --standard-exclude.

Signed-off-by: Bert Wesarg <bert.wesarg@googlemail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-gui: incremental goto line in blame viewBert Wesarg Thu, 13 Oct 2011 13:48:15 +0000 (15:48 +0200)

git-gui: incremental goto line in blame view

The view jumps now to the given line number after each key press.

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

git-gui: clear the goto line input when hidingBert Wesarg Thu, 13 Oct 2011 13:48:13 +0000 (15:48 +0200)

git-gui: clear the goto line input when hiding

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

git-gui: only accept numbers in the goto-line inputBert Wesarg Thu, 13 Oct 2011 13:48:14 +0000 (15:48 +0200)

git-gui: only accept numbers in the goto-line input

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

git-gui: search and linenumber input are mutual exclusi... Bert Wesarg Thu, 13 Oct 2011 13:48:12 +0000 (15:48 +0200)

git-gui: search and linenumber input are mutual exclusive in the blame view

It was possible to open the search input (Ctrl+S) and the goto-line input
(Ctrl+G) at the same time. Prevent this.

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

send-email: Fix %config_path_settings handlingCord Seele Fri, 14 Oct 2011 20:53:31 +0000 (22:53 +0200)

send-email: Fix %config_path_settings handling

cec5dae (use new Git::config_path() for aliasesfile, 2011-09-30) broke
the expansion of aliases.

This was caused by treating %config_path_settings, newly introduced in
said patch, like %config_bool_settings instead of like %config_settings.
Copy from %config_settings, making it more readable.

While at it add basic test for expansion of aliases, and for path
expansion, which would catch this error.

Nb. there were a few issues that were responsible for this error:

1. %config_bool_settings and %config_settings despite similar name have
different semantic.

%config_bool_settings values are arrays where the first element is
(reference to) the variable to set, and second element is default
value... which admittedly is a bit cryptic. More readable if more
verbose option would be to use hash reference, e.g.:

my %config_bool_settings = (
"thread" => { variable => \$thread, default => 1},
[...]

%config_settings values are either either reference to scalar variable
or reference to array. In second case it means that option (or config
option) is multi-valued. BTW. this is similar to what Getopt::Long does.

2. In cec5dae (use new Git::config_path() for aliasesfile, 2011-09-30)
the setting "aliasesfile" was moved from %config_settings to newly
introduced %config_path_settings. But the loop that parses settings
from %config_path_settings was copy'n'pasted *wrongly* from
%config_bool_settings instead of from %config_settings.

It looks like cec5dae author cargo-culted this change...

3. 994d6c6 (send-email: address expansion for common mailers, 2006-05-14)
didn't add test for alias expansion to t9001-send-email.sh

Signed-off-by: Cord Seele <cowose@gmail.com>
Tested-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'maint'Junio C Hamano Fri, 14 Oct 2011 19:51:24 +0000 (12:51 -0700)

Merge branch 'maint'

* maint:
t1304: fall back to $USER if $LOGNAME is not defined

t1304: fall back to $USER if $LOGNAME is not definedRené Scharfe Fri, 14 Oct 2011 17:44:45 +0000 (19:44 +0200)

t1304: fall back to $USER if $LOGNAME is not defined

For some reason $LOGNAME is not set anymore for me after an upgrade from
Ubuntu 11.04 to 11.10. Use $USER in such a case.

Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Update draft release notes to 1.7.8Junio C Hamano Fri, 14 Oct 2011 05:15:39 +0000 (22:15 -0700)

Update draft release notes to 1.7.8

Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'js/maint-merge-one-file-osx-expr'Junio C Hamano Fri, 14 Oct 2011 02:03:24 +0000 (19:03 -0700)

Merge branch 'js/maint-merge-one-file-osx-expr'

* js/maint-merge-one-file-osx-expr:
merge-one-file: fix "expr: non-numeric argument"

Merge branch 'jn/ident-from-etc-mailname'Junio C Hamano Fri, 14 Oct 2011 02:03:24 +0000 (19:03 -0700)

Merge branch 'jn/ident-from-etc-mailname'

* jn/ident-from-etc-mailname:
ident: do not retrieve default ident when unnecessary
ident: check /etc/mailname if email is unknown

Merge branch 'il/archive-err-signal'Junio C Hamano Fri, 14 Oct 2011 02:03:23 +0000 (19:03 -0700)

Merge branch 'il/archive-err-signal'

* il/archive-err-signal:
Support ERR in remote archive like in fetch/push

Merge branch 'jc/grep-untracked-exclude'Junio C Hamano Fri, 14 Oct 2011 02:03:23 +0000 (19:03 -0700)

Merge branch 'jc/grep-untracked-exclude'

* jc/grep-untracked-exclude:
grep: teach --untracked and --exclude-standard options

Merge branch 'rs/diff-cleanup-records-fix'Junio C Hamano Fri, 14 Oct 2011 02:03:22 +0000 (19:03 -0700)

Merge branch 'rs/diff-cleanup-records-fix'

* rs/diff-cleanup-records-fix:
diff: resurrect XDF_NEED_MINIMAL with --minimal
Revert removal of multi-match discard heuristic in 27af01

Merge branch 'rs/pending'Junio C Hamano Fri, 14 Oct 2011 02:03:22 +0000 (19:03 -0700)

Merge branch 'rs/pending'

* rs/pending:
commit: factor out clear_commit_marks_for_object_array
checkout: use leak_pending flag
bundle: use leak_pending flag
bisect: use leak_pending flag
revision: add leak_pending flag
checkout: use add_pending_{object,sha1} in orphan check
revision: factor out add_pending_sha1
checkout: check for "Previous HEAD" notice in t2020

Conflicts:
builtin/checkout.c
revision.c

Merge branch 'jn/no-g-plus-s-on-bsd'Junio C Hamano Fri, 14 Oct 2011 02:03:21 +0000 (19:03 -0700)

Merge branch 'jn/no-g-plus-s-on-bsd'

* jn/no-g-plus-s-on-bsd:
Makefile: do not set setgid bit on directories on GNU/kFreeBSD

Merge branch 'jc/is-url-simplify'Junio C Hamano Fri, 14 Oct 2011 02:03:21 +0000 (19:03 -0700)

Merge branch 'jc/is-url-simplify'

* jc/is-url-simplify:
url.c: simplify is_url()

Merge branch 'nd/git-daemon-error-msgs'Junio C Hamano Fri, 14 Oct 2011 02:03:21 +0000 (19:03 -0700)

Merge branch 'nd/git-daemon-error-msgs'

* nd/git-daemon-error-msgs:
daemon: return "access denied" if a service is not allowed

Merge branch 'nd/daemon-log-sock-errors'Junio C Hamano Fri, 14 Oct 2011 02:03:21 +0000 (19:03 -0700)

Merge branch 'nd/daemon-log-sock-errors'

* nd/daemon-log-sock-errors:
daemon: log errors if we could not use some sockets

Merge branch 'cp/git-web-browse-browsers'Junio C Hamano Fri, 14 Oct 2011 02:03:20 +0000 (19:03 -0700)

Merge branch 'cp/git-web-browse-browsers'

* cp/git-web-browse-browsers:
git-web--browse: avoid the use of eval

Merge branch 'jc/apply-blank-at-eof-fix'Junio C Hamano Fri, 14 Oct 2011 02:03:20 +0000 (19:03 -0700)

Merge branch 'jc/apply-blank-at-eof-fix'

* jc/apply-blank-at-eof-fix:
apply --whitespace=error: correctly report new blank lines at end

Merge branch 'di/fast-import-empty-tag-note-fix'Junio C Hamano Fri, 14 Oct 2011 02:03:19 +0000 (19:03 -0700)

Merge branch 'di/fast-import-empty-tag-note-fix'

* di/fast-import-empty-tag-note-fix:
fast-import: don't allow to note on empty branch
fast-import: don't allow to tag empty branch

Merge branch 'nd/maint-autofix-tag-in-head'Junio C Hamano Fri, 14 Oct 2011 02:03:19 +0000 (19:03 -0700)

Merge branch 'nd/maint-autofix-tag-in-head'

* 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

Merge branch 'bw/grep-no-index-no-exclude'Junio C Hamano Fri, 14 Oct 2011 02:03:18 +0000 (19:03 -0700)

Merge branch 'bw/grep-no-index-no-exclude'

* bw/grep-no-index-no-exclude:
grep --no-index: don't use git standard exclusions
grep: do not use --index in the short usage output

Merge branch 'nd/maint-sparse-errors'Junio C Hamano Fri, 14 Oct 2011 02:03:18 +0000 (19:03 -0700)

Merge branch 'nd/maint-sparse-errors'

* nd/maint-sparse-errors:
Add explanation why we do not allow to sparse checkout to empty working tree
sparse checkout: show error messages when worktree shaping fails

t1402-check-ref-format: skip tests of refs beginning... Johannes Sixt Thu, 13 Oct 2011 08:06:20 +0000 (10:06 +0200)

t1402-check-ref-format: skip tests of refs beginning with slash on Windows

Bash on Windows converts program arguments that look like absolute POSIX
paths to their Windows form, i.e., drive-letter-colon format. For this
reason, those tests in t1402 that check refs that begin with a slash do not
work as expected on Windows: valid_ref tests are doomed to fail, and
invalid_ref tests fail for the wrong reason (that there is a colon rather
than that they begin with a slash).

Skip these tests.

Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

pull,rebase: handle GIT_WORK_TREE betterJeff King Thu, 13 Oct 2011 15:59:24 +0000 (11:59 -0400)

pull,rebase: handle GIT_WORK_TREE better

You can't currently run git-pull or git-rebase from outside
of the work tree, even with GIT_WORK_TREE set, due to an
overeager require_work_tree function. Commit e2eb527
documents this problem and provides the infrastructure for a
fix, but left it to later commits to audit and update
individual scripts.

Changing these scripts to use require_work_tree_exists is
easy to verify. We immediately call cd_to_toplevel, anyway.
Therefore no matter which function we use, the state
afterwards is one of:

1. We have a work tree, and we are at the top level.

2. We don't have a work tree, and we have died.

The only catch is that we must also make sure no code that
ran before the cd_to_toplevel assumed that we were already
in the working tree.

In this case, we will only have included shell libraries and
called set_reflog_action, neither of which care about the
current working directory at all.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Update draft release notes to 1.7.8Junio C Hamano Wed, 12 Oct 2011 19:42:44 +0000 (12:42 -0700)

Update draft release notes to 1.7.8

Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'cb/do-not-pretend-to-hijack-long-help'Junio C Hamano Wed, 12 Oct 2011 19:34:30 +0000 (12:34 -0700)

Merge branch 'cb/do-not-pretend-to-hijack-long-help'

* cb/do-not-pretend-to-hijack-long-help:
use -h for synopsis and --help for manpage consistently

Merge branch 'sp/smart-http-failure'Junio C Hamano Wed, 12 Oct 2011 19:34:27 +0000 (12:34 -0700)

Merge branch 'sp/smart-http-failure'

* sp/smart-http-failure:
remote-curl: Fix warning after HTTP failure

Merge branch 'nd/document-err-packet'Junio C Hamano Wed, 12 Oct 2011 19:34:18 +0000 (12:34 -0700)

Merge branch 'nd/document-err-packet'

* nd/document-err-packet:
pack-protocol: document "ERR" line

Merge branch 'jc/parse-options-boolean'Junio C Hamano Wed, 12 Oct 2011 19:34:15 +0000 (12:34 -0700)

Merge branch 'jc/parse-options-boolean'

* jc/parse-options-boolean:
apply: use OPT_NOOP_NOARG
revert: use OPT_NOOP_NOARG
parseopt: add OPT_NOOP_NOARG
archive.c: use OPT_BOOL()
parse-options: deprecate OPT_BOOLEAN

Conflicts:
builtin/revert.c

Merge branch 'rs/test-ctype'Junio C Hamano Wed, 12 Oct 2011 19:34:11 +0000 (12:34 -0700)

Merge branch 'rs/test-ctype'

* rs/test-ctype:
test-ctype: add test for is_pathspec_magic
test-ctype: macrofy

Merge branch 'rs/name-rev-usage'Junio C Hamano Wed, 12 Oct 2011 19:34:08 +0000 (12:34 -0700)

Merge branch 'rs/name-rev-usage'

* rs/name-rev-usage:
name-rev: split usage string

Merge branch 'cs/perl-config-path-send-email'Junio C Hamano Wed, 12 Oct 2011 19:34:05 +0000 (12:34 -0700)

Merge branch 'cs/perl-config-path-send-email'

* cs/perl-config-path-send-email:
use new Git::config_path() for aliasesfile
Add Git::config_path()

Merge branch 'zj/send-email-authen-sasl'Junio C Hamano Wed, 12 Oct 2011 19:34:03 +0000 (12:34 -0700)

Merge branch 'zj/send-email-authen-sasl'

* zj/send-email-authen-sasl:
send-email: auth plain/login fix

t5403: convert leading spaces to tabsNguyễn Thái Ngọc Duy Wed, 12 Oct 2011 09:35:04 +0000 (20:35 +1100)

t5403: convert leading spaces to tabs

The first and last tests use tabs. The rest uses spaces. Convert all
to tabs.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t1300: test mixed-case variable retrievalJeff King Wed, 12 Oct 2011 18:30:02 +0000 (14:30 -0400)

t1300: test mixed-case variable retrieval

We should be able to ask for a config value both by its
canonical all-lowercase name (as git does internally), as
well as by random mixed-case (which will be canonicalized by
git-config for us).

Subsections are a tricky point, though. Since we have both

[section "Foo"]

and

[section.Foo]

you might want git-config to canonicalize the subsection or
not, depending on which you are expecting. But there's no
way to communicate this; git-config sees only the key, and
doesn't know which type of section name will be in the
config file.

So it must leave the subsection intact, and it is up to the
caller to provide a canonical version of the subsection if
they want to match the latter form.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t1300: put git invocations inside test functionJeff King Wed, 12 Oct 2011 18:29:20 +0000 (14:29 -0400)

t1300: put git invocations inside test function

This is a very old script, and did a lot of:

echo whatever >expect
git config foo bar
test_expect_success 'cmp .git/config expect'

which meant that we didn't actually check that the call to
git-config succeeded. Fix this, and while we're at it,
modernize the style to use test_cmp.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

attr.c: respect core.ignorecase when matching attribute... Brandon Casey Tue, 11 Oct 2011 15:53:31 +0000 (10:53 -0500)

attr.c: respect core.ignorecase when matching attribute patterns

When core.ignorecase is true, the file globs configured in the
.gitattributes file should be matched case-insensitively against the paths
in the working directory. Let's do so.

Plus, add some tests.

The last set of tests is performed only on a case-insensitive filesystem.
Those tests make sure that git handles the case where the .gitignore file
resides in a subdirectory and the user supplies a path that does not match
the case in the filesystem. In that case^H^H^H^Hsituation, part of the
path supplied by the user is effectively interpreted case-insensitively,
and part of it is dependent on the setting of core.ignorecase. git will
currently only match the portion of the path below the directory holding
the .gitignore file according to the setting of core.ignorecase.

This is also partly future-proofing. Currently, git builds the attr stack
based on the path supplied by the user, so we don't have to do anything
special (like use strcmp_icase) to handle the parts of that path that don't
match the filesystem with respect to case. If git instead built the attr
stack by scanning the repository, then the paths in the origin field would
not necessarily match the paths supplied by the user. If someone makes a
change like that in the future, these tests will notice.

Signed-off-by: Brandon Casey <drafnel@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Update draft release notes to 1.7.8Junio C Hamano Mon, 10 Oct 2011 23:14:59 +0000 (16:14 -0700)

Update draft release notes to 1.7.8

Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'dm/tree-walk'Junio C Hamano Mon, 10 Oct 2011 22:56:20 +0000 (15:56 -0700)

Merge branch 'dm/tree-walk'

* dm/tree-walk:
tree-walk: micro-optimization in tree_entry_interesting
tree-walk: drop unused parameter from match_dir_prefix

Merge branch 'ps/gitweb-js-with-lineno'Junio C Hamano Mon, 10 Oct 2011 22:56:20 +0000 (15:56 -0700)

Merge branch 'ps/gitweb-js-with-lineno'

* ps/gitweb-js-with-lineno:
gitweb: Fix links to lines in blobs when javascript-actions are enabled

Merge branch 'mh/maint-notes-merge-pathbuf-fix'Junio C Hamano Mon, 10 Oct 2011 22:56:20 +0000 (15:56 -0700)

Merge branch 'mh/maint-notes-merge-pathbuf-fix'

* mh/maint-notes-merge-pathbuf-fix:
notes_merge_commit(): do not pass temporary buffer to other function

Merge branch 'nd/sparse-doc'Junio C Hamano Mon, 10 Oct 2011 22:56:20 +0000 (15:56 -0700)

Merge branch 'nd/sparse-doc'

* nd/sparse-doc:
git-read-tree.txt: update sparse checkout examples

Merge branch 'jp/get-ref-dir-unsorted'Junio C Hamano Mon, 10 Oct 2011 22:56:19 +0000 (15:56 -0700)

Merge branch 'jp/get-ref-dir-unsorted'

* jp/get-ref-dir-unsorted:
refs.c: free duplicate entries in the ref array instead of leaking them
refs.c: abort ref search if ref array is empty
refs.c: ensure struct whose member may be passed to realloc is initialized
refs: Use binary search to lookup refs faster
Don't sort ref_list too early

Conflicts:
refs.c

Merge branch 'mh/check-ref-format-3'Junio C Hamano Mon, 10 Oct 2011 22:56:18 +0000 (15:56 -0700)

Merge branch 'mh/check-ref-format-3'

* mh/check-ref-format-3: (23 commits)
add_ref(): verify that the refname is formatted correctly
resolve_ref(): expand documentation
resolve_ref(): also treat a too-long SHA1 as invalid
resolve_ref(): emit warnings for improperly-formatted references
resolve_ref(): verify that the input refname has the right format
remote: avoid passing NULL to read_ref()
remote: use xstrdup() instead of strdup()
resolve_ref(): do not follow incorrectly-formatted symbolic refs
resolve_ref(): extract a function get_packed_ref()
resolve_ref(): turn buffer into a proper string as soon as possible
resolve_ref(): only follow a symlink that contains a valid, normalized refname
resolve_ref(): use prefixcmp()
resolve_ref(): explicitly fail if a symlink is not readable
Change check_refname_format() to reject unnormalized refnames
Inline function refname_format_print()
Make collapse_slashes() allocate memory for its result
Do not allow ".lock" at the end of any refname component
Refactor check_refname_format()
Change check_ref_format() to take a flags argument
Change bad_ref_char() to return a boolean value
...

Merge branch 'mh/iterate-refs'Junio C Hamano Mon, 10 Oct 2011 22:56:18 +0000 (15:56 -0700)

Merge branch 'mh/iterate-refs'

* mh/iterate-refs:
refs.c: make create_cached_refs() static
Retain caches of submodule refs
Store the submodule name in struct cached_refs
Allocate cached_refs objects dynamically
Change the signature of read_packed_refs()
Access reference caches only through new function get_cached_refs()
Extract a function clear_cached_refs()

Merge branch 'jm/mergetool-pathspec'Junio C Hamano Mon, 10 Oct 2011 22:56:18 +0000 (15:56 -0700)

Merge branch 'jm/mergetool-pathspec'

* jm/mergetool-pathspec:
mergetool: no longer need to save standard input
mergetool: Use args as pathspec to unmerged files

Merge branch 'jc/maint-diffstat-numstat-context'Junio C Hamano Mon, 10 Oct 2011 22:56:18 +0000 (15:56 -0700)

Merge branch 'jc/maint-diffstat-numstat-context'

* jc/maint-diffstat-numstat-context:
diff: teach --stat/--numstat to honor -U$num

Merge branch 'mz/remote-rename'Junio C Hamano Mon, 10 Oct 2011 22:56:17 +0000 (15:56 -0700)

Merge branch 'mz/remote-rename'

* 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'

Merge branch 'cb/common-prefix-unification'Junio C Hamano Mon, 10 Oct 2011 22:56:17 +0000 (15:56 -0700)

Merge branch 'cb/common-prefix-unification'

* cb/common-prefix-unification:
rename pathspec_prefix() to common_prefix() and move to dir.[ch]
consolidate pathspec_prefix and common_prefix
remove prefix argument from pathspec_prefix

Merge branch 'jn/maint-http-error-message'Junio C Hamano Mon, 10 Oct 2011 22:56:17 +0000 (15:56 -0700)

Merge branch 'jn/maint-http-error-message'

* jn/maint-http-error-message:
http: avoid empty error messages for some curl errors
http: remove extra newline in error message

Merge branch 'hv/submodule-update-none'Junio C Hamano Mon, 10 Oct 2011 22:56:17 +0000 (15:56 -0700)

Merge branch 'hv/submodule-update-none'

* hv/submodule-update-none:
add update 'none' flag to disable update of submodule by default
submodule: move update configuration variable further up

Merge branch 'fg/submodule-git-file-git-dir'Junio C Hamano Mon, 10 Oct 2011 22:56:16 +0000 (15:56 -0700)

Merge branch 'fg/submodule-git-file-git-dir'

* fg/submodule-git-file-git-dir:
Move git-dir for submodules
rev-parse: add option --resolve-git-dir <path>

Conflicts:
cache.h
git-submodule.sh

config: display key_delim for config --bool --get-regexpMatthieu Moy Mon, 10 Oct 2011 12:54:51 +0000 (14:54 +0200)

config: display key_delim for config --bool --get-regexp

The previous logic in show_config was to print the delimiter when the
value was set, but Boolean variables have an implicit value "true" when
they appear with no value in the config file. As a result, we got:

git_Config --get-regexp '.*\.Boolean' #1. Ok: example.boolean
git_Config --bool --get-regexp '.*\.Boolean' #2. NO: example.booleantrue

Fix this by defering the display of the separator until after the value
to display has been computed.

Reported-by: Brian Foster <brian.foster@maxim-ic.com>
Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

refs.c: free duplicate entries in the ref array instead... Brandon Casey Sat, 8 Oct 2011 03:20:22 +0000 (22:20 -0500)

refs.c: free duplicate entries in the ref array instead of leaking them

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

refs.c: abort ref search if ref array is emptyBrandon Casey Sat, 8 Oct 2011 03:20:21 +0000 (22:20 -0500)

refs.c: abort ref search if ref array is empty

The bsearch() implementation on IRIX 6.5 segfaults if it is passed NULL
for the base array argument even if number-of-elements is zero. So, let's
work around it by detecting an empty array and aborting early.

This is a useful optimization in its own right anyway, since we avoid a
useless allocation and initialization of the ref_entry when the ref array
is empty.

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

refs.c: ensure struct whose member may be passed to... Brandon Casey Sat, 8 Oct 2011 03:20:20 +0000 (22:20 -0500)

refs.c: ensure struct whose member may be passed to realloc is initialized

The variable "refs" is allocated on the stack but is not initialized. It
is passed to read_packed_refs(), and its struct members may eventually be
passed to add_ref() and ALLOC_GROW(). Since the structure has not been
initialized, its members may contain random non-zero values. So let's
initialize it.

The call sequence looks something like this:

resolve_gitlink_packed_ref(...) {

struct cached_refs refs;
...
read_packed_refs(f, &refs);
...
}

read_packed_refs(FILE*, struct cached_refs *cached_refs) {
...
add_ref(name, sha1, flag, &cached_refs->packed, &last);
...
}

add_ref(..., struct ref_array *refs, struct ref_entry **) {
...
ALLOC_GROW(refs->refs, refs->nr + 1, refs->alloc);
}

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

completion: unite --format and --pretty for 'log' and... SZEDER Gábor Sat, 8 Oct 2011 01:09:34 +0000 (03:09 +0200)

completion: unite --format and --pretty for 'log' and 'show'

Signed-off-by: SZEDER Gábor <szeder@ira.uka.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

completion: unite --reuse-message and --reedit-message... SZEDER Gábor Sat, 8 Oct 2011 01:06:34 +0000 (03:06 +0200)

completion: unite --reuse-message and --reedit-message for 'notes'

Signed-off-by: SZEDER Gábor <szeder@ira.uka.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Fix some "variable might be used uninitialized" warningsRamsay Jones Sun, 11 Sep 2011 19:39:32 +0000 (20:39 +0100)

Fix some "variable might be used uninitialized" warnings

In particular, gcc complains as follows:

CC tree-walk.o
tree-walk.c: In function `traverse_trees':
tree-walk.c:347: warning: 'e' might be used uninitialized in this \
function

CC builtin/revert.o
builtin/revert.c: In function `verify_opt_mutually_compatible':
builtin/revert.c:113: warning: 'opt2' might be used uninitialized in \
this function

Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Makefile: fix permissions of mergetools/ checked out... Junio C Hamano Sun, 9 Oct 2011 19:59:44 +0000 (12:59 -0700)

Makefile: fix permissions of mergetools/ checked out with permissive umask

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>