gitweb.git
Merge branch 'rs/archive-zip-utf8'Junio C Hamano Sun, 30 Sep 2012 05:28:28 +0000 (22:28 -0700)

Merge branch 'rs/archive-zip-utf8'

With another reroll, it looks like the series is as polished as it
could be.

* rs/archive-zip-utf8:
archive-zip: write extended timestamp
archive-zip: support UTF-8 paths
Revert "archive-zip: support UTF-8 paths"
archive-zip: support UTF-8 paths

Merge branch 'jk/smart-http-switch'Junio C Hamano Sun, 30 Sep 2012 05:28:24 +0000 (22:28 -0700)

Merge branch 'jk/smart-http-switch'

Allows users to turn off smart-http when talking to dumb-only
servers.

* jk/smart-http-switch:
remote-curl: let users turn off smart http
remote-curl: rename is_http variable

Merge branch 'sp/maint-http-enable-gzip'Junio C Hamano Sun, 30 Sep 2012 05:28:20 +0000 (22:28 -0700)

Merge branch 'sp/maint-http-enable-gzip'

Allows a more common 'gzip' Accept-Encoding to be used.

* sp/maint-http-enable-gzip:
Enable info/refs gzip decompression in HTTP client

Merge branch 'sp/maint-http-info-refs-no-retry'Junio C Hamano Sun, 30 Sep 2012 05:28:16 +0000 (22:28 -0700)

Merge branch 'sp/maint-http-info-refs-no-retry'

Kills an old workaround for a unlikely server misconfiguration that
hurts debuggability.

* sp/maint-http-info-refs-no-retry:
Revert "retry request without query when info/refs?query fails"

Merge branch 'aw/rebase-i-edit-todo'Junio C Hamano Sun, 30 Sep 2012 05:28:12 +0000 (22:28 -0700)

Merge branch 'aw/rebase-i-edit-todo'

Teach an option to edit the insn sheet to "git rebase -i".

* aw/rebase-i-edit-todo:
rebase -i: suggest using --edit-todo to fix an unknown instruction
rebase -i: Add tests for "--edit-todo"
rebase -i: Teach "--edit-todo" action
rebase -i: Refactor help messages for todo file
rebase usage: subcommands can not be combined with -i

Merge branch 'js/rebase-exec-command-not-found'Junio C Hamano Sun, 30 Sep 2012 05:28:05 +0000 (22:28 -0700)

Merge branch 'js/rebase-exec-command-not-found'

* js/rebase-exec-command-not-found:
rebase -i: fix misleading error message after 'exec no-such' instruction

Merge branch 'rr/test-use-shell-path-not-shell'Junio C Hamano Sun, 30 Sep 2012 05:27:56 +0000 (22:27 -0700)

Merge branch 'rr/test-use-shell-path-not-shell'

Fixes a brown-paper bag bug.

* rr/test-use-shell-path-not-shell:
test-lib: use $SHELL_PATH, not $SHELL

Update draft release notes to 1.8.0Junio C Hamano Tue, 25 Sep 2012 17:44:32 +0000 (10:44 -0700)

Update draft release notes to 1.8.0

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

Merge branch 'rr/test-make-sure-we-have-git'Junio C Hamano Tue, 25 Sep 2012 17:40:24 +0000 (10:40 -0700)

Merge branch 'rr/test-make-sure-we-have-git'

Only the first test t0000 in the test suite made sure we have built
Git to be tested; move the check to test-lib so that it applies to
all tests equally.

* rr/test-make-sure-we-have-git:
t/test-lib: make sure Git has already been built

Merge branch 'js/hp-nonstop'Junio C Hamano Tue, 25 Sep 2012 17:40:21 +0000 (10:40 -0700)

Merge branch 'js/hp-nonstop'

Port to HP NonStop aka Tandem.

* js/hp-nonstop:
Port to HP NonStop

Merge branch 'js/poll-emu'Junio C Hamano Tue, 25 Sep 2012 17:40:18 +0000 (10:40 -0700)

Merge branch 'js/poll-emu'

* js/poll-emu:
make poll() work on platforms that can't recv() on a non-socket
poll() exits too early with EFAULT if 1st arg is NULL
fix some win32 specific dependencies in poll.c
make poll available for other platforms lacking it

Merge branch 'ep/malloc-check-perturb'Junio C Hamano Tue, 25 Sep 2012 17:40:14 +0000 (10:40 -0700)

Merge branch 'ep/malloc-check-perturb'

Run our test scripts with MALLOC_CHECK_ and MALLOC_PERTURB_, the
built-in memory access checking facility GNU libc has.

* ep/malloc-check-perturb:
MALLOC_CHECK: various clean-ups
Add MALLOC_CHECK_ and MALLOC_PERTURB_ libc env to the test suite for detecting heap corruption

Merge branch 'aj/xfuncname-ada'Junio C Hamano Tue, 25 Sep 2012 17:40:11 +0000 (10:40 -0700)

Merge branch 'aj/xfuncname-ada'

* aj/xfuncname-ada:
Add userdiff patterns for Ada

Merge branch 'jc/maint-mailinfo-mime-attr'Junio C Hamano Tue, 25 Sep 2012 17:39:56 +0000 (10:39 -0700)

Merge branch 'jc/maint-mailinfo-mime-attr'

When "git am" is fed an input that has multiple "Content-type: ..."
header, it did not grok charset= attribute correctly.

* jc/maint-mailinfo-mime-attr:
mailinfo: do not concatenate charset= attribute values from mime headers

Merge branch 'po/maint-docs'Junio C Hamano Tue, 25 Sep 2012 17:39:52 +0000 (10:39 -0700)

