gitweb.git
Merge branch 'tr/gitk-doc-update'Junio C Hamano Wed, 30 Oct 2013 19:10:50 +0000 (12:10 -0700)

Merge branch 'tr/gitk-doc-update'

* tr/gitk-doc-update:
Documentation: revamp gitk(1)

Merge branch 'jl/pack-transfer-avoid-double-close'Junio C Hamano Wed, 30 Oct 2013 19:10:45 +0000 (12:10 -0700)

Merge branch 'jl/pack-transfer-avoid-double-close'

The codepath that send_pack() calls pack_objects() mistakenly
closed the same file descriptor twice, leading to potentially
closing a wrong file descriptor that was opened in the meantime.

* jl/pack-transfer-avoid-double-close:
Clear fd after closing to avoid double-close error

Merge branch 'sb/git-svn-docs-indent-with-ht'Junio C Hamano Wed, 30 Oct 2013 19:10:34 +0000 (12:10 -0700)

Merge branch 'sb/git-svn-docs-indent-with-ht'

* sb/git-svn-docs-indent-with-ht:
git-svn docs: Use tabs consistently within the ascii doc

Merge branch 'nd/magic-pathspec'Junio C Hamano Wed, 30 Oct 2013 19:10:29 +0000 (12:10 -0700)

Merge branch 'nd/magic-pathspec'

All callers to parse_pathspec() must choose between getting no
pathspec or one path that is limited to the current directory
when there is no paths given on the command line, but there were
two callers that violated this rule, triggering a BUG().

* nd/magic-pathspec:
Fix calling parse_pathspec with no paths nor PATHSPEC_PREFER_* flags

Merge branch 'nd/gc-lock-against-each-other'Junio C Hamano Wed, 30 Oct 2013 19:10:27 +0000 (12:10 -0700)

Merge branch 'nd/gc-lock-against-each-other'

* nd/gc-lock-against-each-other:
gc: remove gc.pid file at end of execution

Merge branch 'hn/log-graph-color-octopus'Junio C Hamano Wed, 30 Oct 2013 19:10:21 +0000 (12:10 -0700)

Merge branch 'hn/log-graph-color-octopus'

* hn/log-graph-color-octopus:
graph: fix coloring around octopus merges

Merge branch 'mm/checkout-auto-track-fix'Junio C Hamano Wed, 30 Oct 2013 19:10:16 +0000 (12:10 -0700)

Merge branch 'mm/checkout-auto-track-fix'

"git checkout topic", when there is not yet a local "topic" branch
but there is a unique remote-tracking branch for a remote "topic"
branch, pretended as if "git checkout -t -b topic remote/$r/topic"
(for that unique remote $r) was run. This hack however was not
implemented for "git checkout topic --".

* mm/checkout-auto-track-fix:
checkout: proper error message on 'git checkout foo bar --'
checkout: allow dwim for branch creation for "git checkout $branch --"

Merge branch 'sg/t3600-nul-sha1-fix'Junio C Hamano Wed, 30 Oct 2013 19:10:09 +0000 (12:10 -0700)

Merge branch 'sg/t3600-nul-sha1-fix'

* sg/t3600-nul-sha1-fix:
t3600: fix broken "choking git rm" test

Merge branch 'fc/styles'Junio C Hamano Wed, 30 Oct 2013 19:10:06 +0000 (12:10 -0700)

Merge branch 'fc/styles'

C coding style fixes.

* fc/styles:
block-sha1/sha1.c: have SP around arithmetic operators
base85.c: have SP around arithmetic operators
archive.c: have SP around arithmetic operators
alloc.c: have SP around arithmetic operators
abspath.c: have SP around arithmetic operators
alias: have SP around arithmetic operators
C: have space around && and || operators

Merge branch 'jc/upload-pack-send-symref'Junio C Hamano Wed, 30 Oct 2013 19:10:00 +0000 (12:10 -0700)

Merge branch 'jc/upload-pack-send-symref'

One long-standing flaw in the pack transfer protocol used by "git
clone" was that there was no way to tell the other end which branch
"HEAD" points at, and the receiving end needed to guess. A new
capability has been defined in the pack protocol to convey this
information so that cloning from a repository with more than one
branches pointing at the same commit where the HEAD is at now
reliably sets the initial branch in the resulting repository.

* jc/upload-pack-send-symref:
t5570: Update for clone-progress-to-stderr branch
t5570: Update for symref capability
clone: test the new HEAD detection logic
connect: annotate refs with their symref information in get_remote_head()
connect.c: make parse_feature_value() static
upload-pack: send non-HEAD symbolic refs
upload-pack: send symbolic ref information as capability
upload-pack.c: do not pass confusing cb_data to mark_our_ref()
t5505: fix "set-head --auto with ambiguous HEAD" test

Merge branch 'jk/http-auth-redirects'Junio C Hamano Wed, 30 Oct 2013 19:09:53 +0000 (12:09 -0700)

Merge branch 'jk/http-auth-redirects'

Handle the case where http transport gets redirected during the
authorization request better.

* jk/http-auth-redirects:
http.c: Spell the null pointer as NULL
remote-curl: rewrite base url from info/refs redirects
remote-curl: store url as a strbuf
remote-curl: make refs_url a strbuf
http: update base URLs when we see redirects
http: provide effective url to callers
http: hoist credential request out of handle_curl_result
http: refactor options to http_get_*
http_request: factor out curlinfo_strbuf
http_get_file: style fixes

Almost -rc0 for 1.8.5Junio C Hamano Mon, 28 Oct 2013 17:52:07 +0000 (10:52 -0700)

