gitweb.git
config.c: mark file-local function staticRamsay Jones Sun, 6 Oct 2013 20:48:29 +0000 (21:48 +0100)

config.c: mark file-local function static

Commit 7192777 refactors git_parse_ulong, which is public, into a more
generic function. But since we kept the git_parse_ulong wrapper, only
that part needs to be public; nobody outside the file calls the
lower-level git_parse_unsigned.

Noticed with sparse. ("'git_parse_unsigned' was not declared. Should
it be static?")

Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk>
Explained-by: Jeff King <peff@peff.net>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>

CodingGuidelines: style for multi-line commentsbrian m. carlson Sat, 12 Oct 2013 00:45:46 +0000 (00:45 +0000)

CodingGuidelines: style for multi-line comments

The style for multi-line comments is often mentioned and should be documented
for clarity.

Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>

Merge branch 'nv/doc-config-signingkey'Jonathan Nieder Mon, 14 Oct 2013 19:45:50 +0000 (12:45 -0700)

Merge branch 'nv/doc-config-signingkey'

* nv/doc-config-signingkey:
config doc: user.signingkey is also used for signed commits

config doc: user.signingkey is also used for signed... Nicolas Vigier Mon, 14 Oct 2013 17:04:36 +0000 (19:04 +0200)

config doc: user.signingkey is also used for signed commits

The description of the user.signingkey option only mentioned its use
when creating a signed tag. Make it clear that is is also used when
creating signed commits.

Signed-off-by: Nicolas Vigier <boklm@mars-attacks.org>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>

Merge branch 'sb/checkout-test-complex-path'Jonathan Nieder Mon, 14 Oct 2013 18:09:30 +0000 (11:09 -0700)

Merge branch 'sb/checkout-test-complex-path'

* sb/checkout-test-complex-path:
checkout test: enable test with complex relative path

Merge branch 'rt/cherry-pick-status'Jonathan Nieder Mon, 14 Oct 2013 18:08:47 +0000 (11:08 -0700)

Merge branch 'rt/cherry-pick-status'

* rt/cherry-pick-status:
status: show commit sha1 in "You are currently cherry-picking" message
status test: add missing && to <<EOF blocks

Merge branch 'rj/doc-formatting-fix'Jonathan Nieder Mon, 14 Oct 2013 18:07:50 +0000 (11:07 -0700)

Merge branch 'rj/doc-formatting-fix'

* rj/doc-formatting-fix:
howto/revert-a-faulty-merge: fix unescaped '^'s
howto/setup-git-server-over-http: fix unescaped '^'s

Merge branch 'po/remote-set-head-usage'Jonathan Nieder Mon, 14 Oct 2013 18:07:29 +0000 (11:07 -0700)

Merge branch 'po/remote-set-head-usage'

* po/remote-set-head-usage:
remote set-head -h: add long options to synopsis
remote doc: document long forms of set-head options

Merge branch 'nd/clone-local-with-colon'Jonathan Nieder Mon, 14 Oct 2013 18:06:57 +0000 (11:06 -0700)

Merge branch 'nd/clone-local-with-colon'

* nd/clone-local-with-colon:
clone: tighten "local paths with colons" check a bit

Merge branch 'jx/clean-interactive'Jonathan Nieder Mon, 14 Oct 2013 18:03:48 +0000 (11:03 -0700)

Merge branch 'jx/clean-interactive'

* jx/clean-interactive:
path-utils test: rename mingw_path function to print_path

Merge branch 'jk/diff-algo'Jonathan Nieder Mon, 14 Oct 2013 17:59:51 +0000 (10:59 -0700)

Merge branch 'jk/diff-algo'

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

path-utils test: rename mingw_path function to print_pathSebastian Schuberth Thu, 10 Oct 2013 20:49:43 +0000 (22:49 +0200)

path-utils test: rename mingw_path function to print_path

mingw_path was introduced in abd4284 to output a mangled path as it is
passed as an argument to main(). But the name is misleading because
mangling does not come from MinGW, but from MSYS [1]. As abd4284 does not
introduce any MSYS or MinGW specific code but just prints out argv[2] as
it is passed to main(), give the function the more generic and less
confusing name "print_path".

[1] http://www.mingw.org/wiki/Posix_path_conversion

Signed-off-by: Sebastian Schuberth <sschuberth@gmail.com>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>

howto/revert-a-faulty-merge: fix unescaped '^'sRamsay Jones Fri, 11 Oct 2013 18:24:14 +0000 (19:24 +0100)

howto/revert-a-faulty-merge: fix unescaped '^'s

Several uses of the '^' operator are being interpreted by asciidoc
as requests to show the following text as a superscript. In order
to fix this problem, use backticks (`) to quote the text of the
affected git command invocations.

Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>

howto/setup-git-server-over-http: fix unescaped '^'sRamsay Jones Fri, 11 Oct 2013 19:38:36 +0000 (20:38 +0100)

howto/setup-git-server-over-http: fix unescaped '^'s

The text contains two 'grep' invocations which include the 'start
of line' regular expression character '^'. Asciidoc mis-interprets
this use of '^' as a superscript request. In order to fix this
formatting problem, use backticks (`) to quote the text of the
affected 'grep' command invocations.

Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>

mergetools/diffmerge: support DiffMerge as a git mergetoolStefan Saasen Sat, 12 Oct 2013 22:29:35 +0000 (09:29 +1100)

mergetools/diffmerge: support DiffMerge as a git mergetool

DiffMerge is a non-free (but gratis) tool that supports OS X, Windows and Linux.

See http://www.sourcegear.com/diffmerge/

DiffMerge includes a script `/usr/bin/diffmerge` that can be used to launch the
graphical compare tool.

This change adds mergetool support for DiffMerge and adds 'diffmerge' as an
option to the mergetool help.

Signed-off-by: Stefan Saasen <ssaasen@atlassian.com>
Acked-by: David Aguilar <davvid@gmail.com>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>

.mailmap: switch to Thomas Rast's personal addressThomas Rast Sun, 13 Oct 2013 14:07:49 +0000 (16:07 +0200)

.mailmap: switch to Thomas Rast's personal address

Normalize to my personal address, as my ETH addresses will expire
soon. Also add my new corp account to be somewhat futureproof.

Note that despite the private address being first, Google owns the
copyright as long as I am employed there.

Signed-off-by: Thomas Rast <trast@inf.ethz.ch>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>

status: show commit sha1 in "You are currently cherry... Ralf Thielow Fri, 11 Oct 2013 15:58:37 +0000 (17:58 +0200)

status: show commit sha1 in "You are currently cherry-picking" message

Especially helpful when cherry-picking multiple commits.

Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>
Acked-by: Matthieu Moy <Matthieu.Moy@grenoble-inp.fr>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>

status test: add missing && to <<EOF blocksJonathan Nieder Fri, 11 Oct 2013 17:35:46 +0000 (10:35 -0700)

status test: add missing && to <<EOF blocks

When a test forgets to include && after each command, it is possible
for an early command to succeed but the test to fail, which can hide
bugs.

Checked using the following patch to the test harness:

--- a/t/test-lib.sh
+++ b/t/test-lib.sh
@@ -425,7 +425,17 @@ test_eval_ () {
eval </dev/null >&3 2>&4 "$*"
}

+check_command_chaining_ () {
+ eval >&3 2>&4 "(exit 189) && $*"
+ eval_chain_ret=$?
+ if test "$eval_chain_ret" != 189
+ then
+ error 'bug in test script: missing "&&" in test commands'
+ fi
+}
+
test_run_ () {
+ check_command_chaining_ "$1"
test_cleanup=:
expecting_failure=$2
setup_malloc_check

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>

checkout test: enable test with complex relative pathStefan Beller Wed, 9 Oct 2013 14:35:11 +0000 (16:35 +0200)

checkout test: enable test with complex relative path

This test was added, commented out, in fed1b5ca (git-checkout: Test
for relative path use, 2007-11-09). Later git's path handling was
improved (d089ebaa, setup: sanitize absolute and funny paths in
get_pathspec(), 2008-01-28) but we forgot to enable the now-working
test.

This test expects to run from a subdirectory, so add a 'cd'. While
we're here, examine the content of the checked-out file instead of
just checking that it exists. The other checkout tests already do the
same.

Signed-off-by: Stefan Beller <stefanbeller@googlemail.com>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>

Merge branch 'tz/credential-netrc'Jonathan Nieder Tue, 8 Oct 2013 20:56:50 +0000 (13:56 -0700)

Merge branch 'tz/credential-netrc'

* tz/credential-netrc:
git-credential-netrc: fix uninitialized warning

git-credential-netrc: fix uninitialized warningTed Zlatanov Tue, 8 Oct 2013 20:02:02 +0000 (16:02 -0400)

git-credential-netrc: fix uninitialized warning

Simple patch to avoid unitialized warning and log what we'll do.

Signed-off-by: Ted Zlatanov <tzz@lifelogs.com>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>

Documentation/Makefile: make AsciiDoc dblatex dir confi... John Keeping Thu, 3 Oct 2013 19:17:32 +0000 (20:17 +0100)

Documentation/Makefile: make AsciiDoc dblatex dir configurable

On my system this is in /usr/share/asciidoc/dblatex not
/etc/asciidoc/dblatex. Extract this portion of the path to a variable
so that is can be set in config.mak.

Signed-off-by: John Keeping <john@keeping.me.uk>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>

rebase -i: respect core.abbrevKirill A. Shutemov Sat, 28 Sep 2013 15:53:05 +0000 (18:53 +0300)

rebase -i: respect core.abbrev

collapse_todo_ids() uses `git rev-parse --short=7' to abbreviate
commit ids before showing them to the user in a text editor. Let's
drop argument from --short to the configured value instead (still
defaulting to 7).

Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Acked-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>

RelNotes/1.8.5: direct script writers to "git status... Matthieu Moy Thu, 26 Sep 2013 13:23:35 +0000 (15:23 +0200)

RelNotes/1.8.5: direct script writers to "git status --porcelain"

[jn: with wording tweak from Keshav Kini]

Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>

remote set-head -h: add long options to synopsisPhilip Oakley Sat, 21 Sep 2013 15:51:46 +0000 (16:51 +0100)

remote set-head -h: add long options to synopsis

Document --auto and --delete alongside their short forms -a and -d in
the first line of 'git remote set-head -h' output.

Signed-off-by: Philip Oakley <philipoakley@iee.org>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>

remote doc: document long forms of set-head optionsPhilip Oakley Sat, 21 Sep 2013 15:51:45 +0000 (16:51 +0100)

remote doc: document long forms of set-head options

"git remote set-head" has always supported --add and --delete
as synonyms for the -a and -d option but forgot to document
them.

Signed-off-by: Philip Oakley <philipoakley@iee.org>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>

clone: tighten "local paths with colons" check a bitNguyễn Thái Ngọc Duy Fri, 27 Sep 2013 13:48:13 +0000 (20:48 +0700)

clone: tighten "local paths with colons" check a bit

commit 6000334 (clone: allow cloning local paths with colons in them -
2013-05-04) made it possible to specify a path that has colons in it
without file://, e.g. ../foo:bar/somewhere. But the check was a bit
sloppy.

Consider the url '[foo]:bar'. The '[]' unwrapping code will turn the
string to 'foo\0:bar'. In effect this new string is the same as
'foo/:bar' in the check "path < strchrnul(host, '/')", which mistakes
it for a local path (with '/' before the first ':') when it's actually
not.

So disable the check for '/' before ':' when the URL has been mangled
by '[]' unwrapping.

[jn: with tests from Jeff King]

Noticed-by: Morten Stenshorne <mstensho@opera.com>
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>

contrib: remove ciabotStefan Beller Thu, 26 Sep 2013 20:33:02 +0000 (22:33 +0200)

contrib: remove ciabot

Almost a year ago the CIA service irrevocably crashed. The CIA author
had plans to revive the service, but the effort has since sunk without
trace.

Projects tend to use "irker" instead these days. Repository hook
scripts for irker ship with the irker distribution.

Signed-off-by: Stefan Beller <stefanbeller@googlemail.com>
Acked-by: Eric S. Raymond <esr@thyrsus.com>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>

Sync with Git 1.8.4.1Jonathan Nieder Thu, 26 Sep 2013 22:36:57 +0000 (15:36 -0700)

Sync with Git 1.8.4.1

Git 1.8.4.1 v1.8.4.1Jonathan Nieder Thu, 26 Sep 2013 22:01:41 +0000 (15:01 -0700)

Git 1.8.4.1

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>

merge-recursive: fix parsing of "diff-algorithm" optionJohn Keeping Thu, 26 Sep 2013 20:02:48 +0000 (21:02 +0100)

merge-recursive: fix parsing of "diff-algorithm" option

The "diff-algorithm" option to the recursive merge strategy takes the
name of the algorithm as an option, but it uses strcmp on the option
string to check if it starts with "diff-algorithm=", meaning that this
options cannot actually be used.

Fix this by switching to prefixcmp. At the same time, clarify the
following line by using strlen instead of a hard-coded length, which
also makes it consistent with nearby code.

Reported-by: Luke Noel-Storr <luke.noel-storr@integrate.co.uk>
Signed-off-by: John Keeping <john@keeping.me.uk>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>

Merge branch 'mm/rebase-continue-freebsd-WB' into maintJonathan Nieder Thu, 26 Sep 2013 19:41:14 +0000 (12:41 -0700)

Merge branch 'mm/rebase-continue-freebsd-WB' into maint

* mm/rebase-continue-freebsd-WB:
rebase: fix run_specific_rebase's use of "return" on FreeBSD

Merge branch 'km/svn-1.8-serf-only' into maintJonathan Nieder Thu, 26 Sep 2013 19:34:23 +0000 (12:34 -0700)

Merge branch 'km/svn-1.8-serf-only' into maint

* km/svn-1.8-serf-only:
Git.pm: revert _temp_cache use of temp_is_locked
git-svn: allow git-svn fetching to work using serf
Git.pm: add new temp_is_locked function

Merge branch 'js/xread-in-full' into maintJonathan Nieder Thu, 26 Sep 2013 19:30:44 +0000 (12:30 -0700)

Merge branch 'js/xread-in-full' into maint

* js/xread-in-full:
stream_to_pack: xread does not guarantee to read all requested bytes

Merge branch 'bc/send-email-ssl-die-message-fix' into... Jonathan Nieder Thu, 26 Sep 2013 19:27:29 +0000 (12:27 -0700)

Merge branch 'bc/send-email-ssl-die-message-fix' into maint

* bc/send-email-ssl-die-message-fix:
send-email: don't call methods on undefined values

Merge branch 'bc/submodule-status-ignored'Jonathan Nieder Wed, 25 Sep 2013 06:36:08 +0000 (23:36 -0700)

Merge branch 'bc/submodule-status-ignored'

* bc/submodule-status-ignored:
Improve documentation concerning the status.submodulesummary setting
submodule: don't print status output with ignore=all
submodule: fix confusing variable name

Merge branch 'cc/replace-with-the-same-type'Jonathan Nieder Wed, 25 Sep 2013 06:35:24 +0000 (23:35 -0700)

Merge branch 'cc/replace-with-the-same-type'

* cc/replace-with-the-same-type:
Doc: 'replace' merge and non-merge commits
t6050-replace: use some long option names
replace: allow long option names
Documentation/replace: add Creating Replacement Objects section
t6050-replace: add test to clean up all the replace refs
t6050-replace: test that objects are of the same type
Documentation/replace: state that objects must be of the same type
replace: forbid replacing an object with one of a different type

Merge branch 'kb/msvc-compile'Jonathan Nieder Wed, 25 Sep 2013 06:31:58 +0000 (23:31 -0700)

Merge branch 'kb/msvc-compile'

* kb/msvc-compile:
Windows: do not redefine _WIN32_WINNT
MinGW: Fix stat definitions to work with MinGW runtime version 4.0
MSVC: fix stat definition hell
MSVC: fix compile errors due to macro redefinitions
MSVC: fix compile errors due to missing libintl.h

Merge branch 'nd/unpack-entry-optim-in-pack-objects'Jonathan Nieder Wed, 25 Sep 2013 06:29:55 +0000 (23:29 -0700)

Merge branch 'nd/unpack-entry-optim-in-pack-objects'

* nd/unpack-entry-optim-in-pack-objects:
pack-objects: no crc check when the cached version is used

Merge branch 'jk/shortlog-tolerate-broken-commit'Jonathan Nieder Wed, 25 Sep 2013 06:29:00 +0000 (23:29 -0700)

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

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

Merge branch 'jc/strcasecmp-pure-inline'Jonathan Nieder Wed, 25 Sep 2013 06:28:13 +0000 (23:28 -0700)

Merge branch 'jc/strcasecmp-pure-inline'

* jc/strcasecmp-pure-inline:
mailmap: work around implementations with pure inline strcasecmp

Merge branch 'sg/complete-untracked-filter'Jonathan Nieder Wed, 25 Sep 2013 06:27:44 +0000 (23:27 -0700)

Merge branch 'sg/complete-untracked-filter'

* sg/complete-untracked-filter:
completion: improve untracked directory filtering for filename completion

Merge branch 'nd/fetch-pack-error-reporting-fix'Jonathan Nieder Wed, 25 Sep 2013 06:27:02 +0000 (23:27 -0700)

Merge branch 'nd/fetch-pack-error-reporting-fix'

* nd/fetch-pack-error-reporting-fix:
fetch-pack.c: show correct command name that fails

Merge branch 'es/contacts-in-subdir'Jonathan Nieder Wed, 25 Sep 2013 06:25:23 +0000 (23:25 -0700)

Merge branch 'es/contacts-in-subdir'

* es/contacts-in-subdir:
contacts: fix to work in subdirectories

Merge branch 'jc/push-cas'Jonathan Nieder Wed, 25 Sep 2013 06:22:03 +0000 (23:22 -0700)

Merge branch 'jc/push-cas'

* jc/push-cas:
t5541: mark passing c-a-s test as success

Merge branch 'maint'Jonathan Nieder Wed, 25 Sep 2013 06:19:00 +0000 (23:19 -0700)

Merge branch 'maint'

* maint:
git-remote-mediawiki: bugfix for pages w/ >500 revisions

doc: don't claim that cherry calls patch-idMichael S. Tsirkin Tue, 24 Sep 2013 22:33:36 +0000 (01:33 +0300)

doc: don't claim that cherry calls patch-id

The id is already different for binary files. The hash used is an
implementation detail, so let's just document how diffs are compared.

Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>

git-remote-mediawiki: bugfix for pages w/ >500 revisionsBenoit Person Tue, 24 Sep 2013 19:32:30 +0000 (21:32 +0200)

git-remote-mediawiki: bugfix for pages w/ >500 revisions

Mediawiki introduces a new API for queries w/ more than 500 results in
version 1.21. That change triggered an infinite loop while cloning a
mediawiki with such a page.

The latest API renamed and moved the "continuing" information in the
response, necessary to build the next query. The code failed to retrieve
that information but still detected that it was in a "continuing
query". As a result, it launched the same query over and over again.

If a "continuing" information is detected in the response (old or new),
the next query is updated accordingly. If not, we quit assuming it's not
a continuing query.

Reported-by: Benjamin Cathey
Signed-off-by: Benoit Person <benoit.person@gmail.com>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>

sample pre-commit hook: use --bool when retrieving... Johan Herland Tue, 24 Sep 2013 07:52:56 +0000 (09:52 +0200)

sample pre-commit hook: use --bool when retrieving config var

Currently if you set

[hooks]
allowNonAscii

(or allownonascii = 1, or = yes) in your .git/config then the sample
pre-commit misinterprets the value as "false" and rejects non-ASCII
filenames. Use "git config --bool" to get the usual nicer boolean
handling.

Signed-off-by: Johan Herland <johan@herland.net>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>

clone: add a period after "done" to end the sentenceSebastian Schuberth Tue, 24 Sep 2013 10:24:46 +0000 (12:24 +0200)

clone: add a period after "done" to end the sentence

We have a period in other places after "done" (see e.g. clone_local), so
we should have one here, too.

Signed-off-by: Sebastian Schuberth <sschuberth@gmail.com>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>

Update draft release notes to 1.8.5 for the fifth batch... Junio C Hamano Fri, 20 Sep 2013 19:42:02 +0000 (12:42 -0700)

Update draft release notes to 1.8.5 for the fifth batch of topics

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

Merge branch 'jk/upload-pack-keepalive'Junio C Hamano Fri, 20 Sep 2013 19:39:05 +0000 (12:39 -0700)

Merge branch 'jk/upload-pack-keepalive'

When running "fetch -q", a long silence while the sender side
computes the set of objects to send can be mistaken by proxies as
dropped connection. The server side has been taught to send a small
empty messages to keep the connection alive.

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

Merge branch 'fc/at-head'Junio C Hamano Fri, 20 Sep 2013 19:38:10 +0000 (12:38 -0700)

Merge branch 'fc/at-head'

Instead of typing four capital letters "HEAD", you can say "@" now,
e.g. "git log @".

* fc/at-head:
Add new @ shortcut for HEAD
sha1-name: pass len argument to interpret_branch_name()

Merge branch 'dw/check-ignore-sans-index'Junio C Hamano Fri, 20 Sep 2013 19:37:32 +0000 (12:37 -0700)

Merge branch 'dw/check-ignore-sans-index'

"git check-ignore" follows the same rule as "git add" and "git
status" in that the ignore/exclude mechanism does not take effect
on paths that are already tracked. With "--no-index" option, it
can be used to diagnose which paths that should have been ignored
have been mistakenly added to the index.

* dw/check-ignore-sans-index:
check-ignore: Add option to ignore index contents

Merge branch 'mm/commit-template-squelch-advice-messages'Junio C Hamano Fri, 20 Sep 2013 19:36:31 +0000 (12:36 -0700)

Merge branch 'mm/commit-template-squelch-advice-messages'

From the commit log template, remove irrelevant "advice" messages
that are shared with "git status" output.

* mm/commit-template-squelch-advice-messages:
commit: disable status hints when writing to COMMIT_EDITMSG
wt-status: turn advice_status_hints into a field of wt_status
commit: factor status configuration is a helper function

Merge branch 'bk/refs-multi-update'Junio C Hamano Fri, 20 Sep 2013 19:36:12 +0000 (12:36 -0700)

Merge branch 'bk/refs-multi-update'

Give "update-refs" a "--stdin" option to read multiple update
requests and perform them in an all-or-none fashion.

* bk/refs-multi-update:
update-ref: add test cases covering --stdin signature
update-ref: support multiple simultaneous updates
refs: add update_refs for multiple simultaneous updates
refs: add function to repack without multiple refs
refs: factor delete_ref loose ref step into a helper
refs: factor update_ref steps into helpers
refs: report ref type from lock_any_ref_for_update
reset: rename update_refs to reset_refs

Merge branch 'nr/git-cd-to-a-directory'Junio C Hamano Fri, 20 Sep 2013 19:35:42 +0000 (12:35 -0700)

Merge branch 'nr/git-cd-to-a-directory'

Just like "make -C <directory>", make "git -C <directory> ..." to
go there before doing anything else.

* nr/git-cd-to-a-directory:
t0056: "git -C" test updates
git: run in a directory given with -C option

Merge branch 'mm/rebase-continue-freebsd-WB'Junio C Hamano Fri, 20 Sep 2013 19:34:36 +0000 (12:34 -0700)

Merge branch 'mm/rebase-continue-freebsd-WB'

Work around a bug in FreeBSD shell that caused a regression to "git
rebase" in v1.8.4. May need to be later applied to 'maint'.

* mm/rebase-continue-freebsd-WB:
rebase: fix run_specific_rebase's use of "return" on FreeBSD

Merge branch 'jh/checkout-auto-tracking'Junio C Hamano Fri, 20 Sep 2013 19:31:57 +0000 (12:31 -0700)

Merge branch 'jh/checkout-auto-tracking'

Fix 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 'bc/http-backend-allow-405'Junio C Hamano Fri, 20 Sep 2013 19:30:54 +0000 (12:30 -0700)

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

When the webserver responds with "405 Method Not Allowed", it
should tell the client what methods are allowed with the "Allow"
header.

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

Merge branch 'np/lookup-object-hashing'Junio C Hamano Fri, 20 Sep 2013 19:30:49 +0000 (12:30 -0700)

Merge branch 'np/lookup-object-hashing'

Micro optimize hash function used in the object hash table.

* np/lookup-object-hashing:
lookup_object: remove hashtable_index() and optimize hash_obj()

Merge branch 'hu/cherry-pick-previous-branch'Junio C Hamano Fri, 20 Sep 2013 19:29:57 +0000 (12:29 -0700)

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

Just like "git checkout -" knows to check out and "git merge -"
knows to merge the branch you were previously on, "git cherry-pick"
now understands "git cherry-pick -" to pick from the previous
branch.

* hu/cherry-pick-previous-branch:
cherry-pick: allow "-" as abbreviation of '@{-1}'

Merge branch 'mm/status-without-comment-char'Junio C Hamano Fri, 20 Sep 2013 19:29:01 +0000 (12:29 -0700)

Merge branch 'mm/status-without-comment-char'

"git status" now omits the prefix to make its output a comment in a
commit log editor, which is not necessary for human consumption.

We may want to tighten the output to omit unnecessary trailing blank
lines, but that does not have to be in the scope of this series.

* mm/status-without-comment-char:
t7508: avoid non-portable sed expression
status: add missing blank line after list of "other" files
tests: don't set status.displayCommentPrefix file-wide
status: disable display of '#' comment prefix by default
submodule summary: ignore --for-status option
wt-status: use argv_array API
builtin/stripspace.c: fix broken indentation

Merge branch 'rh/peeling-tag-to-tag'Junio C Hamano Fri, 20 Sep 2013 19:27:18 +0000 (12:27 -0700)

Merge branch 'rh/peeling-tag-to-tag'

Make "foo^{tag}" to peel a tag to itself, i.e. no-op., and fail if
"foo" is not a tag. "git rev-parse --verify v1.0^{tag}" would be a
more convenient way to say "test $(git cat-file -t v1.0) = tag".

* rh/peeling-tag-to-tag:
peel_onion: do not assume length of x_type globals
peel_onion(): add support for <rev>^{tag}

Merge branch 'jx/branch-vv-always-compare-with-upstream'Junio C Hamano Fri, 20 Sep 2013 19:26:57 +0000 (12:26 -0700)

Merge branch 'jx/branch-vv-always-compare-with-upstream'

"git branch -v -v" (and "git status") did not distinguish among a
branch that does not build on any other branch, a branch that is in
sync with the branch it builds on, and a branch that is configured
to build on some other branch that no longer exists.

* jx/branch-vv-always-compare-with-upstream:
status: always show tracking branch even no change
branch: report invalid tracking branch as gone

Merge branch 'nd/fetch-into-shallow'Junio C Hamano Fri, 20 Sep 2013 19:25:32 +0000 (12:25 -0700)

Merge branch 'nd/fetch-into-shallow'

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

* 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

t5541: mark passing c-a-s test as successJeff King Fri, 20 Sep 2013 10:25:00 +0000 (06:25 -0400)

t5541: mark passing c-a-s test as success

Commit 05c1eb1 (push: teach --force-with-lease to smart-http
transport) fixed the compare-and-swap test in t5541. It
tried to mark the test as passing by teaching the test
helper function to expect an extra "success or failure"
parameter, but forgot to actually use the parameter in the
helper.

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

completion: improve untracked directory filtering for... SZEDER Gábor Wed, 18 Sep 2013 17:06:08 +0000 (19:06 +0200)

completion: improve untracked directory filtering for filename completion

Similar to Bash's default filename completion, our git-aware filename
completion stops at directory boundaries, i.e. it doesn't offer the
full 'path/to/file' at first, but only 'path/'. To achieve that the
completion script runs 'git ls-files' with specific command line
options to get the list of relevant paths under the current directory,
and then processes each path to strip all but the base directory or
filename (see __git_index_files()).

To offer only modified and untracked files for 'git add' the
completion script runs 'git ls-files --exclude-standard --others
--modified'. This command lists all non-ignored files in untracked
directories, which leads to a noticeable delay caused by the
processing mentioned above if there are a lot of such files
(__git_index_files() specifies '--exclude-standard' internally):

$ mkdir untracked-dir
$ for i in {1..10000} ; do >untracked-dir/$i ; done
$ time __git_index_files "--others --modified"
untracked-dir

real 0m0.537s
user 0m0.452s
sys 0m0.160s

Eliminate this delay by additionally passing the '--directory
--no-empty-directory' options to 'git ls-files' to show only the
directory name of non-empty untracked directories instead their whole
content:

$ time __git_index_files "--others --modified --directory --no-empty-directory"
untracked-dir

real 0m0.029s
user 0m0.020s
sys 0m0.004s

Filename completion for 'git clean' suffers from the same delay, as it
offers untracked files, too. The fix could be the same, but since it
actually makes sense to 'git clean' empty directories, in this case we
only pass the '--directory' option to 'git ls-files'.

Reported-by: Isaac Levy <ilevy@google.com>
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>

Merge branch 'jk/config-int-range-check'Junio C Hamano Thu, 19 Sep 2013 18:04:25 +0000 (11:04 -0700)

Merge branch 'jk/config-int-range-check'

* jk/config-int-range-check:
compat/mingw.h: define PRId64

compat/mingw.h: define PRId64Johannes Sixt Thu, 19 Sep 2013 07:17:07 +0000 (09:17 +0200)

compat/mingw.h: define PRId64

Provide PRId64 alongside PRIuMAX.

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

t0056: "git -C" test updatesNazri Ramliy Thu, 19 Sep 2013 13:18:54 +0000 (21:18 +0800)

t0056: "git -C" test updates

Instead of repeating the text to record as the commit log message
and string we expect to see in "log" output, use the same variable
to avoid them going out of sync.

Use different names for test files in different directories to
improve our chance to catch future breakages that makes "-C <dir>"
go to a place that is different from what was specified.

Signed-off-by: Nazri Ramliy <ayiehere@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

shortlog: ignore commits with missing authorsJeff King Wed, 18 Sep 2013 21:14:00 +0000 (17:14 -0400)

shortlog: ignore commits with missing authors

Most of git's traversals are robust against minor breakages
in commit data. For example, "git log" will still output an
entry for a commit that has a broken encoding or missing
author, and will not abort the whole operation.

Shortlog, on the other hand, will die as soon as it sees a
commit without an author, meaning that a repository with
a broken commit cannot get any shortlog output at all.

Let's downgrade this fatal error to a warning, and continue
the operation.

We simply ignore the commit and do not count it in the total
(since we do not have any author under which to file it).
Alternatively, we could output some kind of "<empty>" record
to collect these bogus commits. It is probably not worth it,
though; we have already warned to stderr, so the user is
aware that such bogosities exist, and any placeholder we
came up with would either be syntactically invalid, or would
potentially conflict with real data.

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

Merge branch 'maint'Junio C Hamano Wed, 18 Sep 2013 19:08:38 +0000 (12:08 -0700)

Merge branch 'maint'

* maint:
Start preparing for 1.8.4.1

Start preparing for 1.8.4.1Junio C Hamano Wed, 18 Sep 2013 19:08:09 +0000 (12:08 -0700)

Start preparing for 1.8.4.1

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

Merge branch 'bc/completion-for-bash-3.0' into maintJunio C Hamano Wed, 18 Sep 2013 19:00:11 +0000 (12:00 -0700)

Merge branch 'bc/completion-for-bash-3.0' into maint

Some people still use rather old versions of bash, which cannot grok
some constructs like 'printf -v varname' the prompt and completion
code started to use recently.

* bc/completion-for-bash-3.0:
contrib/git-prompt.sh: handle missing 'printf -v' more gracefully
t9902-completion.sh: old Bash still does not support array+=('') notation
git-completion.bash: use correct Bash/Zsh array length syntax

Merge branch 'mm/no-shell-escape-in-die-message' into... Junio C Hamano Wed, 18 Sep 2013 18:59:50 +0000 (11:59 -0700)

Merge branch 'mm/no-shell-escape-in-die-message' into maint

Fixes a minor bug in "git rebase -i" (there could be others, as the
root cause is pretty generic) where the code feeds a random, data
dependeant string to 'echo' and expects it to come out literally.

* mm/no-shell-escape-in-die-message:
die_with_status: use "printf '%s\n'", not "echo"

Merge branch 'jl/some-submodule-config-are-not-boolean... Junio C Hamano Wed, 18 Sep 2013 18:59:35 +0000 (11:59 -0700)

Merge branch 'jl/some-submodule-config-are-not-boolean' into maint

* jl/some-submodule-config-are-not-boolean:
avoid segfault on submodule.*.path set to an empty "true"

Merge branch 'tr/log-full-diff-keep-true-parents' into... Junio C Hamano Wed, 18 Sep 2013 18:59:05 +0000 (11:59 -0700)

Merge branch 'tr/log-full-diff-keep-true-parents' into maint

Output from "git log --full-diff -- <pathspec>" looked strange,
because comparison was done with the previous ancestor that touched
the specified <pathspec>, causing the patches for paths outside the
pathspec to show more than the single commit has changed.

* tr/log-full-diff-keep-true-parents:
log: use true parents for diff when walking reflogs
log: use true parents for diff even when rewriting

Merge branch 'jc/transport-do-not-use-connect-twice... Junio C Hamano Wed, 18 Sep 2013 18:58:18 +0000 (11:58 -0700)

Merge branch 'jc/transport-do-not-use-connect-twice-in-fetch' into maint

The auto-tag-following code in "git fetch" tries to reuse the same
transport twice when the serving end does not cooperate and does
not give tags that point to commits that are asked for as part of
the primary transfer. Unfortunately, Git-aware transport helper
interface is not designed to be used more than once, hence this
does not work over smart-http transfer.

* jc/transport-do-not-use-connect-twice-in-fetch:
builtin/fetch.c: Fix a sparse warning
fetch: work around "transport-take-over" hack
fetch: refactor code that fetches leftover tags
fetch: refactor code that prepares a transport
fetch: rename file-scope global "transport" to "gtransport"
t5802: add test for connect helper

Merge branch 'sp/clip-read-write-to-8mb' into maintJunio C Hamano Wed, 18 Sep 2013 18:57:58 +0000 (11:57 -0700)

Merge branch 'sp/clip-read-write-to-8mb' into maint

Send a large request to read(2)/write(2) as a smaller but still
reasonably large chunks, which would improve the latency when the
operation needs to be killed and incidentally works around broken
64-bit systems that cannot take a 2GB write or read in one go.

* sp/clip-read-write-to-8mb:
Revert "compat/clipped-write.c: large write(2) fails on Mac OS X/XNU"
xread, xwrite: limit size of IO to 8MB

Merge branch 'jk/mailmap-incomplete-line' into maintJunio C Hamano Wed, 18 Sep 2013 18:57:32 +0000 (11:57 -0700)

Merge branch 'jk/mailmap-incomplete-line' into maint

* jk/mailmap-incomplete-line:
mailmap: handle mailmap blobs without trailing newlines

Update draft release notes to 1.8.5 for the fourth... Junio C Hamano Wed, 18 Sep 2013 18:55:59 +0000 (11:55 -0700)

Update draft release notes to 1.8.5 for the fourth batch of topics

Merge branch 'jc/url-match'Junio C Hamano Wed, 18 Sep 2013 18:48:30 +0000 (11:48 -0700)

Merge branch 'jc/url-match'

While normalizing a URL, we forgot that the buffer that holds it
could be relocated when it grows, which was a brown-paper-bag bug
that can lead to a crash introduced on 'master' post 1.8.4 release.

* jc/url-match:
urlmatch.c: recompute pointer after append_normalized_escapes

Merge branch 'jc/cvsserver-perm-bit-fix'Junio C Hamano Wed, 18 Sep 2013 18:48:01 +0000 (11:48 -0700)

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

"git cvsserver" computed the permission mode bits incorrectly for
executable files.

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

Merge branch 'bc/send-email-ssl-die-message-fix'Junio C Hamano Wed, 18 Sep 2013 18:47:27 +0000 (11:47 -0700)

Merge branch 'bc/send-email-ssl-die-message-fix'

When send-email comes up with an error message to die with upon
failure to start an SSL session, it tried to read the error string
from a wrong place.

* bc/send-email-ssl-die-message-fix:
send-email: don't call methods on undefined values

Merge branch 'uh/git-svn-serf-fix'Junio C Hamano Wed, 18 Sep 2013 18:46:06 +0000 (11:46 -0700)

Merge branch 'uh/git-svn-serf-fix'

"git-svn" used with SVN 1.8.0 when talking over https:// connection
dumped core due to a bug in the serf library that SVN uses. Work
it around on our side, even though the SVN side is being fixed.

* uh/git-svn-serf-fix:
git-svn: fix termination issues for remote svn connections

Merge branch 'fc/contrib-bzr-hg-fixes'Junio C Hamano Wed, 18 Sep 2013 18:45:49 +0000 (11:45 -0700)

Merge branch 'fc/contrib-bzr-hg-fixes'

* fc/contrib-bzr-hg-fixes:
contrib/remote-helpers: quote variable references in redirection targets
contrib/remote-helpers: style updates for test scripts
remote-hg: use notes to keep track of Hg revisions
remote-helpers: cleanup more global variables
remote-helpers: trivial style fixes
remote-hg: improve basic test
remote-hg: add missing &&s in the test
remote-hg: fix test
remote-bzr: make bzr branches configurable per-repo
remote-bzr: fix export of utf-8 authors

Merge branch 'js/add-i-mingw'Junio C Hamano Wed, 18 Sep 2013 18:45:06 +0000 (11:45 -0700)

Merge branch 'js/add-i-mingw'

The implementation of "add -i" has a crippling code to work around
ActiveState Perl limitation but it by mistake also triggered on Git
for Windows where MSYS perl is used.

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

Merge branch 'ks/p4-view-spec'Junio C Hamano Wed, 18 Sep 2013 18:44:50 +0000 (11:44 -0700)

Merge branch 'ks/p4-view-spec'

* ks/p4-view-spec:
git p4: implement view spec wildcards with "p4 where"
git p4 test: sanitize P4CHARSET

Merge branch 'jk/duplicate-objects-in-packs'Junio C Hamano Wed, 18 Sep 2013 18:43:47 +0000 (11:43 -0700)

Merge branch 'jk/duplicate-objects-in-packs'

A packfile that stores the same object more than once is broken and
will be rejected by "git index-pack" that is run when receiving data
over the wire.

* jk/duplicate-objects-in-packs:
t5308: check that index-pack --strict detects duplicate objects
test index-pack on packs with recoverable delta cycles
add tests for indexing packs with delta cycles
sha1-lookup: handle duplicate keys with GIT_USE_LOOKUP
test-sha1: add a binary output mode

Merge branch 'nd/git-dir-pointing-at-gitfile'Junio C Hamano Wed, 18 Sep 2013 18:42:36 +0000 (11:42 -0700)

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

We made sure that we notice the user-supplied GIT_DIR is actually a
gitfile, but did not do the same when the default ".git" is a gitfile.

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

Merge branch 'jk/pager-bypass-cat-for-default-pager'Junio C Hamano Wed, 18 Sep 2013 18:42:15 +0000 (11:42 -0700)

Merge branch 'jk/pager-bypass-cat-for-default-pager'

If a build-time fallback is set to "cat" instead of "less", we
should apply the same "no subprocess or pipe" optimization as we
apply to user-supplied GIT_PAGER=cat.

* jk/pager-bypass-cat-for-default-pager:
pager: turn on "cat" optimization for DEFAULT_PAGER

Merge branch 'fc/t3200-fixes'Junio C Hamano Wed, 18 Sep 2013 18:42:13 +0000 (11:42 -0700)

Merge branch 'fc/t3200-fixes'

* fc/t3200-fixes:
t: branch: fix broken && chains
t: branch: fix typo
t: branch: trivial style fix

Merge branch 'fc/rev-parse-test-updates'Junio C Hamano Wed, 18 Sep 2013 18:42:03 +0000 (11:42 -0700)

Merge branch 'fc/rev-parse-test-updates'

Modernize tests.

* fc/rev-parse-test-updates:
rev-parse test: use standard test functions for setup
rev-parse test: use test_cmp instead of "test" builtin
rev-parse test: use test_must_fail, not "if <command>; then false; fi"
rev-parse test: modernize quoting and whitespace

fetch-pack.c: show correct command name that failsNguyễn Thái Ngọc Duy Wed, 18 Sep 2013 13:41:18 +0000 (20:41 +0700)

fetch-pack.c: show correct command name that fails

When --shallow-file is added to the command line, it has to be
before the subcommand name, the first argument won't be the command
name any more. Stop assuming that and keep track of the command name
explicitly.

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

contacts: fix to work in subdirectoriesEric Sunshine Wed, 18 Sep 2013 02:52:05 +0000 (22:52 -0400)

contacts: fix to work in subdirectories

Unlike other git commands which work correctly at the top-level or in a
subdirectory, git-contacts fails when invoked in a subdirectory. This is
because it invokes git-blame with pathnames relative to the top-level,
but git-blame interprets the pathnames as relative to the current
directory. Fix this.

Signed-off-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Update draft release notes to 1.8.5 for the first half... Junio C Hamano Tue, 17 Sep 2013 18:43:58 +0000 (11:43 -0700)

Update draft release notes to 1.8.5 for the first half of the fourth batch

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

Merge branch 'jk/remove-remote-helpers-in-python'Junio C Hamano Tue, 17 Sep 2013 18:43:01 +0000 (11:43 -0700)

Merge branch 'jk/remove-remote-helpers-in-python'

Remove now disused remote-helpers framework for helpers written in
Python.

* jk/remove-remote-helpers-in-python:
git_remote_helpers: remove little used Python library

Merge branch 'ss/doclinks'Junio C Hamano Tue, 17 Sep 2013 18:42:54 +0000 (11:42 -0700)

Merge branch 'ss/doclinks'

When we converted many documents that were traditionally text-only
to be formatted to AsciiDoc, we did not update links that point at
them to refer to the formatted HTML files.

* ss/doclinks:
Documentation: make AsciiDoc links always point to HTML files

Merge branch 'rh/ishes-doc'Junio C Hamano Tue, 17 Sep 2013 18:42:51 +0000 (11:42 -0700)

Merge branch 'rh/ishes-doc'

We liberally use "committish" and "commit-ish" (and "treeish" and
"tree-ish"); as these are non-words, let's unify these terms to
their dashed form. More importantly, clarify the documentation on
object peeling using these terms.

* rh/ishes-doc:
glossary: fix and clarify the definition of 'ref'
revisions.txt: fix and clarify <rev>^{<type>}
glossary: more precise definition of tree-ish (a.k.a. treeish)
use 'commit-ish' instead of 'committish'
use 'tree-ish' instead of 'treeish'
glossary: define commit-ish (a.k.a. committish)
glossary: mention 'treeish' as an alternative to 'tree-ish'