Merge branch 'po/maint-docs'

Various documentation fixups.

* po/maint-docs:
Doc branch: show -vv option and alternative
Doc clean: add See Also link
Doc add: link gitignore
Doc: separate gitignore pattern sources
Doc: shallow clone deepens _to_ new depth

Merge branch 'db/doc-custom-xmlto'Junio C Hamano Tue, 25 Sep 2012 17:39:48 +0000 (10:39 -0700)

Merge branch 'db/doc-custom-xmlto'

* db/doc-custom-xmlto:
Documentation/Makefile: Allow custom XMLTO binary

Merge branch 'maint'Junio C Hamano Tue, 25 Sep 2012 17:25:52 +0000 (10:25 -0700)

Merge branch 'maint'

* maint:
Revert "completion: fix shell expansion of items"

test-lib: use $SHELL_PATH, not $SHELLRamkumar Ramachandra Sat, 22 Sep 2012 04:55:10 +0000 (10:25 +0530)

test-lib: use $SHELL_PATH, not $SHELL

The codepath for handling "--tee" ends up relaunching the test
script under a shell, and that one has to be a Bourne. But we
incorrectly used $SHELL, which could be a non-Bourne (e.g. zsh or
csh); we have the Makefile variable $SHELL_PATH for exactly that,
so use it instead.

Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Revert "completion: fix shell expansion of items"Jeff King Tue, 25 Sep 2012 04:31:19 +0000 (00:31 -0400)

Revert "completion: fix shell expansion of items"

This reverts commit 25ae7cfd19c8f21721363c64163cd5d9d1135b20.

That patch does fix expansion of weird variables in some
simple tests, but it also seems to break other things, like
expansion of refs by "git checkout".

While we're sorting out the correct solution, we are much
better with the original bug (people with metacharacters in
their completions occasionally see an error message) than
the current bug (ref completion does not work at all).

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

Sync with maintJunio C Hamano Mon, 24 Sep 2012 19:50:36 +0000 (12:50 -0700)

Sync with maint

Start preparation for 1.7.12.2Junio C Hamano Mon, 24 Sep 2012 19:50:00 +0000 (12:50 -0700)

Start preparation for 1.7.12.2

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

Merge branch 'jc/maint-blame-no-such-path' into maintJunio C Hamano Mon, 24 Sep 2012 19:40:02 +0000 (12:40 -0700)

Merge branch 'jc/maint-blame-no-such-path' into maint

Even during a conflicted merge, "git blame $path" always meant to
blame uncommitted changes to the "working tree" version; make it
more useful by showing cleanly merged parts as coming from the other
branch that is being merged.

This incidentally fixes an unrelated problem on a case insensitive
filesystem, where "git blame MAKEFILE" run in a history that has
"Makefile" but not "MAKEFILE" did not say "No such file MAKEFILE in
HEAD" but pretended as if "MAKEFILE" was a newly added file.

* jc/maint-blame-no-such-path:
blame: allow "blame file" in the middle of a conflicted merge
blame $path: avoid getting fooled by case insensitive filesystems

Merge branch 'dj/fetch-all-tags' into maintJunio C Hamano Mon, 24 Sep 2012 19:39:21 +0000 (12:39 -0700)

Merge branch 'dj/fetch-all-tags' into maint

"git fetch --all", when passed "--no-tags", did not honor the
"--no-tags" option while fetching from individual remotes (the same
issue existed with "--tags", but combination "--all --tags" makes
much less sense than "--all --no-tags").

* dj/fetch-all-tags:
fetch --all: pass --tags/--no-tags through to each remote
submodule: use argv_array instead of hand-building arrays
fetch: use argv_array instead of hand-building arrays
argv-array: fix bogus cast when freeing array
argv-array: add pop function

Improve the description of GIT_PS1_SHOWUPSTREAMJonathan "Duke" Leto Mon, 24 Sep 2012 17:41:26 +0000 (10:41 -0700)

Improve the description of GIT_PS1_SHOWUPSTREAM

Describe what '=' means in the output of __git_ps1 when using
GIT_PS1_SHOWUPSTREAM, which was not previously described.

Signed-off-by: Jonathan "Duke" Leto <jonathan@leto.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

archive-zip: write extended timestampRené Scharfe Mon, 24 Sep 2012 15:56:23 +0000 (17:56 +0200)

archive-zip: write extended timestamp

File modification times in ZIP files are encoded in DOS format: local
time with a granularity of two seconds. Add an extra field to all
archive entries to also record the mtime in Unix' fashion, as UTC with
a granularity of one second.

This has the desirable side-effect of convincing Info-ZIP unzip 6.00
to respect general purpose flag 11, which is used to indicate that a
file name is encoded in UTF-8. Any extra field would do, actually,
but the extended timestamp is a reasonably small one (22 bytes per
entry). Archives created by Info-ZIP zip 3.0 contain it, too (but
with ctime and atime as well).

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

Merge branch 'mh/fetch-filter-refs'Junio C Hamano Fri, 21 Sep 2012 18:17:00 +0000 (11:17 -0700)

Merge branch 'mh/fetch-filter-refs'

Finishing touch to update documentation of string-list to make sure
the earlier rewrite of ref-list match logic that depends on its sort
order will not get broken.

* mh/fetch-filter-refs:
string_list API: document what "sorted" means

Merge branch 'jc/maint-log-grep-all-match-1'Junio C Hamano Fri, 21 Sep 2012 18:14:49 +0000 (11:14 -0700)

Merge branch 'jc/maint-log-grep-all-match-1'

A finishing touch to make two symbols that were meant to be file-scope
static really so.