Almost -rc0 for 1.8.5

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

Sync with v1.8.4.2Junio C Hamano Mon, 28 Oct 2013 17:51:53 +0000 (10:51 -0700)

Sync with v1.8.4.2

Merge branch 'sb/repack-in-c'Junio C Hamano Mon, 28 Oct 2013 17:43:41 +0000 (10:43 -0700)

Merge branch 'sb/repack-in-c'

Finishing touches to update documentation.

* sb/repack-in-c:
Reword repack documentation to no longer state it's a script

Merge branch 'sg/prompt-svn-remote-fix'Junio C Hamano Mon, 28 Oct 2013 17:43:38 +0000 (10:43 -0700)

Merge branch 'sg/prompt-svn-remote-fix'

Bash portability fix.

* sg/prompt-svn-remote-fix:
bash prompt: don't use '+=' operator in show upstream code path

Merge branch 'jk/split-broken-ident'Junio C Hamano Mon, 28 Oct 2013 17:43:32 +0000 (10:43 -0700)

Merge branch 'jk/split-broken-ident'

Make the fall-back parsing of commit objects with broken author or
committer lines more robust to pick up the timestamps.

* jk/split-broken-ident:
split_ident: parse timestamp from end of line

Merge branch 'jk/remote-literal-string-leakfix'Junio C Hamano Mon, 28 Oct 2013 17:43:28 +0000 (10:43 -0700)

Merge branch 'jk/remote-literal-string-leakfix'

* jk/remote-literal-string-leakfix:
remote: do not copy "origin" string literal

Merge branch 'ew/keepalive'Junio C Hamano Mon, 28 Oct 2013 17:43:24 +0000 (10:43 -0700)

Merge branch 'ew/keepalive'

* ew/keepalive:
http: use curl's tcp keepalive if available
http: enable keepalive on TCP sockets

Merge branch 'jc/revision-range-unpeel'Junio C Hamano Mon, 28 Oct 2013 17:43:16 +0000 (10:43 -0700)

Merge branch 'jc/revision-range-unpeel'

"git rev-list --objects ^v1.0^ v1.0" gave v1.0 tag itself in the
output, but "git rev-list --objects v1.0^..v1.0" did not.

* jc/revision-range-unpeel:
revision: do not peel tags used in range notation

Merge branch 'jx/relative-path-regression-fix'Junio C Hamano Mon, 28 Oct 2013 17:42:29 +0000 (10:42 -0700)

Merge branch 'jx/relative-path-regression-fix'

* jx/relative-path-regression-fix:
Use simpler relative_path when set_git_dir
relative_path should honor dos-drive-prefix
test: use unambigous leading path (/foo) for MSYS

Git 1.8.4.2 v1.8.4.2Junio C Hamano Mon, 28 Oct 2013 17:21:29 +0000 (10:21 -0700)

Git 1.8.4.2

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

Merge branch 'jk/clone-progress-to-stderr' into maintJunio C Hamano Mon, 28 Oct 2013 17:19:24 +0000 (10:19 -0700)

Merge branch 'jk/clone-progress-to-stderr' into maint

"git clone" gave some progress messages to the standard output, not to
the standard error, and did not allow suppressing them with the
"--no-progress" option.

* jk/clone-progress-to-stderr:
clone: always set transport options
clone: treat "checking connectivity" like other progress
clone: send diagnostic messages to stderr

Merge branch 'jk/format-patch-from' into maintJunio C Hamano Mon, 28 Oct 2013 17:18:43 +0000 (10:18 -0700)

Merge branch 'jk/format-patch-from' into maint

"format-patch --from=<whom>" forgot to omit unnecessary in-body from
line, i.e. when <whom> is the same as the real author.

* jk/format-patch-from:
format-patch: print in-body "From" only when needed

Merge branch 'jk/shortlog-tolerate-broken-commit' into... Junio C Hamano Mon, 28 Oct 2013 17:17:31 +0000 (10:17 -0700)

Merge branch 'jk/shortlog-tolerate-broken-commit' into maint

"git shortlog" used to choke and die when there is a malformed commit
(e.g. missing authors); it now simply ignore such a commit and keeps
going.

* jk/shortlog-tolerate-broken-commit:
shortlog: ignore commits with missing authors

Merge branch 'jk/diff-algo' into maintJunio C Hamano Mon, 28 Oct 2013 17:16:11 +0000 (10:16 -0700)

Merge branch 'jk/diff-algo' into maint

"git merge-recursive" did not parse its "--diff-algorithm=" command
line option correctly.

* jk/diff-algo:
merge-recursive: fix parsing of "diff-algorithm" option

test-lib: fix typo in commentTorstein Hegge Sun, 27 Oct 2013 09:56:33 +0000 (10:56 +0100)

test-lib: fix typo in comment

Point test writers to the test_expect_* functions properly.

Signed-off-by: Torstein Hegge <hegge@resisty.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

sha1_file: move comment about return value where it... Christian Couder Sat, 26 Oct 2013 22:34:30 +0000 (00:34 +0200)

sha1_file: move comment about return value where it belongs

Commit 5b0864070 (sha1_object_info_extended: make type calculation
optional, Jul 12 2013) changed the return value of the
sha1_object_info_extended function to 0/-1 for success/error.

Previously this function returned the object type for success or
-1 for error. But unfortunately the above commit forgot to change
or move the comment above this function that says "returns enum
object_type or negative".

To fix this inconsistency, let's move the comment above the
sha1_object_info function where it is still true.

Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

