Stefan 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>
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
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
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
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
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
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'
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
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
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
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
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
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
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
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
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()
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>
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>
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'
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>
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>
Jeff 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>
Michael 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>
Junio 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>
Junio C Hamano [Sun, 16 Oct 2011 03:55:12 +0000 (20:55 -0700)]
Prepare for 1.7.7.1
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Sun, 16 Oct 2011 03:46:39 +0000 (20:46 -0700)]
Merge branch 'ms/patch-id-with-overlong-line' into maint
* ms/patch-id-with-overlong-line:
patch-id.c: use strbuf instead of a fixed buffer
Junio C Hamano [Sun, 16 Oct 2011 03:46:39 +0000 (20:46 -0700)]
Merge branch 'jc/maint-bundle-too-quiet' into maint
* jc/maint-bundle-too-quiet:
Teach progress eye-candy to fetch_refs_from_bundle()
Junio C Hamano [Sun, 16 Oct 2011 03:46:38 +0000 (20:46 -0700)]
Merge branch 'jk/filter-branch-require-clean-work-tree' into maint
* jk/filter-branch-require-clean-work-tree:
filter-branch: use require_clean_work_tree
Junio C Hamano [Sun, 16 Oct 2011 03:46:38 +0000 (20:46 -0700)]
Merge branch 'jc/maint-fsck-fwrite-size-check' into maint
* jc/maint-fsck-fwrite-size-check:
fsck: do not abort upon finding an empty blob
Junio C Hamano [Sun, 16 Oct 2011 03:46:38 +0000 (20:46 -0700)]
Merge branch 'bk/ancestry-path' into maint
* bk/ancestry-path:
t6019: avoid refname collision on case-insensitive systems
revision: do not include sibling history in --ancestry-path output
revision: keep track of the end-user input from the command line
rev-list: Demonstrate breakage with --ancestry-path --all
Junio C Hamano [Sun, 16 Oct 2011 03:46:38 +0000 (20:46 -0700)]
Merge branch 'jk/maint-fetch-submodule-check-fix' into maint
* jk/maint-fetch-submodule-check-fix:
fetch: avoid quadratic loop checking for updated submodules
Junio C Hamano [Sun, 16 Oct 2011 03:46:37 +0000 (20:46 -0700)]
Merge branch 'tr/mergetool-valgrind' into maint
* tr/mergetool-valgrind:
Symlink mergetools scriptlets into valgrind wrappers
Junio C Hamano [Sun, 16 Oct 2011 03:46:37 +0000 (20:46 -0700)]
Merge branch 'nm/grep-object-sha1-lock' into maint
* nm/grep-object-sha1-lock:
grep: Fix race condition in delta_base_cache
Conflicts:
builtin/grep.c
Junio 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
Junio 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
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
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
Bert 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>
Bert 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>
Bert 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>
Bert 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>
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>
Cord 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>
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
René 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>
Junio 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>
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"
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
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
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
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
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
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
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()
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
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
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
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
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
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
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
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
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>
Jeff 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>
Junio 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>
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
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
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
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
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
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
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()
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
Nguyễ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>
Jeff 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>
Jeff 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>
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>
Junio 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>
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
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
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
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
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
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
...
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()
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
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
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'
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
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
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
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
Matthieu 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>
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>
Brandon 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>
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>
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>
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>
Ramsay 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>
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>