* jc/maint-log-grep-all-match-1:
grep.c: make two symbols really file-scope static this time

remote-curl: let users turn off smart httpJeff King Thu, 20 Sep 2012 21:30:58 +0000 (17:30 -0400)

remote-curl: let users turn off smart http

Usually there is no need for users to specify whether an
http remote is smart or dumb; the protocol is designed so
that a single initial request is made, and the client can
determine the server's capability from the response.

However, some misconfigured dumb-only servers may not like
the initial request by a smart client, as it contains a
query string. Until recently, commit 703e6e7 worked around
this by making a second request. However, that commit was
recently reverted due to its side effect of masking the
initial request's error code.

Since git has had that workaround for several years, we
don't know exactly how many such misconfigured servers are
out there. The reversion of 703e6e7 assumes they are rare
enough not to worry about. Still, that reversion leaves
somebody who does run into such a server with no escape
hatch at all. Let's give them an environment variable they
can tweak to perform the "dumb" request.

This is intentionally not a documented interface. It's
overly simple and is really there for debugging in case
somebody does complain about git not working with their
server. A real user-facing interface would entail a
per-remote or per-URL config variable.

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

Merge branch 'maint'Junio C Hamano Thu, 20 Sep 2012 22:55:47 +0000 (15:55 -0700)

Merge branch 'maint'

* maint:
Documentation: Document signature showing options
completion: fix shell expansion of items

Merge branch 'nd/maint-diffstat-summary' into maintJunio C Hamano Thu, 20 Sep 2012 22:55:31 +0000 (15:55 -0700)

Merge branch 'nd/maint-diffstat-summary' into maint

* nd/maint-diffstat-summary:
Revert diffstat back to English

Merge branch 'jw/doc-commit-title' into maintJunio C Hamano Thu, 20 Sep 2012 22:55:22 +0000 (15:55 -0700)

Merge branch 'jw/doc-commit-title' into maint

* jw/doc-commit-title:
Documentation: describe subject more precisely

Merge branch 'dg/run-command-child-cleanup' into maintJunio C Hamano Thu, 20 Sep 2012 22:55:12 +0000 (15:55 -0700)

Merge branch 'dg/run-command-child-cleanup' into maint

* dg/run-command-child-cleanup:
run-command.c: fix broken list iteration in clear_child_for_cleanup

Merge branch 'jc/mailinfo-RE' into maintJunio C Hamano Thu, 20 Sep 2012 22:55:03 +0000 (15:55 -0700)

Merge branch 'jc/mailinfo-RE' into maint

* jc/mailinfo-RE:
mailinfo: strip "RE: " prefix

Merge branch 'sn/ls-remote-get-url-doc' into maintJunio C Hamano Thu, 20 Sep 2012 22:54:57 +0000 (15:54 -0700)

Merge branch 'sn/ls-remote-get-url-doc' into maint

* sn/ls-remote-get-url-doc:
ls-remote: document the '--get-url' option

Merge branch 'nd/log-n-doc' into maintJunio C Hamano Thu, 20 Sep 2012 22:54:43 +0000 (15:54 -0700)

Merge branch 'nd/log-n-doc' into maint

* nd/log-n-doc:
doc: move rev-list option -<n> from git-log.txt to rev-list-options.txt

Merge branch 'nd/maint-remote-remove' into maintJunio C Hamano Thu, 20 Sep 2012 22:53:31 +0000 (15:53 -0700)

Merge branch 'nd/maint-remote-remove' into maint

* nd/maint-remote-remove:
remote: prefer subcommand name 'remove' to 'rm'

grep.c: make two symbols really file-scope static this... Junio C Hamano Thu, 20 Sep 2012 21:20:09 +0000 (14:20 -0700)

grep.c: make two symbols really file-scope static this time

Adding a declaration at the beginning is not sufficient for obvious
reasons. The definition has to be made static.

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

remote-curl: rename is_http variableJeff King Thu, 20 Sep 2012 17:00:22 +0000 (13:00 -0400)

remote-curl: rename is_http variable

We don't actually care whether the connection is http or
not; what we care about is whether it might be smart http.
Rename the variable to be more accurate, which will make it
easier to later make smart-http optional.

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

Documentation: Document signature showing optionsStephen Boyd Thu, 20 Sep 2012 08:10:38 +0000 (01:10 -0700)

Documentation: Document signature showing options

The pretty formats for GPG signatures were introduced but never
documented. Use the documentation from the commit that introduced them.
Do the same for the --show-signature option added to git log and
friends.

Signed-off-by: Stephen Boyd <bebarino@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Enable info/refs gzip decompression in HTTP clientShawn O. Pearce Wed, 19 Sep 2012 23:12:02 +0000 (16:12 -0700)

Enable info/refs gzip decompression in HTTP client

Some HTTP servers try to use gzip compression on the /info/refs
request to save transfer bandwidth. Repositories with many tags
may find the /info/refs request can be gzipped to be 50% of the
original size due to the few but often repeated bytes used (hex
SHA-1 and commonly digits in tag names).

For most HTTP requests enable "Accept-Encoding: gzip" ensuring
the /info/refs payload can use this encoding format.

Only request gzip encoding from servers. Although deflate is
supported by libcurl, most servers have standardized on gzip
encoding for compression as that is what most browsers support.
Asking for deflate increases request sizes by a few bytes, but is
unlikely to ever be used by a server.

Disable the Accept-Encoding header on probe RPCs as response bodies
are supposed to be exactly 4 bytes long, "0000". The HTTP headers
requesting and indicating compression use more space than the data
transferred in the body.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Revert "retry request without query when info/refs... Shawn O. Pearce Thu, 20 Sep 2012 05:58:00 +0000 (22:58 -0700)