http.c: Spell the null pointer as NULLRamsay Jones Thu, 24 Oct 2013 20:17:19 +0000 (21:17 +0100)

http.c: Spell the null pointer as NULL

Commit 1bbcc224 ("http: refactor options to http_get_*", 28-09-2013)
changed the type of final 'options' argument of the http_get_file()
function from an int to an 'struct http_get_options' pointer.
However, it neglected to update the (single) call site. Since this
call was passing '0' to that argument, it was (correctly) being
interpreted as a null pointer. Change to argument to NULL.

Noticed by sparse. ("Using plain integer as NULL pointer")

Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk>
Acked-by: Jeff King <peff@peff.net>
Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Update draft release notes to 1.8.5Junio C Hamano Wed, 23 Oct 2013 20:37:27 +0000 (13:37 -0700)

Update draft release notes to 1.8.5

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

Sync with 'maint'Junio C Hamano Wed, 23 Oct 2013 20:36:57 +0000 (13:36 -0700)

Sync with 'maint'

Almost 1.8.4.2 ;-)Junio C Hamano Wed, 23 Oct 2013 20:34:39 +0000 (13:34 -0700)

Almost 1.8.4.2 ;-)

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

Merge branch 'jc/ls-files-killed-optim' into maintJunio C Hamano Wed, 23 Oct 2013 20:33:08 +0000 (13:33 -0700)

Merge branch 'jc/ls-files-killed-optim' into maint

"git ls-files -k" needs to crawl only the part of the working tree
that may overlap the paths in the index to find killed files, but
shared code with the logic to find all the untracked files, which
made it unnecessarily inefficient.

* jc/ls-files-killed-optim:
dir.c::test_one_path(): work around directory_exists_in_index_icase() breakage
t3010: update to demonstrate "ls-files -k" optimization pitfalls
ls-files -k: a directory only can be killed if the index has a non-directory
dir.c: use the cache_* macro to access the current index

Merge branch 'jh/checkout-auto-tracking' into maintJunio C Hamano Wed, 23 Oct 2013 20:32:50 +0000 (13:32 -0700)

Merge branch 'jh/checkout-auto-tracking' into maint

"git branch --track" had a minor regression in v1.8.3.2 and later
that made it impossible to base your local work on anything but a
local branch of the upstream repository you are tracking from.

* jh/checkout-auto-tracking:
t3200: fix failure on case-insensitive filesystems
branch.c: Relax unnecessary requirement on upstream's remote ref name
t3200: Add test demonstrating minor regression in 41c21f2
Refer to branch.<name>.remote/merge when documenting --track
t3200: Minor fix when preparing for tracking failure
t2024: Fix &&-chaining and a couple of typos

Merge branch 'nd/fetch-into-shallow' into maintJunio C Hamano Wed, 23 Oct 2013 20:32:17 +0000 (13:32 -0700)

Merge branch 'nd/fetch-into-shallow' into maint

When there is no sufficient overlap between old and new history
during a "git fetch" into a shallow repository, objects that the
sending side knows the receiving end has were unnecessarily sent.

* nd/fetch-into-shallow:
Add testcase for needless objects during a shallow fetch
list-objects: mark more commits as edges in mark_edges_uninteresting
list-objects: reduce one argument in mark_edges_uninteresting
upload-pack: delegate rev walking in shallow fetch to pack-objects
shallow: add setup_temporary_shallow()
shallow: only add shallow graft points to new shallow file
move setup_alternate_shallow and write_shallow_commits to shallow.c

Merge branch 'bc/gnome-keyring'Junio C Hamano Wed, 23 Oct 2013 20:21:50 +0000 (13:21 -0700)

Merge branch 'bc/gnome-keyring'

Cleanups and tweaks for credential handling to work with ancient versions
of the gnome-keyring library that are still in use.

* bc/gnome-keyring:
contrib/git-credential-gnome-keyring.c: support really ancient gnome-keyring
contrib/git-credential-gnome-keyring.c: support ancient gnome-keyring
contrib/git-credential-gnome-keyring.c: report failure to store password
contrib/git-credential-gnome-keyring.c: use glib messaging functions
contrib/git-credential-gnome-keyring.c: use glib memory allocation functions
contrib/git-credential-gnome-keyring.c: use secure memory for reading passwords
contrib/git-credential-gnome-keyring.c: use secure memory functions for passwds
contrib/git-credential-gnome-keyring.c: use gnome helpers in keyring_object()
contrib/git-credential-gnome-keyring.c: set Gnome application name
contrib/git-credential-gnome-keyring.c: ensure buffer is non-empty before accessing
contrib/git-credential-gnome-keyring.c: strlen() returns size_t, not ssize_t
contrib/git-credential-gnome-keyring.c: exit non-zero when called incorrectly
contrib/git-credential-gnome-keyring.c: add static where applicable
contrib/git-credential-gnome-keyring.c: *style* use "if ()" not "if()" etc.
contrib/git-credential-gnome-keyring.c: remove unused die() function
contrib/git-credential-gnome-keyring.c: remove unnecessary pre-declarations

Merge branch 'po/dot-url'Junio C Hamano Wed, 23 Oct 2013 20:21:48 +0000 (13:21 -0700)

Merge branch 'po/dot-url'

Explain how '.' can be used to refer to the "current repository"
in the documentation.

* po/dot-url:
doc/cli: make "dot repository" an independent bullet point
config doc: update dot-repository notes
doc: command line interface (cli) dot-repository dwimmery