Revert "retry request without query when info/refs?query fails"

This reverts commit 703e6e76a14825e5b0c960d525f34e607154b4f7.

Retrying without the query parameter was added as a workaround
for a single broken HTTP server at git.debian.org[1]. The server
was misconfigured to route every request with a query parameter
into gitweb.cgi. Admins fixed the server's configuration within
16 hours of the bug report to the Git mailing list, but we still
patched Git with this fallback and have been paying for it since.

Most Git hosting services configure the smart HTTP protocol and the
retry logic confuses users when there is a transient HTTP error as
Git dropped the real error from the smart HTTP request. Removing the
retry makes root causes easier to identify.

[1] http://thread.gmane.org/gmane.comp.version-control.git/137609

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Acked-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

completion: fix shell expansion of itemsFelipe Contreras Thu, 20 Sep 2012 02:15:15 +0000 (04:15 +0200)

completion: fix shell expansion of items

As reported by Jeroen Meijer[1]; the current code doesn't deal properly
with items (tags, branches, etc.) that have ${} in them because they get
expaned by bash while using compgen.

A simple solution is to quote the items so they get expanded properly
(\$\{\}).

In order to achieve that I took bash-completion's quote() function,
which is rather simple, and renamed it to __git_quote() as per Jeff
King's suggestion.

Solves the original problem for me.

[1] http://article.gmane.org/gmane.comp.version-control.git/201596

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

Port to HP NonStopJoachim Schmitz Wed, 19 Sep 2012 10:03:30 +0000 (12:03 +0200)

Port to HP NonStop

Includes the addition of some new defines and their description for others to use.

Signed-off-by: Joachim Schmitz <jojo@schmitz-digital.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Documentation/Makefile: Allow custom XMLTO binaryDave Borowitz Wed, 19 Sep 2012 17:06:37 +0000 (10:06 -0700)

Documentation/Makefile: Allow custom XMLTO binary

Signed-off-by: Dave Borowitz <dborowitz@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

rebase -i: suggest using --edit-todo to fix an unknown... Johannes Sixt Wed, 19 Sep 2012 06:43:54 +0000 (08:43 +0200)

rebase -i: suggest using --edit-todo to fix an unknown instruction

We have now an explicit UI to edit the todo sheet and need not disclose
the name of the file.

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

Doc branch: show -vv option and alternativePhilip Oakley Tue, 18 Sep 2012 23:25:34 +0000 (00:25 +0100)

Doc branch: show -vv option and alternative

Indicate that the -v option can be given twice in the short options.
Without it users pass over the option. Also indicate the alternate
'git remote show' method.

Signed-off-by: Philip Oakley <philipoakley@iee.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Doc clean: add See Also linkPhilip Oakley Tue, 18 Sep 2012 23:25:33 +0000 (00:25 +0100)

Doc clean: add See Also link

'git clean' is controlled by gitignore. Provide See Also link for it.

Use of core.excludesfile is implied.

Signed-off-by: Philip Oakley <philipoakley@iee.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Doc add: link gitignorePhilip Oakley Tue, 18 Sep 2012 23:25:32 +0000 (00:25 +0100)

Doc add: link gitignore

Use a gitignore link rather than the gitrepository-
layout link.

Signed-off-by: Philip Oakley <philipoakley@iee.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Doc: separate gitignore pattern sourcesPhilip Oakley Tue, 18 Sep 2012 23:25:31 +0000 (00:25 +0100)

Doc: separate gitignore pattern sources

Use separate bulleted paragraphs for the three different gitignore
pattern sources.

Signed-off-by: Philip Oakley <philipoakley@iee.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Doc: shallow clone deepens _to_ new depthPhilip Oakley Tue, 18 Sep 2012 23:25:28 +0000 (00:25 +0100)

Doc: shallow clone deepens _to_ new depth

Clarify that 'depth=' specifies the new depth from the remote's
branch tip. It does not add the depth to the existing shallow clone.
(details from pack-protocol.txt).
Clarify that tags are not fetched. (details from shallow.txt)

Signed-off-by: Philip Oakley <philipoakley@iee.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Update draft release notes to 1.8.0Junio C Hamano Tue, 18 Sep 2012 21:43:12 +0000 (14:43 -0700)

Update draft release notes to 1.8.0

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

Merge branch 'jc/maint-log-grep-all-match'Junio C Hamano Tue, 18 Sep 2012 21:37:53 +0000 (14:37 -0700)

Merge branch 'jc/maint-log-grep-all-match'

Fix a long-standing bug in "git log --grep" when multiple "--grep"
are used together with "--all-match" and "--author" or "--committer".

* jc/maint-log-grep-all-match:
t7810-grep: test --all-match with multiple --grep and --author options
t7810-grep: test interaction of multiple --grep and --author options
t7810-grep: test multiple --author with --all-match
t7810-grep: test multiple --grep with and without --all-match
t7810-grep: bring log --grep tests in common form
grep.c: mark private file-scope symbols as static
log: document use of multiple commit limiting options
log --grep/--author: honor --all-match honored for multiple --grep patterns
grep: show --debug output only once
grep: teach --debug option to dump the parse tree

Merge branch 'jc/make-static'Junio C Hamano Tue, 18 Sep 2012 21:37:46 +0000 (14:37 -0700)

Merge branch 'jc/make-static'

Turn many file-scope private symbols to static to reduce the
global namespace contamination.