Merge branch 'jc/prompt-upstream'Junio C Hamano Wed, 23 Oct 2013 20:21:45 +0000 (13:21 -0700)

Merge branch 'jc/prompt-upstream'

An enhancement to the GIT_PS1_SHOWUPSTREAM facility.

* jc/prompt-upstream:
git-prompt.sh: optionally show upstream branch name

Merge branch 'hu/cherry-pick-previous-branch'Junio C Hamano Wed, 23 Oct 2013 20:21:35 +0000 (13:21 -0700)

Merge branch 'hu/cherry-pick-previous-branch'

"git cherry-pick" without further options would segfault.

Could use a follow-up to handle '-' after argv[1] better.

* hu/cherry-pick-previous-branch:
cherry-pick: handle "-" after parsing options

Merge branch 'mg/more-textconv'Junio C Hamano Wed, 23 Oct 2013 20:21:30 +0000 (13:21 -0700)

Merge branch 'mg/more-textconv'

Make "git grep" and "git show" pay attention to --textconv when
dealing with blob objects.

* mg/more-textconv:
grep: honor --textconv for the case rev:path
grep: allow to use textconv filters
t7008: demonstrate behavior of grep with textconv
cat-file: do not die on --textconv without textconv filters
show: honor --textconv for blobs
diff_opt: track whether flags have been set explicitly
t4030: demonstrate behavior of show with textconv

Merge branch 'jc/pack-objects'Junio C Hamano Wed, 23 Oct 2013 20:21:26 +0000 (13:21 -0700)

Merge branch 'jc/pack-objects'

* jc/pack-objects:
pack-objects: shrink struct object_entry

Clear fd after closing to avoid double-close errorJens Lindstrom Tue, 22 Oct 2013 13:36:02 +0000 (15:36 +0200)

Clear fd after closing to avoid double-close error

In send_pack(), clear the fd passed to pack_objects() by setting
it to -1, since pack_objects() closes the fd (via a call to
run_command()). Likewise, in get_pack(), clear the fd passed to
run_command().

Not doing so risks having git_transport_push(), caller of
send_pack(), closing the fd again, possibly incorrectly closing
some other open file; or similarly with fetch_refs_from_pack(),
indirect caller of get_pack().

Signed-off-by: Jens Lindström <jl@opera.com>
Acked-by: Jeff King <peff@peff.net>
Acked-by: Duy Nguyen <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-svn docs: Use tabs consistently within the ascii docStefan Beller Mon, 21 Oct 2013 19:36:06 +0000 (21:36 +0200)

git-svn docs: Use tabs consistently within the ascii doc

While I can understand 4 or 7 white spaces are fancy, we'd rather want
to use tabs throughout the whole document.

Signed-off-by: Stefan Beller <stefanbeller@googlemail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t5570: Update for clone-progress-to-stderr branchBrian Gernhardt Mon, 21 Oct 2013 17:54:12 +0000 (13:54 -0400)

t5570: Update for clone-progress-to-stderr branch

git clone now reports its progress to standard error, which throws off
t5570. Using test_i18ngrep instead of test_cmp allows the test to be
more flexible by only looking for the expected error and ignoring any
other output from the program.

Signed-off-by: Brian Gernhardt <brian@gernhardtsoftware.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'jk/clone-progress-to-stderr' into jc... Junio C Hamano Tue, 22 Oct 2013 18:38:42 +0000 (11:38 -0700)

Merge branch 'jk/clone-progress-to-stderr' into jc/upload-pack-send-symref

* jk/clone-progress-to-stderr:
clone: always set transport options
clone: treat "checking connectivity" like other progress
clone: send diagnostic messages to stderr

t5570: Update for symref capabilityBrian Gernhardt Mon, 21 Oct 2013 17:54:11 +0000 (13:54 -0400)

t5570: Update for symref capability

git-daemon now uses the symref capability to send the correct HEAD
reference, so the test for that in t5570 now passes.

Signed-off-by: Brian Gernhardt <brian@gernhardtsoftware.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Documentation: revamp gitk(1)Thomas Rast Sun, 20 Oct 2013 16:57:41 +0000 (18:57 +0200)

Documentation: revamp gitk(1)

The gitk manpage suffers from a bit of neglect: there have been only
minor changes, and no changes to the set of options documented, since
a2df1fb (Documentation: New GUI configuration and command-line
options., 2008-11-13). In the meantime, the set of rev-list options
has been expanded several times by options that are useful in gitk,
e.g., --ancestry-path and the optional globbing for --branches, --tags
and --remotes.

Restructure and expand the manpage. List more options that the author
perceives as useful, while remaining somewhat terse. Ideally the user
should not have to look up any of the references, but we dispense with
precise explanations in some places and refer to git-log(1) instead.

Note that the options that have an easy GUI equivalent (e.g.,
--word-diff, -S, --grep) are deliberately not listed even in the cases
where they simply fill in the GUI fields.

Signed-off-by: Thomas Rast <trast@inf.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Reword repack documentation to no longer state it's... Stefan Beller Fri, 18 Oct 2013 23:25:22 +0000 (01:25 +0200)

Reword repack documentation to no longer state it's a script

This updates the documentation regarding the changes introduced
by a1bbc6c01 (2013-09-15, repack: rewrite the shell script in C).

Signed-off-by: Stefan Beller <stefanbeller@googlemail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Fix calling parse_pathspec with no paths nor PATHSPEC_P... Nguyễn Thái Ngọc Duy Sat, 19 Oct 2013 02:41:24 +0000 (09:41 +0700)