* jc/make-static:
sequencer.c: mark a private file-scope symbol as static
ident.c: mark private file-scope symbols as static
trace.c: mark a private file-scope symbol as static
wt-status.c: mark a private file-scope symbol as static
read-cache.c: mark a private file-scope symbol as static
strbuf.c: mark a private file-scope symbol as static
sha1-array.c: mark a private file-scope symbol as static
symlinks.c: mark private file-scope symbols as static
notes.c: mark a private file-scope symbol as static
rerere.c: mark private file-scope symbols as static
graph.c: mark private file-scope symbols as static
diff.c: mark a private file-scope symbol as static
commit.c: mark a file-scope private symbol as static
builtin/notes.c: mark file-scope private symbols as static

Merge branch 'pw/p4-submit-conflicts'Junio C Hamano Tue, 18 Sep 2012 21:36:17 +0000 (14:36 -0700)

Merge branch 'pw/p4-submit-conflicts'

Add '--conflict' option to git-p4 subcommand to specify what action
to take when conflicts are found during 'p4 submit'.

* pw/p4-submit-conflicts:
git-p4: add submit --conflict option and config varaiable
git p4: add submit --prepare-p4-only option
git p4: add submit --dry-run option
git p4: accept -v for --verbose
git p4: revert deleted files after submit cancel
git p4: rearrange submit template construction
git p4: test clean-up after failed submit, fix added files
git p4: standardize submit cancel due to unchanged template
git p4: move conflict prompt into run, add [q]uit input
git p4: remove submit failure options [a]pply and [w]rite
git p4: gracefully fail if some commits could not be applied
git p4 test: remove bash-ism of combined export/assignment

Merge branch 'mv/cherry-pick-s'Junio C Hamano Tue, 18 Sep 2012 21:36:00 +0000 (14:36 -0700)

Merge branch 'mv/cherry-pick-s'

After "git cherry-pick -s" gave control back to the user asking
help to resolve conflicts, concluding "git commit" needs to be run
with "-s" if the user wants to sign it off, but the command should
be able to remember that.

* mv/cherry-pick-s:
cherry-pick: don't forget -s on failure

Merge branch 'nd/fetch-status-alignment'Junio C Hamano Tue, 18 Sep 2012 21:35:54 +0000 (14:35 -0700)

Merge branch 'nd/fetch-status-alignment'

The status report from "git fetch", when messages like 'up-to-date'
are translated, did not align the branch names well.

* nd/fetch-status-alignment:
fetch: align per-ref summary report in UTF-8 locales

Sync with 1.7.12.1Junio C Hamano Tue, 18 Sep 2012 21:35:03 +0000 (14:35 -0700)

Sync with 1.7.12.1

Git 1.7.12.1 v1.7.12.1Junio C Hamano Tue, 18 Sep 2012 21:34:31 +0000 (14:34 -0700)

Git 1.7.12.1

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

Merge branch 'er/doc-fast-import-done' into maintJunio C Hamano Tue, 18 Sep 2012 21:33:52 +0000 (14:33 -0700)

Merge branch 'er/doc-fast-import-done' into maint

* er/doc-fast-import-done:
fast-import: document the --done option

Merge branch 'jk/config-warn-on-inaccessible-paths... Junio C Hamano Tue, 18 Sep 2012 21:24:06 +0000 (14:24 -0700)

Merge branch 'jk/config-warn-on-inaccessible-paths' into maint

The attribute system may be asked for a path that itself or its
leading directories no longer exists in the working tree, and it is
fine if we cannot open .gitattribute file in such a case. Failure
to open per-directory .gitattributes with error status other than
ENOENT and ENOTDIR should be diagnosed.

* jk/config-warn-on-inaccessible-paths:
attr: failure to open a .gitattributes file is OK with ENOTDIR
warn_on_inaccessible(): a helper to warn on inaccessible paths
attr: warn on inaccessible attribute files
gitignore: report access errors of exclude files
config: warn on inaccessible files

t/test-lib: make sure Git has already been builtRamkumar Ramachandra Mon, 17 Sep 2012 17:06:19 +0000 (22:36 +0530)

t/test-lib: make sure Git has already been built

When tests were run without building git, they stopped with:

.: 54: Can't open /path/to/git/source/t/../GIT-BUILD-OPTIONS

Move the check that makes sure that git has already been built from
t0000 to test-lib, so that any test will do so before it runs.

Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Doc: Improve shallow depth wordingPhilip Oakley Sun, 16 Sep 2012 10:57:58 +0000 (11:57 +0100)

Doc: Improve shallow depth wording

Avoid confusion in compound sentence about the start of the commit set
and the depth measure. Use two sentences.

Signed-off-by: Philip Oakley <philipoakley@iee.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

archive-zip: support UTF-8 pathsRené Scharfe Tue, 18 Sep 2012 19:46:56 +0000 (21:46 +0200)

archive-zip: support UTF-8 paths

Set general purpose flag 11 if we encounter a path that contains
non-ASCII characters. We assume that all paths are given as UTF-8; no
conversion is done.

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

Revert "archive-zip: support UTF-8 paths"Junio C Hamano Tue, 18 Sep 2012 20:32:39 +0000 (13:32 -0700)

Revert "archive-zip: support UTF-8 paths"

This reverts commit 2162bd8cc461d6c3a12ab81c5db5a44bf5ecabc3; a
two-patch series to replace it will follow.

rebase -i: fix misleading error message after 'exec... Johannes Sixt Tue, 18 Sep 2012 11:15:26 +0000 (13:15 +0200)

rebase -i: fix misleading error message after 'exec no-such' instruction

When the todo sheet of interactive rebase instructs to run a non-existing
command, the operation stops with the following error:

Execution failed: no-such
You can fix the problem, and then run

git rebase --continue

fatal: 'rebase' appears to be a git command, but we were not
able to execute it. Maybe git-rebase is broken?

The reason is that the shell that attempted to run the command exits with
code 127. rebase--interactive just forwards this code to the caller (the
git wrapper). But our smart run-command infrastructure detects this
special exit code and turns it into ENOENT, which in turn is interpreted
by the git wrapper as if the external command that it just executed did
not exist. This is finally translated to the misleading last two lines in
error message cited above.

Fix it by translating the error code before it is forwarded.

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

Documentation/git-filter-branch: Move note about effect... Andreas Schwab Tue, 18 Sep 2012 15:55:08 +0000 (17:55 +0200)

Documentation/git-filter-branch: Move note about effect of removing commits

The note that explains that changes introduced by removed commits are
preserved should be placed directly after the paragraph that describes
such commits removal. Otherwise the reference to "the commits" appears
out of context.

Also the big example that follows "Consider this history" is about
rewriting part of the history DAG. Move the paragraph that
describes the operation close to it.

Signed-off-by: Andreas Schwab <schwab@linux-m68k.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

string_list API: document what "sorted" meansMichael Haggerty Mon, 17 Sep 2012 15:21:07 +0000 (17:21 +0200)

string_list API: document what "sorted" means

The recent work on using string_list to represent the list of refs
that matched with the refs on the other side during fetch heavily
depends on the sort order by string_list's implementation, and
changing string_list will break it. Document that it uses strcmp()
order, at least for now.

Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

MALLOC_CHECK: various clean-upsJunio C Hamano Sat, 15 Sep 2012 03:38:24 +0000 (20:38 -0700)

MALLOC_CHECK: various clean-ups

The most important in this change is to avoid affecting anything
when test-lib is used from perf-lib. It also limits the effect of
the MALLOC_CHECK only to what is run inside the actual test, and
uses a fixed MALLOC_PERTURB_ in order to avoid hurting repeatability
of the tests.

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

rebase -i: Add tests for "--edit-todo"Andrew Wong Tue, 18 Sep 2012 01:28:10 +0000 (21:28 -0400)

rebase -i: Add tests for "--edit-todo"

Signed-off-by: Andrew Wong <andrew.kw.w@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

rebase -i: Teach "--edit-todo" actionAndrew Wong Tue, 18 Sep 2012 01:28:09 +0000 (21:28 -0400)

rebase -i: Teach "--edit-todo" action

This allows users to edit the todo file while they're stopped in the
middle of an interactive rebase. When this action is executed, all
comments from the original todo file are stripped, and new help messages
are appended to the end.

Signed-off-by: Andrew Wong <andrew.kw.w@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

rebase -i: Refactor help messages for todo fileAndrew Wong Tue, 18 Sep 2012 01:28:08 +0000 (21:28 -0400)

rebase -i: Refactor help messages for todo file

Signed-off-by: Andrew Wong <andrew.kw.w@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

rebase usage: subcommands can not be combined with -iMartin von Zweigbergk Tue, 18 Sep 2012 01:28:07 +0000 (21:28 -0400)

rebase usage: subcommands can not be combined with -i

Since 95135b0 (rebase: stricter check of standalone sub command,
2011-02-06), git-rebase has not allowed to use -i together with e.g.
--continue. Yet, when rebase started using OPTIONS_SPEC in 45e2acf
(rebase: define options in OPTIONS_SPEC, 2011-02-28), the usage message
included

git-rebase [-i] --continue | --abort | --skip

Remove the "[-i]" from this line.

Signed-off-by: Martin von Zweigbergk <martinvonz@gmail.com>
Signed-off-by: Andrew Wong <andrew.kw.w@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

The seventh batch for 1.8.0Junio C Hamano Mon, 17 Sep 2012 23:00:39 +0000 (16:00 -0700)

The seventh batch for 1.8.0

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

Merge branch 'maint'Junio C Hamano Mon, 17 Sep 2012 22:59:34 +0000 (15:59 -0700)

Merge branch 'maint'

* maint:
t/perf: add "trash directory" to .gitignore
Add missing -z to git check-attr usage text for consistency with man page
git-jump: ignore (custom) prefix in diff mode
Documentation: indent-with-non-tab uses "equivalent tabs" not 8
completion: add --no-edit to git-commit

Merge branch 'mh/fetch-filter-refs'Junio C Hamano Mon, 17 Sep 2012 22:58:49 +0000 (15:58 -0700)

Merge branch 'mh/fetch-filter-refs'

Code simplification and clarification.

* mh/fetch-filter-refs:
test-string-list.c: Fix some sparse warnings
fetch-pack: eliminate spurious error messages
cmd_fetch_pack(): simplify computation of return value
fetch-pack: report missing refs even if no existing refs were received
cmd_fetch_pack(): return early if finish_connect() fails
filter_refs(): simplify logic
filter_refs(): build refs list as we go
filter_refs(): delete matched refs from sought list
fetch_pack(): update sought->nr to reflect number of unique entries
filter_refs(): do not check the same sought_pos twice
Change fetch_pack() and friends to take string_list arguments
fetch_pack(): reindent function decl and defn
Rename static function fetch_pack() to http_fetch_pack()
t5500: add tests of fetch-pack --all --depth=N $URL $REF
t5500: add tests of error output for missing refs

Merge branch 'nd/maint-diffstat-summary'Junio C Hamano Mon, 17 Sep 2012 22:57:22 +0000 (15:57 -0700)

Merge branch 'nd/maint-diffstat-summary'

Earlier we made the diffstat summary line that shows the number of
lines added/deleted localizable, but it was found irritating having
to see them in various languages on a list whose discussion language
is English.

The original had trivial thinko in reverting Q_(), which has been
fixed.

* nd/maint-diffstat-summary:
Revert diffstat back to English

Merge branch 'jk/config-warn-on-inaccessible-paths'Junio C Hamano Mon, 17 Sep 2012 22:55:41 +0000 (15:55 -0700)

Merge branch 'jk/config-warn-on-inaccessible-paths'

The attribute system may be asked for a path that itself or its
leading directories no longer exists in the working tree. Failure
to open per-directory .gitattributes with error status other than
ENOENT and ENOTDIR are diagnosed.

* jk/config-warn-on-inaccessible-paths:
attr: failure to open a .gitattributes file is OK with ENOTDIR

Merge branch 'jw/doc-commit-title'Junio C Hamano Mon, 17 Sep 2012 22:53:39 +0000 (15:53 -0700)

Merge branch 'jw/doc-commit-title'

Update parts of document that talked about "first line of commit
log" to say "title of commit" with definition of what that "title"
is.

* jw/doc-commit-title:
Documentation: describe subject more precisely

Merge branch 'mh/string-list'Junio C Hamano Mon, 17 Sep 2012 22:53:31 +0000 (15:53 -0700)

Merge branch 'mh/string-list'

* mh/string-list:
api-string-list.txt: initialize the string_list the easy way
string_list: add a function string_list_longest_prefix()
string_list: add a new function, string_list_remove_duplicates()
string_list: add a new function, filter_string_list()
string_list: add two new functions for splitting strings
string_list: add function string_list_append_nodup()

Merge branch 'jc/maint-blame-no-such-path'Junio C Hamano Mon, 17 Sep 2012 22:52:32 +0000 (15:52 -0700)

Merge branch 'jc/maint-blame-no-such-path'

"git blame MAKEFILE" run in a history that has "Makefile" but not
"MAKEFILE" should say "No such file MAKEFILE in HEAD", but got
confused on a case insensitive filesystem and failed to do so.

Even during a conflicted merge, "git blame $path" always meant to
blame uncommitted changes to the "working tree" version; make it
more useful by showing cleanly merged parts as coming from the other
branch that is being merged.

* jc/maint-blame-no-such-path:
blame: allow "blame file" in the middle of a conflicted merge
blame $path: avoid getting fooled by case insensitive filesystems

make poll() work on platforms that can't recv() on... Joachim Schmitz Mon, 17 Sep 2012 21:24:42 +0000 (23:24 +0200)

make poll() work on platforms that can't recv() on a non-socket

This way it just got added to gnulib too the other day.

Signed-off-by: Joachim Schmitz <jojo@schmitz-digital.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

poll() exits too early with EFAULT if 1st arg is NULLJoachim Schmitz Mon, 17 Sep 2012 21:23:17 +0000 (23:23 +0200)

poll() exits too early with EFAULT if 1st arg is NULL

If poll() is used as a milli-second sleep, like in help.c, by passing a NULL
in the 1st and a 0 in the 2nd arg, it exits with EFAULT.

As per Paolo Bonzini, the original author, this is a bug and to be fixed
Like in this commit, which is not to exit if the 2nd arg is 0. It got fixed
In gnulib in the same manner the other day.

Signed-off-by: Joachim Schmitz <jojo@schmitz-digital.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

fix some win32 specific dependencies in poll.cJoachim Schmitz Mon, 17 Sep 2012 21:18:27 +0000 (23:18 +0200)

fix some win32 specific dependencies in poll.c

In order for non-win32 platforms to be able to use poll.c, #ifdef the
inclusion of two header files properly

Signed-off-by: Joachim Schmitz <jojo@schmitz-digital.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

make poll available for other platforms lacking itJoachim Schmitz Mon, 17 Sep 2012 21:16:39 +0000 (23:16 +0200)

make poll available for other platforms lacking it

move poll.[ch] out of compat/win32/ into compat/poll/ and adjust
Makefile with the changed paths. Adding comments to Makefile about
how/when to enable it and add logic for this

Signed-off-by: Joachim Schmitz <jojo@schmitz-digital.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

mailinfo: do not concatenate charset= attribute values... Junio C Hamano Mon, 17 Sep 2012 21:17:58 +0000 (14:17 -0700)

mailinfo: do not concatenate charset= attribute values from mime headers

"Content-type: text/plain; charset=UTF-8" header should not appear
twice in the input, but it is always better to gracefully deal with
such a case. The current code concatenates the value to the values
we have seen previously, producing nonsense such as "utf8UTF-8".

Instead of concatenating, forget the previous value and use the last
value we see.

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

t/perf: add "trash directory" to .gitignoreRamkumar Ramachandra Mon, 17 Sep 2012 17:06:18 +0000 (22:36 +0530)

t/perf: add "trash directory" to .gitignore

Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Add missing -z to git check-attr usage text for consist... Adam Spiers Mon, 17 Sep 2012 11:38:51 +0000 (12:38 +0100)

Add missing -z to git check-attr usage text for consistency with man page

Signed-off-by: Adam Spiers <git@adamspiers.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-jump: ignore (custom) prefix in diff modeMischa POSLAWSKY Mon, 17 Sep 2012 01:21:55 +0000 (03:21 +0200)

git-jump: ignore (custom) prefix in diff mode

Matching the default file prefix b/ does not yield any results if config
option diff.noprefix or diff.mnemonicprefix is enabled.

Signed-off-by: Mischa POSLAWSKY <git@shiar.nl>
Acked-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Documentation: indent-with-non-tab uses "equivalent... Wesley J. Landaker Mon, 17 Sep 2012 14:22:15 +0000 (08:22 -0600)