Fix calling parse_pathspec with no paths nor PATHSPEC_PREFER_* flags

When parse_pathspec() is called with no paths, the behavior could be
either return no paths, or return one path that is cwd. Some commands
do the former, some the latter. parse_pathspec() itself does not make
either the default and requires the caller to specify either flag if
it may run into this situation.

I've grep'd through all parse_pathspec() call sites. Some pass
neither, but those are guaranteed never pass empty path to
parse_pathspec(). There are two call sites that may pass empty path
and are fixed with this patch.

[jc: added a test from Antoine's bug report]

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

Update draft release notes to 1.8.5Junio C Hamano Fri, 18 Oct 2013 20:53:05 +0000 (13:53 -0700)

Update draft release notes to 1.8.5

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

Merge branch 'maint'Junio C Hamano Fri, 18 Oct 2013 20:53:48 +0000 (13:53 -0700)

Merge branch 'maint'

* maint:
git-merge: document the -S option

Merge branch 'jc/reflog-doc'Junio C Hamano Fri, 18 Oct 2013 20:50:12 +0000 (13:50 -0700)

Merge branch 'jc/reflog-doc'

Document rules to use GIT_REFLOG_ACTION variable in the scripted
Porcelain. git-rebase--interactive locally violates them, but it
is a leaf user that does not call out to or dot-source other
scripts, so it does not urgently need to be fixed.

* jc/reflog-doc:
setup_reflog_action: document the rules for using GIT_REFLOG_ACTION

Merge branch 'sb/repack-in-c'Junio C Hamano Fri, 18 Oct 2013 20:49:56 +0000 (13:49 -0700)

Merge branch 'sb/repack-in-c'

Rewrite "git repack" in C.

* sb/repack-in-c:
repack: improve warnings about failure of renaming and removing files
repack: retain the return value of pack-objects
repack: rewrite the shell script in C

Merge branch 'jk/clone-progress-to-stderr'Junio C Hamano Fri, 18 Oct 2013 20:49:51 +0000 (13:49 -0700)

Merge branch 'jk/clone-progress-to-stderr'

Some progress and diagnostic messages from "git clone" were
incorrectly sent to the standard output stream, not to the standard
error stream.

* jk/clone-progress-to-stderr:
clone: always set transport options
clone: treat "checking connectivity" like other progress
clone: send diagnostic messages to stderr

Merge git://github.com/git-l10n/git-poJunio C Hamano Fri, 18 Oct 2013 20:49:00 +0000 (13:49 -0700)

Merge git://github.com/git-l10n/git-po

* git://github.com/git-l10n/git-po:
l10n: fr.po: 2135/2135 messages translated

checkout: proper error message on 'git checkout foo... Matthieu Moy Fri, 18 Oct 2013 09:25:58 +0000 (11:25 +0200)

checkout: proper error message on 'git checkout foo bar --'

The previous code was detecting the presence of "--" by looking only at
argument 1. As a result, "git checkout foo bar --" was interpreted as an
ambiguous file/revision list, and errored out with:

error: pathspec 'foo' did not match any file(s) known to git.
error: pathspec 'bar' did not match any file(s) known to git.
error: pathspec '--' did not match any file(s) known to git.

This patch fixes it by walking through the argument list to find the
"--", and now complains about the number of references given.

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

checkout: allow dwim for branch creation for "git check... Matthieu Moy Fri, 18 Oct 2013 09:25:57 +0000 (11:25 +0200)

checkout: allow dwim for branch creation for "git checkout $branch --"

The "--" notation disambiguates files and branches, but as a side-effect
of the previous implementation, also disabled the branch auto-creation
when $branch does not exist.

A possible scenario is then:

git checkout $branch
=> fails if $branch is both a ref and a file, and suggests --

git checkout $branch --
=> refuses to create the $branch

This patch allows the second form to create $branch, and since the -- is
provided, it does not look for file named $branch.

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

graph: fix coloring around octopus mergesHemmo Nieminen Wed, 16 Oct 2013 08:28:50 +0000 (11:28 +0300)

graph: fix coloring around octopus merges

When drawing the graph of an octopus merge, we draw a horizontal line
from parents 3 and above into the asterisk representing the commit. The
sections of this line should be colored to match the graph lines coming
in from above.

However, if the commit is not in the left-most column we do not take
into account the columns to the left of the commit when calculating
these colors. Fix this by adding the appropriate offset to the column
index used for calculating the color.

Signed-off-by: Hemmo Nieminen <hemmo.nieminen@iki.fi>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-merge: document the -S optionNicolas Vigier Mon, 14 Oct 2013 23:41:05 +0000 (01:41 +0200)

git-merge: document the -S option

The option to gpg sign a merge commit is available but was not
documented. Use wording from the git-commit(1) manpage.

Signed-off-by: Nicolas Vigier <boklm@mars-attacks.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

gc: remove gc.pid file at end of executionJonathan Nieder Wed, 16 Oct 2013 23:11:46 +0000 (16:11 -0700)

gc: remove gc.pid file at end of execution

This file isn't really harmful, but isn't useful either, and can create
minor annoyance for the user:

* It's confusing, as the presence of a *.pid file often implies that a
process is currently running. A user running "ls .git/" and finding
this file may incorrectly guess that a "git gc" is currently running.

* Leaving this file means that a "git gc" in an already gc-ed repo is
no-longer a no-op. A user running "git gc" in a set of repositories,
and then synchronizing this set (e.g. rsync -av, unison, ...) will see
all the gc.pid files as changed, which creates useless noise.

This patch unlinks the file after the garbage collection is done, so that
gc.pid is actually present only during execution.

Future versions of Git may want to use the information left in the gc.pid
file (e.g. for policies like "don't attempt to run a gc if one has
already been ran less than X hours ago"). If so, this patch can safely be
reverted. For now, let's not bother the users.

Explained-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Improved-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

l10n: fr.po: 2135/2135 messages translatedJean-Noel Avila Wed, 21 Aug 2013 19:49:43 +0000 (21:49 +0200)

l10n: fr.po: 2135/2135 messages translated

Signed-off-by: Sebastien Helleu <flashcode@flashtux.org>
Signed-off-by: Jean-Noel Avila <jn.avila@free.fr>

Update draft release notes to 1.8.5Junio C Hamano Thu, 17 Oct 2013 22:57:12 +0000 (15:57 -0700)

Update draft release notes to 1.8.5

Merge branch 'jk/format-patch-from'Junio C Hamano Thu, 17 Oct 2013 22:55:18 +0000 (15:55 -0700)

Merge branch 'jk/format-patch-from'

"format-patch --from=<whom>" forgot to omit unnecessary in-body
from line, i.e. when <whom> is the same as the real author.

* jk/format-patch-from:
format-patch: print in-body "From" only when needed

Merge branch 'es/name-hash-no-trailing-slash-in-dirs'Junio C Hamano Thu, 17 Oct 2013 22:55:15 +0000 (15:55 -0700)

Merge branch 'es/name-hash-no-trailing-slash-in-dirs'

Clean up the internal of the name-hash mechanism used to work
around case insensitivity on some filesystems to cleanly fix a
long-standing API glitch where the caller of cache_name_exists()
that ask about a directory with a counted string was required to
have '/' at one location past the end of the string.

* es/name-hash-no-trailing-slash-in-dirs:
dir: revert work-around for retired dangerous behavior
name-hash: stop storing trailing '/' on paths in index_state.dir_hash
employ new explicit "exists in index?" API
name-hash: refactor polymorphic index_name_exists()

Merge branch 'jk/trailing-slash-in-pathspec'Junio C Hamano Thu, 17 Oct 2013 22:55:13 +0000 (15:55 -0700)

Merge branch 'jk/trailing-slash-in-pathspec'

Code refactoring.

* jk/trailing-slash-in-pathspec:
reset: handle submodule with trailing slash
rm: re-use parse_pathspec's trailing-slash removal

Merge branch 'lc/filter-branch-too-many-refs'Junio C Hamano Thu, 17 Oct 2013 22:55:12 +0000 (15:55 -0700)

Merge branch 'lc/filter-branch-too-many-refs'

"git filter-branch" in a repository with many refs blew limit of
command line length.

* lc/filter-branch-too-many-refs:
Allow git-filter-branch to process large repositories with lots of branches.

Merge branch 'jc/checkout-detach-doc'Junio C Hamano Thu, 17 Oct 2013 22:55:08 +0000 (15:55 -0700)

Merge branch 'jc/checkout-detach-doc'

"git checkout [--detach] <commit>" was listed poorly in the
synopsis section of its documentation.

* jc/checkout-detach-doc:
checkout: update synopsys and documentation on detaching HEAD

Sync with maintJunio C Hamano Thu, 17 Oct 2013 22:54:28 +0000 (15:54 -0700)

Sync with maint

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

Start preparing for 1.8.4.2Junio C Hamano Thu, 17 Oct 2013 22:50:45 +0000 (15:50 -0700)

Start preparing for 1.8.4.2

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

Merge branch 'jk/upload-pack-keepalive' into maintJunio C Hamano Thu, 17 Oct 2013 22:46:01 +0000 (15:46 -0700)

Merge branch 'jk/upload-pack-keepalive' into maint

* jk/upload-pack-keepalive:
upload-pack: bump keepalive default to 5 seconds
upload-pack: send keepalive packets during pack computation

Merge branch 'bc/http-backend-allow-405' into maintJunio C Hamano Thu, 17 Oct 2013 22:46:00 +0000 (15:46 -0700)

Merge branch 'bc/http-backend-allow-405' into maint

* bc/http-backend-allow-405:
http-backend: provide Allow header for 405

Merge branch 'jc/cvsserver-perm-bit-fix' into maintJunio C Hamano Thu, 17 Oct 2013 22:45:57 +0000 (15:45 -0700)

Merge branch 'jc/cvsserver-perm-bit-fix' into maint

* jc/cvsserver-perm-bit-fix:
cvsserver: pick up the right mode bits

Merge branch 'js/add-i-mingw' into maintJunio C Hamano Thu, 17 Oct 2013 22:45:56 +0000 (15:45 -0700)

Merge branch 'js/add-i-mingw' into maint

* js/add-i-mingw:
add--interactive: fix external command invocation on Windows

Merge branch 'nd/git-dir-pointing-at-gitfile' into... Junio C Hamano Thu, 17 Oct 2013 22:45:55 +0000 (15:45 -0700)

Merge branch 'nd/git-dir-pointing-at-gitfile' into maint

* nd/git-dir-pointing-at-gitfile:
Make setup_git_env() resolve .git file when $GIT_DIR is not specified

Merge branch 'jk/has-sha1-file-retry-packed' into maintJunio C Hamano Thu, 17 Oct 2013 22:45:54 +0000 (15:45 -0700)

Merge branch 'jk/has-sha1-file-retry-packed' into maint

* jk/has-sha1-file-retry-packed:
has_sha1_file: re-check pack directory before giving up

Merge branch 'ap/commit-author-mailmap' into maintJunio C Hamano Thu, 17 Oct 2013 22:45:51 +0000 (15:45 -0700)

Merge branch 'ap/commit-author-mailmap' into maint

* ap/commit-author-mailmap:
commit: search author pattern against mailmap

Merge branch 'es/rebase-i-no-abbrev' into maintJunio C Hamano Thu, 17 Oct 2013 22:45:50 +0000 (15:45 -0700)

Merge branch 'es/rebase-i-no-abbrev' into maint

* es/rebase-i-no-abbrev:
rebase -i: fix short SHA-1 collision
t3404: rebase -i: demonstrate short SHA-1 collision
t3404: make tests more self-contained

Conflicts:
t/t3404-rebase-interactive.sh

Merge branch 'rt/rebase-p-no-merge-summary' into maintJunio C Hamano Thu, 17 Oct 2013 22:45:45 +0000 (15:45 -0700)

Merge branch 'rt/rebase-p-no-merge-summary' into maint

* rt/rebase-p-no-merge-summary:
rebase --preserve-merges: ignore "merge.log" config

Merge branch 'es/rebase-i-respect-core-commentchar... Junio C Hamano Thu, 17 Oct 2013 22:45:24 +0000 (15:45 -0700)

Merge branch 'es/rebase-i-respect-core-commentchar' into maint

* es/rebase-i-respect-core-commentchar:
rebase -i: fix cases ignoring core.commentchar

t4254: modernize testsSZEDER Gábor Wed, 16 Oct 2013 12:27:16 +0000 (14:27 +0200)

t4254: modernize tests

- Don't start tests with 'test $? = 0' to catch preparation done
outside the test_expect_success block.

- Move writing the bogus patch and the expected output into the
appropriate test_expect_success blocks.

- Use the test_must_fail helper instead of manually checking for
non-zero exit code.

- Use the debug-friendly test_path_is_file helper instead of 'test -f'.

- No space after '>'.

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

Update draft release notes to 1.8.5Junio C Hamano Wed, 16 Oct 2013 19:27:45 +0000 (12:27 -0700)

Update draft release notes to 1.8.5

List notable topics that graduated during Jonathan's interim
maintainership.

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

t3600: fix broken "choking git rm" testSZEDER Gábor Wed, 16 Oct 2013 00:48:57 +0000 (02:48 +0200)

t3600: fix broken "choking git rm" test

The test 'choking "git rm" should not let it die with cruft' is
supposed to check 'git rm's behavior when interrupted by provoking a
SIGPIPE while 'git rm' is busily deleting files from a specially
crafted index.

This test is silently broken for the following reasons:

- The test crafts a special index by feeding a large number of index
entries with null shas to 'git update-index --index-info'. It was
OK back then when this test was introduced in commit 0693f9ddad
(Make sure lockfiles are unlocked when dying on SIGPIPE,
2008-12-18), but since commit 4337b5856f (do not write null sha1s to
on-disk index, 2012-07-28) null shas are not allowed in the on-disk
index causing 'git update-index' to error out.

- The barfing 'git update-index --index-info' should fail the test,
but it remains unnoticed because of the severely broken && chain:
the test's result depends solely on whether there is a stale lock
file left behind, but after 'git update-index' errors out 'git rm'
won't be executed at all.

To fix this test feed only non-null shas to 'git update-index' and
restore the && chain (partly by adding a missing && and by using the
test_when_finished helper instead of manual cleanup).

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

http: use curl's tcp keepalive if availableJeff King Tue, 15 Oct 2013 00:06:14 +0000 (20:06 -0400)

http: use curl's tcp keepalive if available

Commit a15d069 taught git to use curl's SOCKOPTFUNCTION hook
to turn on TCP keepalives. However, modern versions of curl
have a TCP_KEEPALIVE option, which can do this for us. As an
added bonus, the curl code knows how to turn on keepalive
for a much wider variety of platforms. The only downside to
using this option is that not everybody has a new enough curl.
Let's split our keepalive options into three conditionals:

1. With curl 7.25.0 and newer, we rely on curl to do it
right.

2. With older curl that still knows SOCKOPTFUNCTION, we
use the code from a15d069.

3. Otherwise, we are out of luck, and the call is a no-op.

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

Merge git://git.bogomips.org/git-svnJunio C Hamano Wed, 16 Oct 2013 17:45:58 +0000 (10:45 -0700)

Merge git://git.bogomips.org/git-svn

* git://git.bogomips.org/git-svn:
git-svn: Warn about changing default for --prefix in Git v2.0
Documentation/git-svn: Promote the use of --prefix in docs + examples
git-svn.txt: elaborate on rev_map files
git-svn.txt: replace .git with $GIT_DIR
git-svn.txt: reword description of gc command
git-svn.txt: fix AsciiDoc formatting error
git-svn: fix signed commit parsing

block-sha1/sha1.c: have SP around arithmetic operatorsJunio C Hamano Tue, 15 Oct 2013 22:27:51 +0000 (15:27 -0700)

block-sha1/sha1.c: have SP around arithmetic operators

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

base85.c: have SP around arithmetic operatorsJunio C Hamano Tue, 15 Oct 2013 22:27:34 +0000 (15:27 -0700)

base85.c: have SP around arithmetic operators

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

archive.c: have SP around arithmetic operatorsJunio C Hamano Tue, 15 Oct 2013 22:27:17 +0000 (15:27 -0700)

archive.c: have SP around arithmetic operators

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

alloc.c: have SP around arithmetic operatorsJunio C Hamano Tue, 15 Oct 2013 22:25:53 +0000 (15:25 -0700)

alloc.c: have SP around arithmetic operators

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

abspath.c: have SP around arithmetic operatorsJunio C Hamano Tue, 15 Oct 2013 22:25:45 +0000 (15:25 -0700)

abspath.c: have SP around arithmetic operators

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

alias: have SP around arithmetic operatorsFelipe Contreras Sat, 21 Sep 2013 19:15:44 +0000 (14:15 -0500)

alias: have SP around arithmetic operators

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

C: have space around && and || operatorsJunio C Hamano Wed, 16 Oct 2013 17:26:39 +0000 (10:26 -0700)

C: have space around && and || operators

Correct all hits from

git grep -e '\(&&\|||\)[^ ]' -e '[^ ]\(&&\|||\)' -- '*.c'

i.e. && or || operators that are followed by anything but a SP,
or that follow something other than a SP or a HT, so that these
operators have a SP around it when necessary.

We usually refrain from making this kind of a tree-wide change in
order to avoid unnecessary conflicts with other "real work" patches,
but in this case, the end result does not have a potentially
cumbersome tree-wide impact, while this is a tree-wide cleanup.

Fixes to compat/regex/regcomp.c and xdiff/xemit.c are to replace a
HT immediately after && with a SP.

This is based on Felipe's patch to bultin/symbolic-ref.c; I did all
the finding out what other files in the whole tree need to be fixed
and did the fix and also the log message while reviewing that single
liner, so any screw-ups in this version are mine.

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

contrib/git-credential-gnome-keyring.c: support really... Brandon Casey Mon, 23 Sep 2013 18:49:17 +0000 (11:49 -0700)

contrib/git-credential-gnome-keyring.c: support really ancient gnome-keyring

The gnome-keyring lib (0.4) distributed with RHEL 4.X is really ancient
and does not provide most of the synchronous functions that even ancient
releases do. Thankfully, we're only using one function that is missing.
Let's emulate gnome_keyring_item_delete_sync() by calling the asynchronous
function and then triggering the event loop processing until our
callback is called.

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

contrib/git-credential-gnome-keyring.c: support ancient... Brandon Casey Mon, 23 Sep 2013 18:49:16 +0000 (11:49 -0700)

contrib/git-credential-gnome-keyring.c: support ancient gnome-keyring

The gnome-keyring lib distributed with RHEL 5.X is ancient and does
not provide a few of the functions/defines that more recent versions
do, but mostly the API is the same. Let's provide the missing bits
via macro definitions and function implementation.

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

contrib/git-credential-gnome-keyring.c: report failure... Brandon Casey Mon, 23 Sep 2013 18:49:15 +0000 (11:49 -0700)

contrib/git-credential-gnome-keyring.c: report failure to store password

Produce an error message when we fail to store a password to the keyring.

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

contrib/git-credential-gnome-keyring.c: use glib messag... Brandon Casey Mon, 23 Sep 2013 18:49:14 +0000 (11:49 -0700)

contrib/git-credential-gnome-keyring.c: use glib messaging functions

Rather than roll our own, let's use the messaging functions provided
by glib.

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

contrib/git-credential-gnome-keyring.c: use glib memory... Brandon Casey Mon, 23 Sep 2013 18:49:13 +0000 (11:49 -0700)

contrib/git-credential-gnome-keyring.c: use glib memory allocation functions

Rather than roll our own, let's use the memory allocation/free routines
provided by glib.

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

contrib/git-credential-gnome-keyring.c: use secure... Brandon Casey Mon, 23 Sep 2013 18:49:12 +0000 (11:49 -0700)

contrib/git-credential-gnome-keyring.c: use secure memory for reading passwords

gnome-keyring provides functions to allocate non-pageable memory (if
possible). Let's use them to allocate memory that may be used to hold
secure data read from the keyring.

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

contrib/git-credential-gnome-keyring.c: use secure... Brandon Casey Mon, 23 Sep 2013 18:49:11 +0000 (11:49 -0700)

contrib/git-credential-gnome-keyring.c: use secure memory functions for passwds

gnome-keyring provides functions for allocating non-pageable memory (if
possible) intended to be used for storing passwords. Let's use them.

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

contrib/git-credential-gnome-keyring.c: use gnome helpe... Brandon Casey Mon, 23 Sep 2013 18:49:10 +0000 (11:49 -0700)

contrib/git-credential-gnome-keyring.c: use gnome helpers in keyring_object()

Rather than carefully allocating memory for sprintf() to write into,
let's make use of the glib helper function g_strdup_printf(), which
makes things a lot easier and less error-prone.

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

contrib/git-credential-gnome-keyring.c: set Gnome appli... Brandon Casey Mon, 23 Sep 2013 18:49:09 +0000 (11:49 -0700)

contrib/git-credential-gnome-keyring.c: set Gnome application name

Since this is a Gnome application, let's set the application name to
something reasonable. This will be displayed in Gnome dialog boxes
e.g. the one that prompts for the user's keyring password.

We add an include statement for glib.h and add the glib-2.0 cflags and
libs to the compilation arguments, but both of these are really noops
since glib is already a dependency of gnome-keyring.

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

contrib/git-credential-gnome-keyring.c: ensure buffer... Brandon Casey Mon, 23 Sep 2013 18:49:08 +0000 (11:49 -0700)

contrib/git-credential-gnome-keyring.c: ensure buffer is non-empty before accessing

Ensure buffer length is non-zero before attempting to access the last
element.

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