Documentation: indent-with-non-tab uses "equivalent tabs" not 8

Update the documentation of the core.whitespace option
"indent-with-non-tab" to correctly reflect that it catches the use of
spaces instead of the equivalent tabs, rather than a fixed number.

Signed-off-by: Wesley J. Landaker <wjl@icecavern.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

completion: add --no-edit to git-commitYacine Belkadi Sun, 16 Sep 2012 16:06:11 +0000 (18:06 +0200)

completion: add --no-edit to git-commit

Signed-off-by: Yacine Belkadi <yacine.belkadi.1@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Add userdiff patterns for AdaAdrian Johnson Sun, 16 Sep 2012 03:54:15 +0000 (13:24 +0930)

Add userdiff patterns for Ada

Add Ada xfuncname and wordRegex patterns to the list of builtin
patterns.

Signed-off-by: Adrian Johnson <ajohnson@redneon.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-p4: add submit --conflict option and config varaiablePete Wyckoff Sun, 9 Sep 2012 20:16:13 +0000 (16:16 -0400)

git-p4: add submit --conflict option and config varaiable

This allows specifying what to do when a conflict
happens when applying a commit to p4, automating the
interactive prompt.

Signed-off-by: Pete Wyckoff <pw@padd.com>
Acked-by: Luke Diamand <luke@diamand.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git p4: add submit --prepare-p4-only optionPete Wyckoff Sun, 9 Sep 2012 20:16:12 +0000 (16:16 -0400)

git p4: add submit --prepare-p4-only option

This option can be used to prepare the client workspace for
submission, only. It does not invoke the final "p4 submit".
A message describes how to proceed, either submitting the
changes or reverting.

Signed-off-by: Pete Wyckoff <pw@padd.com>
Acked-by: Luke Diamand <luke@diamand.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git p4: add submit --dry-run optionPete Wyckoff Sun, 9 Sep 2012 20:16:11 +0000 (16:16 -0400)

git p4: add submit --dry-run option

A new option, "git p4 submit --dry-run" can be used to verify
what commits and labels would be moved into p4.

Signed-off-by: Pete Wyckoff <pw@padd.com>
Acked-by: Luke Diamand <luke@diamand.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git p4: accept -v for --verbosePete Wyckoff Sun, 9 Sep 2012 20:16:10 +0000 (16:16 -0400)

git p4: accept -v for --verbose

The short form "-v" is common in many git commands as an
alias for "--verbose".

Signed-off-by: Pete Wyckoff <pw@padd.com>
Acked-by: Luke Diamand <luke@diamand.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git p4: revert deleted files after submit cancelPete Wyckoff Sun, 9 Sep 2012 20:16:09 +0000 (16:16 -0400)

git p4: revert deleted files after submit cancel

The user can decide not to continue with a submission,
by not saving the p4 submit template, then answering "no" to
the "Submit anyway?" prompt. In this case, be sure to
return the p4 client to its initial state.

Deleted files were not reverted; fix this and test all cases.

Signed-off-by: Pete Wyckoff <pw@padd.com>
Acked-by: Luke Diamand <luke@diamand.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git p4: rearrange submit template constructionPete Wyckoff Sun, 9 Sep 2012 20:16:08 +0000 (16:16 -0400)

git p4: rearrange submit template construction

Put all items in order as they appear, and add comments.

Signed-off-by: Pete Wyckoff <pw@padd.com>
Acked-by: Luke Diamand <luke@diamand.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git p4: test clean-up after failed submit, fix added... Pete Wyckoff Sun, 9 Sep 2012 20:16:07 +0000 (16:16 -0400)

git p4: test clean-up after failed submit, fix added files

Test a variety of cases where a patch failed to apply to
p4 and had to be cleaned up.

If the patch failed to apply cleanly, do not try to remove
to-be-added files, as they have not really been added yet.

Signed-off-by: Pete Wyckoff <pw@padd.com>
Acked-by: Luke Diamand <luke@diamand.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git p4: standardize submit cancel due to unchanged... Pete Wyckoff Sun, 9 Sep 2012 20:16:06 +0000 (16:16 -0400)

git p4: standardize submit cancel due to unchanged template

When editing the submit template, if no change was made to it,
git p4 offers a prompt "Submit anyway?". Answering "no" cancels
the submit.

Previously, a "no" answer behaves like a "[s]kip" answer to the
failed-patch prompt, in that it proceeded to try to apply the
rest of the commits. Instead, put users back into the new
"[s]kip / [c]ontinue" loop so that they can decide. This makes
both cases of patch failure behave identically.

The return code of git p4 after a "no" answer is now the same
as that for a "skip" due to failed patch; update a test to
understand this.

Signed-off-by: Pete Wyckoff <pw@padd.com>
Acked-by: Luke Diamand <luke@diamand.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git p4: move conflict prompt into run, add [q]uit inputPete Wyckoff Sun, 9 Sep 2012 20:16:05 +0000 (16:16 -0400)

git p4: move conflict prompt into run, add [q]uit input

When applying a commit to the p4 workspace fails, a prompt
asks what to do next. This belongs up in run() instead
of in applyCommit(), where run() can notice, for instance,
that the prompt is unnecessary because this is the last commit.

Offer two options about how to continue at conflict: [s]kip or
[q]uit. Having an explicit "quit" option gives git p4 a chance
to clean up, show the applied-commit summary, and do tag export.

Signed-off-by: Pete Wyckoff <pw@padd.com>
Acked-by: Luke Diamand <luke@diamand.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>