gitweb.git
git p4: handle servers without move supportPete Wyckoff Fri, 23 Nov 2012 22:35:35 +0000 (17:35 -0500)

git p4: handle servers without move support

Support for the "p4 move" command was added in 8e9497c (git p4:
add support for 'p4 move' in P4Submit, 2012-07-12), which checks
to make sure that the client and server support the command.

But older versions of p4d may not handle the "-k" argument, and
newer p4d allow disabling "p4 move" with a configuration setting.
Check for both these cases by testing a p4 move command on bogus
filenames and looking for strings in the error messages.

Reported-by: Vitor Antunes <vitor.hda@gmail.com>
Signed-off-by: Pete Wyckoff <pw@padd.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git p4: catch p4 describe errorsPete Wyckoff Fri, 23 Nov 2012 22:35:34 +0000 (17:35 -0500)

git p4: catch p4 describe errors

Group the two calls to "p4 describe" into a new helper function,
and try to validate the p4 results. The current behavior when p4
describe fails is to die with a python backtrace. The new behavior
will print the full response.

This does not solve any particular problem, but adds more
checking in hopes of narrowing down odd behavior seen on
at least two occasions.

Based-on-patch-by: Matt Arsenault <arsenm2@gmail.com>
Reported-by: Arthur <a.foulon@amesys.fr>
Signed-off-by: Pete Wyckoff <pw@padd.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Makefile: hide stderr of curl-config testPaul Gortmaker Thu, 22 Nov 2012 03:19:57 +0000 (22:19 -0500)

Makefile: hide stderr of curl-config test

You will get

$ make distclean 2>&1 | grep curl
/bin/sh: curl-config: not found
/bin/sh: curl-config: not found
/bin/sh: curl-config: not found
/bin/sh: curl-config: not found
/bin/sh: curl-config: not found
$

if you don't have a curl development package installed.

The intent is not to alarm the user, but just to test if there is
a new enough curl installed. However, if you look at search engine
suggested completions, the above "error" messages are confusing
people into thinking curl is a hard requirement.

Redirect this error output to /dev/null as it is not necessary to be
shown to the end users.

Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

emacs: make 'git-status' work with separate git dirsEnrico Scholz Thu, 22 Nov 2012 15:58:54 +0000 (16:58 +0100)

emacs: make 'git-status' work with separate git dirs

when trying 'M-x git-status' in a submodule created with recent (1.7.5+)
git, the command fails with

| ... is not a git working tree

This is caused by creating submodules with '--separate-git-dir' but
still checking for a working tree by testing for a '.git' directory.

The patch fixes this by relaxing the existing detection a little bit.

Signed-off-by: Enrico Scholz <enrico.scholz@sigma-chemnitz.de>
Acked-by: Alexandre Julliard <julliard@winehq.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-send-email: fix fallback code in extract_valid_addr... Krzysztof Mazur Thu, 22 Nov 2012 18:12:09 +0000 (19:12 +0100)

git-send-email: fix fallback code in extract_valid_address()

In the fallback check, used when Email::Valid is not available, the
extract_valid_address() uses $1 without checking for success of matching
regex. The $1 variable may still hold the result of previous match,
which is the address when email address was in '<>' or be undefined
otherwise.

Now if match fails undefined value is always returned to indicate error.
The same value is used by Email::Valid->address() in that case.

Previously 'foo@bar' address was rejected by Email::Valid and fallback,
but '<foo@bar>' was rejected by Email::Valid, but accepted by fallback.

Signed-off-by: Krzysztof Mazur <krzysiek@podlesie.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-send-email: remove garbage after email addressKrzysztof Mazur Thu, 22 Nov 2012 18:12:08 +0000 (19:12 +0100)

git-send-email: remove garbage after email address

In some cases it is useful to add additional information after the
email address on the Cc: footer in a commit log, for instance:

"Cc: Stable kernel <stable@vger.kernel.org> #v3.4 v3.5 v3.6"

However, git-send-email refuses to pick up such an invalid address
when the Email::Valid perl module is available, or just uses the
whole line as the email address.

In sanitize_address(), remove everything after the email address, so
that the result is a valid email address that makes Email::Valid
happy.

Signed-off-by: Krzysztof Mazur <krzysiek@podlesie.net>
Tested-by: Felipe Balbi <balbi@ti.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Update draft release notes to 1.8.1Junio C Hamano Mon, 26 Nov 2012 02:52:42 +0000 (18:52 -0800)

Update draft release notes to 1.8.1

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

Merge branch 'rr/submodule-diff-config'Junio C Hamano Mon, 26 Nov 2012 02:44:50 +0000 (18:44 -0800)

Merge branch 'rr/submodule-diff-config'

Allow "git diff --submodule=log" to set to be the default via
configuration.

* rr/submodule-diff-config:
submodule: display summary header in bold
diff: rename "set" variable
diff: introduce diff.submodule configuration variable
Documentation: move diff.wordRegex from config.txt to diff-config.txt

Merge branch 'nd/maint-compat-fnmatch-fix'Junio C Hamano Mon, 26 Nov 2012 02:44:41 +0000 (18:44 -0800)

Merge branch 'nd/maint-compat-fnmatch-fix'

* nd/maint-compat-fnmatch-fix:
compat/fnmatch: fix off-by-one character class's length check

Merge branch 'bc/do-not-recurse-in-die'Junio C Hamano Mon, 26 Nov 2012 02:44:36 +0000 (18:44 -0800)

Merge branch 'bc/do-not-recurse-in-die'

* bc/do-not-recurse-in-die:
usage.c: detect recursion in die routines and bail out immediately

Merge branch 'mk/complete-tcsh'Junio C Hamano Mon, 26 Nov 2012 02:44:28 +0000 (18:44 -0800)

Merge branch 'mk/complete-tcsh'

* mk/complete-tcsh:
tcsh-completion re-using git-completion.bash

Merge branch 'jh/update-ref-d-through-symref'Junio C Hamano Mon, 26 Nov 2012 02:44:17 +0000 (18:44 -0800)

Merge branch 'jh/update-ref-d-through-symref'

"update-ref -d --deref SYM" to delete a ref through a symbolic ref
that points to it did not remove it correctly.

* jh/update-ref-d-through-symref:
Fix failure to delete a packed ref through a symref
t1400-update-ref: Add test verifying bug with symrefs in delete_ref()

Merge branch 'lt/diff-stat-show-0-lines'Junio C Hamano Mon, 26 Nov 2012 02:44:06 +0000 (18:44 -0800)

Merge branch 'lt/diff-stat-show-0-lines'

We failed to mention a file without any content change but whose
permission bit was modified, or (worse yet) a new file without any
content in the "git diff --stat" output.

* lt/diff-stat-show-0-lines:
Fix "git diff --stat" for interesting - but empty - file changes

Merge branch 'sg/complete-help-undup'Junio C Hamano Mon, 26 Nov 2012 02:43:54 +0000 (18:43 -0800)

Merge branch 'sg/complete-help-undup'

* sg/complete-help-undup:
completion: remove 'help' duplicate from porcelain commands

Sync with 1.8.0.1Junio C Hamano Mon, 26 Nov 2012 02:40:55 +0000 (18:40 -0800)

Sync with 1.8.0.1

Git 1.8.0.1 v1.8.0.1Junio C Hamano Mon, 26 Nov 2012 02:40:34 +0000 (18:40 -0800)

Git 1.8.0.1

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

Merge branch 'jk/checkout-out-of-unborn' into maintJunio C Hamano Mon, 26 Nov 2012 02:35:50 +0000 (18:35 -0800)

Merge branch 'jk/checkout-out-of-unborn' into maint

* jk/checkout-out-of-unborn:
checkout: print a message when switching unborn branches

Merge branch 'cn/config-missing-path' into maintJunio C Hamano Mon, 26 Nov 2012 02:35:46 +0000 (18:35 -0800)

Merge branch 'cn/config-missing-path' into maint

* cn/config-missing-path:
config: don't segfault when given --path with a missing value

Merge branch 'jk/maint-gitweb-xss' into maintJunio C Hamano Mon, 26 Nov 2012 02:35:41 +0000 (18:35 -0800)

Merge branch 'jk/maint-gitweb-xss' into maint

Fixes an XSS vulnerability in gitweb.

* jk/maint-gitweb-xss:
gitweb: escape html in rss title

Completion must sort before using uniqMarc Khouzam Fri, 23 Nov 2012 14:02:22 +0000 (09:02 -0500)

Completion must sort before using uniq

The user can be presented with invalid completion results
when trying to complete a 'git checkout' command. This can happen
when using a branch name prefix that matches multiple remote branches.

For example, if available branches are:
master
remotes/GitHub/maint
remotes/GitHub/master
remotes/origin/maint
remotes/origin/master

When performing completion on 'git checkout ma' the user will be
given the choices:
maint
master

However, 'git checkout maint' will fail in this case, although
completion previously said 'maint' was valid. Furthermore, when
performing completion on 'git checkout mai', no choices will be
suggested. So, the user is first told that the branch name
'maint' is valid, but when trying to complete 'mai' into 'maint',
that completion is no longer valid.

The completion results should never propose 'maint' as a valid
branch name, since 'git checkout' will refuse it.

The reason for this bug is that the uniq program only
works with sorted input. The man page states
"uniq prints the unique lines in a sorted file".

When __git_refs uses the guess heuristic employed by checkout for
tracking branches it wants to consider remote branches but only if
the branch name is unique. To do that, it calls 'uniq -u'. However
the input given to 'uniq -u' is not sorted.

Therefore, in the above example, when dealing with 'git checkout ma',
"__git_refs '' 1" will find the following list:
master
maint
master
maint
master

which, when passed to 'uniq -u' will remain the same. Therefore
'maint' will be wrongly suggested as a valid option.

When dealing with 'git checkout mai', the list will be:
maint
maint

which happens to be sorted and will be emptied by 'uniq -u',
properly ignoring 'maint'.

A solution for preventing the completion script from suggesting
such invalid branch names is to first call 'sort' and then 'uniq -u'.

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

Teach rm to remove submodules when given with a trailin... Jens Lehmann Thu, 22 Nov 2012 22:32:26 +0000 (23:32 +0100)

Teach rm to remove submodules when given with a trailing '/'

Doing a "git rm submod/" on a submodule results in an error:
fatal: pathspec 'submod/' did not match any files
This is really inconvenient as e.g. using TAB completion in a shell on a
submodule automatically adds the trailing '/' when it completes the path
of the submodule directory. The user has then to remove the '/' herself to
make a "git rm" succeed. Doing a "git rm -r somedir/" is working fine, so
there is no reason why that shouldn't work for submodules too.

Teach git rm to not error out when a '/' is appended to the path of a
submodule. Achieve this by chopping off trailing slashes from the path
names given if they represent directories. Add tests to make sure that
logic only applies to directories and not to files.

Signed-off-by: Jens Lehmann <Jens.Lehmann@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

l10n: vi.po: Update follow git-v1.8.0-273-g2d242Tran Ngoc Quan Sat, 24 Nov 2012 00:37:35 +0000 (07:37 +0700)

l10n: vi.po: Update follow git-v1.8.0-273-g2d242

Signed-off-by: Tran Ngoc Quan <vnwildman@gmail.com>

l10n: Update Swedish translation (1975t0f0u)Peter Krefting Fri, 23 Nov 2012 07:59:11 +0000 (08:59 +0100)

l10n: Update Swedish translation (1975t0f0u)

Signed-off-by: Peter Krefting <peter@softwolves.pp.se>

l10n: vi.po: update to git-v1.7.12-437-g1084fTran Ngoc Quan Wed, 31 Oct 2012 01:19:59 +0000 (08:19 +0700)

l10n: vi.po: update to git-v1.7.12-437-g1084f

* updated all new messages (1967t0f0u)
* make quote become more good-looking

Signed-off-by: Tran Ngoc Quan <vnwildman@gmail.com>

l10n: Update git.pot (14 new, 3 removed messages)Jiang Xin Fri, 23 Nov 2012 06:29:02 +0000 (14:29 +0800)

l10n: Update git.pot (14 new, 3 removed messages)

Generate po/git.pot from v1.8.0-273-g2d242, and there are 14 new and 3
removed messages.

Signed-off-by: Jiang Xin <worldhello.net@gmail.com>

Update draft release notes for 1.8.1Junio C Hamano Wed, 21 Nov 2012 21:23:18 +0000 (13:23 -0800)

Update draft release notes for 1.8.1

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

Merge branch 'esr/maint-doc-fast-import'Junio C Hamano Wed, 21 Nov 2012 21:32:48 +0000 (13:32 -0800)

Merge branch 'esr/maint-doc-fast-import'

* esr/maint-doc-fast-import:
doc/fast-import: clarify how content states are built

Merge branch 'wtk/submodule-doc-fixup'Junio C Hamano Wed, 21 Nov 2012 21:25:42 +0000 (13:25 -0800)

Merge branch 'wtk/submodule-doc-fixup'

* wtk/submodule-doc-fixup:
git-submodule: wrap branch option with "<>" in usage strings.

Merge branch 'so/prompt-command'Junio C Hamano Wed, 21 Nov 2012 21:17:01 +0000 (13:17 -0800)

Merge branch 'so/prompt-command'

Updates __git_ps1 so that it can be used as $PROMPT_COMMAND,
instead of being used for command substitution in $PS1, to embed
color escape sequences in its output.

* so/prompt-command:
coloured git-prompt: paint detached HEAD marker in red
Fix up colored git-prompt
show color hints based on state of the git tree
Allow __git_ps1 to be used in PROMPT_COMMAND

Merge branch 'jk/config-ignore-duplicates'Junio C Hamano Wed, 21 Nov 2012 21:16:44 +0000 (13:16 -0800)

Merge branch 'jk/config-ignore-duplicates'

Drop duplicate detection from "git-config --get"; this lets it
better match the internal config callbacks, which clears up some
corner cases with includes.

* jk/config-ignore-duplicates:
builtin/config.c: Fix a sparse warning
git-config: use git_config_with_options
git-config: do not complain about duplicate entries
git-config: collect values instead of immediately printing
git-config: fix regexp memory leaks on error conditions
git-config: remove memory leak of key regexp
t1300: test "git config --get-all" more thoroughly
t1300: remove redundant test
t1300: style updates

Merge branch 'jk/maint-http-half-auth-fetch'Junio C Hamano Wed, 21 Nov 2012 19:59:29 +0000 (11:59 -0800)

Merge branch 'jk/maint-http-half-auth-fetch'

Finishing touches to squelch a compiler warning.

* jk/maint-http-half-auth-fetch:
remote-curl.c: Fix a compiler warning

gitweb: make remote_heads config setting workPhil Pennock Mon, 5 Nov 2012 23:50:47 +0000 (18:50 -0500)

gitweb: make remote_heads config setting work

Git configuration items can not contain underscores in their section
and bottom-level variable name; the 'remote_heads' feature can not
be enabled on a per-repository basis with that name.

This changes the git-config option to be `gitweb.remoteheads` but does
not change the gitweb.conf option, to avoid backwards compatibility
issues. We strip underscores from keys before looking through
git-config output for them.

An existing check on keynames was overly eager to reject non-word
letters, but if we ever start using three-level names, the middle
level string can contain almost anything, so fix that as well while
we are in the vicinity.

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

remote-curl.c: Fix a compiler warningRamsay Jones Wed, 21 Nov 2012 19:08:51 +0000 (19:08 +0000)

remote-curl.c: Fix a compiler warning

In particular, gcc issues an "'gzip_size' might be used uninitialized"
warning (-Wuninitialized). However, this warning is a false positive,
since the 'gzip_size' variable would not, in fact, be used uninitialized.
In order to suppress the warning, we simply initialise the variable to
zero in it's declaration.

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

compat/fnmatch: fix off-by-one character class's length... Nguyễn Thái Ngọc Duy Sun, 11 Nov 2012 10:13:57 +0000 (17:13 +0700)

compat/fnmatch: fix off-by-one character class's length check

Character class "xdigit" is the only one that hits 6 character limit
defined by CHAR_CLASS_MAX_LENGTH. All other character classes are 5
character long and therefore never caught by this.

This should make xdigit tests in t3070 pass on Windows.

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

Sixth batch for 1.8.1Junio C Hamano Tue, 20 Nov 2012 18:46:29 +0000 (10:46 -0800)

Sixth batch for 1.8.1

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

Merge branch 'ml/cygwin-mingw-headers'Junio C Hamano Tue, 20 Nov 2012 18:44:29 +0000 (10:44 -0800)

Merge branch 'ml/cygwin-mingw-headers'

Make git compile on cygwin with newer header files.

* ml/cygwin-mingw-headers:
USE CGYWIN_V15_WIN32API as macro to select api for cygwin
Update cygwin.c for new mingw-64 win32 api headers

Merge branch 'jk/checkout-out-of-unborn'Junio C Hamano Tue, 20 Nov 2012 18:43:18 +0000 (10:43 -0800)

Merge branch 'jk/checkout-out-of-unborn'

* jk/checkout-out-of-unborn:
checkout: print a message when switching unborn branches

Merge branch 'cn/config-missing-path'Junio C Hamano Tue, 20 Nov 2012 18:40:46 +0000 (10:40 -0800)

Merge branch 'cn/config-missing-path'

"git config --path $key" segfaulted on "[section] key" (a boolean
"true" spelled without "=", not "[section] key = true").

* cn/config-missing-path:
config: don't segfault when given --path with a missing value

Merge branch 'jl/submodule-rm'Junio C Hamano Tue, 20 Nov 2012 18:40:31 +0000 (10:40 -0800)

Merge branch 'jl/submodule-rm'

* jl/submodule-rm:
docs: move submodule section

Merge branch 'mg/replace-resolve-delete'Junio C Hamano Tue, 20 Nov 2012 18:38:32 +0000 (10:38 -0800)

Merge branch 'mg/replace-resolve-delete'

Be more user friendly to people using "git replace -d".

* mg/replace-resolve-delete:
replace: parse revision argument for -d

Merge branch 'jk/maint-gitweb-xss'Junio C Hamano Tue, 20 Nov 2012 18:37:27 +0000 (10:37 -0800)

Merge branch 'jk/maint-gitweb-xss'

Fixes an XSS vulnerability in gitweb.

* jk/maint-gitweb-xss:
gitweb: escape html in rss title

Merge branch 'rh/maint-gitweb-highlight-ext'Junio C Hamano Tue, 20 Nov 2012 18:35:53 +0000 (10:35 -0800)

Merge branch 'rh/maint-gitweb-highlight-ext'

Fixes a clever misuse of perl's list interpretation.

* rh/maint-gitweb-highlight-ext:
gitweb.perl: fix %highlight_ext mappings

Merge branch 'pw/maint-p4-rcs-expansion-newline'Junio C Hamano Tue, 20 Nov 2012 18:34:15 +0000 (10:34 -0800)

Merge branch 'pw/maint-p4-rcs-expansion-newline'

I do not have p4 to play with, but looks obviously correct to me.

* pw/maint-p4-rcs-expansion-newline:
git p4: RCS expansion should not span newlines

Merge branch 'mh/alt-odb-string-list-cleanup'Junio C Hamano Tue, 20 Nov 2012 18:34:08 +0000 (10:34 -0800)

Merge branch 'mh/alt-odb-string-list-cleanup'

Cleanups in the alternates code. Fixes a potential bug and makes the
code much cleaner.

* mh/alt-odb-string-list-cleanup:
link_alt_odb_entries(): take (char *, len) rather than two pointers
link_alt_odb_entries(): use string_list_split_in_place()

Merge branch 'ta/doc-cleanup'Junio C Hamano Tue, 20 Nov 2012 18:32:58 +0000 (10:32 -0800)

Merge branch 'ta/doc-cleanup'

* ta/doc-cleanup:
Documentation: build html for all files in technical and howto
Documentation/howto: convert plain text files to asciidoc
Documentation/technical: convert plain text files to asciidoc
Change headline of technical/send-pack-pipeline.txt to not confuse its content with content from git-send-pack.txt
Shorten two over-long lines in git-bisect-lk2009.txt by abbreviating some sha1
Split over-long synopsis in git-fetch-pack.txt into several lines

Merge branch 'kb/preload-index-more'Junio C Hamano Tue, 20 Nov 2012 18:32:10 +0000 (10:32 -0800)

Merge branch 'kb/preload-index-more'

Use preloadindex in more places, which has a nice speedup on systems
with slow stat calls (and even on Linux).

* kb/preload-index-more:
update-index/diff-index: use core.preloadindex to improve performance

Merge branch 'jk/maint-http-half-auth-fetch'Junio C Hamano Tue, 20 Nov 2012 18:30:17 +0000 (10:30 -0800)

Merge branch 'jk/maint-http-half-auth-fetch'

Fixes fetch from servers that ask for auth only during the actual
packing phase. This is not really a recommended configuration, but it
cleans up the code at the same time.

* jk/maint-http-half-auth-fetch:
remote-curl: retry failed requests for auth even with gzip
remote-curl: hoist gzip buffer size to top of post_rpc

Sync with maintJunio C Hamano Tue, 20 Nov 2012 18:16:34 +0000 (10:16 -0800)

Sync with maint

* maint:
Further preparation for 1.8.0.1

Further preparation for 1.8.0.1Junio C Hamano Tue, 20 Nov 2012 18:16:14 +0000 (10:16 -0800)

Further preparation for 1.8.0.1

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

Merge branch 'mg/maint-pull-suggest-upstream-to' into... Junio C Hamano Tue, 20 Nov 2012 18:15:09 +0000 (10:15 -0800)

Merge branch 'mg/maint-pull-suggest-upstream-to' into maint

* mg/maint-pull-suggest-upstream-to:
push/pull: adjust missing upstream help text to changed interface

Merge branch 'mm/maint-doc-commit-edit' into maintJunio C Hamano Tue, 20 Nov 2012 18:14:55 +0000 (10:14 -0800)

Merge branch 'mm/maint-doc-commit-edit' into maint

* mm/maint-doc-commit-edit:
Document 'git commit --no-edit' explicitly

Merge branch 'as/maint-doc-fix-no-post-rewrite' into... Junio C Hamano Tue, 20 Nov 2012 18:14:46 +0000 (10:14 -0800)

Merge branch 'as/maint-doc-fix-no-post-rewrite' into maint

* as/maint-doc-fix-no-post-rewrite:
commit: fixup misplacement of --no-post-rewrite description

Merge branch 'rs/lock-correct-ref-during-delete' into... Junio C Hamano Tue, 20 Nov 2012 18:14:41 +0000 (10:14 -0800)

Merge branch 'rs/lock-correct-ref-during-delete' into maint

* rs/lock-correct-ref-during-delete:
refs: lock symref that is to be deleted, not its target

Merge branch 'rf/maint-mailmap-off-by-one' into maintJunio C Hamano Tue, 20 Nov 2012 18:14:28 +0000 (10:14 -0800)

Merge branch 'rf/maint-mailmap-off-by-one' into maint

* rf/maint-mailmap-off-by-one:
mailmap: avoid out-of-bounds memory access

Merge branch 'jk/maint-diff-grep-textconv' into maintJunio C Hamano Tue, 20 Nov 2012 18:03:12 +0000 (10:03 -0800)

Merge branch 'jk/maint-diff-grep-textconv' into maint

"git diff -G<pattern>" did not honor textconv filter when looking
for changes.

* jk/maint-diff-grep-textconv:
diff_grep: use textconv buffers for add/deleted files

Merge branch 'js/format-2047' into maintJunio C Hamano Tue, 20 Nov 2012 17:57:44 +0000 (09:57 -0800)

Merge branch 'js/format-2047' into maint

Various rfc2047 quoting issues around a non-ASCII name on the From:
line in the output from format-patch have been corrected.

* js/format-2047:
format-patch tests: check quoting/encoding in To: and Cc: headers
format-patch: fix rfc2047 address encoding with respect to rfc822 specials
format-patch: make rfc2047 encoding more strict
format-patch: introduce helper function last_line_length()
format-patch: do not wrap rfc2047 encoded headers too late
format-patch: do not wrap non-rfc2047 headers too early
utf8: fix off-by-one wrapping of text

completion: start moving to the new zsh completionFelipe Contreras Sun, 18 Nov 2012 11:08:09 +0000 (12:08 +0100)

completion: start moving to the new zsh completion

Zsh's bash completion emulation is buggy, not properly maintained, and
we have some workarounds in place for different bugs that appeared in
various versions.

Since I'm the only one that has worked on that code lately[1], it might make
snese to use the code I wrote specifically for git.

The advantages are:

1) Less workarounds

* No need to hack __get_comp_words_by_ref
* No need to hack IFS or words

2) Improved features

* 'git show master' now properly adds a space at the end (IFS bug)
* 'git checkout --conflict=' now properly returns the sub-items
(missing feature)

3) Consolidated code

* It's all now in a single chunk, and it's basically the same as
git-completion.zsh

Since there's some interest in moving the zsh-specific code out of this
script, lets go ahead and warn the users that they should be using
git-completion.zsh.

[1] http://zsh.git.sourceforge.net/git/gitweb.cgi?p=zsh/zsh;a=history;f=Completion/bashcompinit

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

completion: add new zsh completionFelipe Contreras Sun, 18 Nov 2012 11:08:08 +0000 (12:08 +0100)

completion: add new zsh completion

It seems there's always issues with zsh's bash completion emulation.
I've tried to fix as many as I could[1], and most of the fixes are already
in the latest version of zsh, but still, there are issues.

There is no point going through all that pain; the emulation is easy to
achieve, and this patch works better than zsh's bash completion
emulation.

[1] http://zsh.git.sourceforge.net/git/gitweb.cgi?p=zsh/zsh;a=commitdiff;h=23907bb840c80eef99eabba17e086e44c9b2d3fc

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

USE CGYWIN_V15_WIN32API as macro to select api for... Mark Levedahl Sun, 18 Nov 2012 21:16:52 +0000 (16:16 -0500)

USE CGYWIN_V15_WIN32API as macro to select api for cygwin

The previous macro was confusing to some, and did not include "cygwin" in
its name. The updated name more clearly expresses a choice of the
win32api implementation that shipped with version 1.5 of cygwin.

Signed-off-by: Mark Levedahl <mlevedahl@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Sync with maintJunio C Hamano Mon, 19 Nov 2012 03:48:31 +0000 (19:48 -0800)

Sync with maint

Start preparing for 1.8.0.1Junio C Hamano Mon, 19 Nov 2012 03:47:19 +0000 (19:47 -0800)

Start preparing for 1.8.0.1

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

Merge branch 'sz/maint-curl-multi-timeout' into maintJunio C Hamano Mon, 19 Nov 2012 03:44:36 +0000 (19:44 -0800)

Merge branch 'sz/maint-curl-multi-timeout' into maint

Sometimes curl_multi_timeout() function suggested a wrong timeout
value when there is no file descriptors to wait on and the http
transport ended up sleeping for minutes in select(2) system call. A
workaround has been added for this.

* sz/maint-curl-multi-timeout:
Fix potential hang in https handshake

Merge branch 'po/maint-refs-replace-docs' into maintJunio C Hamano Mon, 19 Nov 2012 03:34:09 +0000 (19:34 -0800)

Merge branch 'po/maint-refs-replace-docs' into maint

The refs/replace hierarchy was not mentioned in the
repository-layout docs.

* po/maint-refs-replace-docs:
Doc repository-layout: Show refs/replace

Merge branch 'ph/pull-rebase-detached' into maintJunio C Hamano Mon, 19 Nov 2012 03:33:45 +0000 (19:33 -0800)

Merge branch 'ph/pull-rebase-detached' into maint

"git pull --rebase" run while the HEAD is detached tried to find
the upstream branch of the detached HEAD (which by definition
does not exist) and emitted unnecessary error messages.

* ph/pull-rebase-detached:
git-pull: Avoid merge-base on detached head

Merge branch 'mm/maint-doc-remote-tracking' into maintJunio C Hamano Mon, 19 Nov 2012 03:33:20 +0000 (19:33 -0800)

Merge branch 'mm/maint-doc-remote-tracking' into maint

Update "remote tracking branch" in the documentation to
"remote-tracking branch".

* mm/maint-doc-remote-tracking:
Documentation: remote tracking branch -> remote-tracking branch

Merge branch 'rs/branch-del-symref' into maintJunio C Hamano Mon, 19 Nov 2012 03:32:58 +0000 (19:32 -0800)

Merge branch 'rs/branch-del-symref' into maint

A symbolic ref refs/heads/SYM was not correctly removed with "git
branch -d SYM"; the command removed the ref pointed by SYM instead.

* rs/branch-del-symref:
branch: show targets of deleted symrefs, not sha1s
branch: skip commit checks when deleting symref branches
branch: delete symref branch, not its target
branch: factor out delete_branch_config()
branch: factor out check_branch_commit()

Merge branch 'nd/grep-true-path' into maintJunio C Hamano Mon, 19 Nov 2012 03:32:30 +0000 (19:32 -0800)

Merge branch 'nd/grep-true-path' into maint

"git grep -e pattern <tree>" asked the attribute system to read
"<tree>:.gitattributes" file in the working tree, which was
nonsense.

* nd/grep-true-path:
grep: stop looking at random places for .gitattributes

Merge branch 'jc/grep-pcre-loose-ends' (early part... Junio C Hamano Mon, 19 Nov 2012 03:32:11 +0000 (19:32 -0800)

Merge branch 'jc/grep-pcre-loose-ends' (early part) into maint

"git log -F -E --grep='<ere>'" failed to use the given <ere>
pattern as extended regular expression, and instead looked for the
string literally.

* 'jc/grep-pcre-loose-ends' (early part):
log --grep: use the same helper to set -E/-F options as "git grep"
revisions: initialize revs->grep_filter using grep_init()
grep: move pattern-type bits support to top-level grep.[ch]
grep: move the configuration parsing logic to grep.[ch]
builtin/grep.c: make configuration callback more reusable

Merge branch 'da/mergetools-p4' into maintJunio C Hamano Mon, 19 Nov 2012 03:31:40 +0000 (19:31 -0800)

Merge branch 'da/mergetools-p4' into maint

"git mergetool" feeds /dev/null as a common ancestor when dealing
with an add/add conflict, but p4merge backend cannot handle it. Work
it around by passing a temporary empty file.

* da/mergetools-p4:
mergetools/p4merge: Handle "/dev/null"

Merge branch 'jc/test-say-color-avoid-echo-escape'... Junio C Hamano Mon, 19 Nov 2012 03:31:13 +0000 (19:31 -0800)

Merge branch 'jc/test-say-color-avoid-echo-escape' into maint

The "say" function in the test scaffolding incorrectly allowed
"echo" to interpret "\a" as if it were a C-string asking for a BEL
output.

* jc/test-say-color-avoid-echo-escape:
test-lib: Fix say_color () not to interpret \a\b\c in the message

Merge branch 'bw/config-lift-variable-name-length-limit... Junio C Hamano Mon, 19 Nov 2012 03:29:44 +0000 (19:29 -0800)

Merge branch 'bw/config-lift-variable-name-length-limit' into maint

The configuration parser had an unnecessary hardcoded limit on
variable names that was not checked consistently.

* bw/config-lift-variable-name-length-limit:
Remove the hard coded length limit on variable names in config files

submodule: display summary header in boldRamkumar Ramachandra Tue, 13 Nov 2012 15:42:47 +0000 (21:12 +0530)

submodule: display summary header in bold

Currently, 'git diff --submodule' displays output with a bold diff
header for non-submodules. So this part is in bold:

diff --git a/file1 b/file1
index 30b2f6c..2638038 100644
--- a/file1
+++ b/file1

For submodules, the header looks like this:

Submodule submodule1 012b072..248d0fd:

Unfortunately, it's easy to miss in the output because it's not bold.
Change this.

Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
Acked-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

diff: rename "set" variableJeff King Tue, 13 Nov 2012 15:42:46 +0000 (21:12 +0530)

diff: rename "set" variable

Once upon a time the builtin_diff function used one color, and the color
variables were called "set" and "reset". Nowadays it is a much longer
function and we use several colors (e.g., "add", "del"). Rename "set" to
"meta" to show that it is the color for showing diff meta-info (it still
does not indicate that it is a "color", but at least it matches the
scheme of the other color variables).

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

diff: introduce diff.submodule configuration variableRamkumar Ramachandra Tue, 13 Nov 2012 15:42:45 +0000 (21:12 +0530)

diff: introduce diff.submodule configuration variable

Introduce a diff.submodule configuration variable corresponding to the
'--submodule' command-line option of 'git diff'.

Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
Acked-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Documentation: move diff.wordRegex from config.txt... Ramkumar Ramachandra Tue, 13 Nov 2012 15:42:44 +0000 (21:12 +0530)

Documentation: move diff.wordRegex from config.txt to diff-config.txt

19299a8 (Documentation: Move diff.<driver>.* from config.txt to
diff-config.txt, 2011-04-07) moved the diff configuration options to
diff-config.txt, but forgot about diff.wordRegex, which was left
behind in config.txt. Fix this.

Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
Acked-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

tcsh-completion re-using git-completion.bashMarc Khouzam Fri, 16 Nov 2012 18:43:45 +0000 (13:43 -0500)

tcsh-completion re-using git-completion.bash

The current tcsh-completion support for Git, as can be found on the
Internet, takes the approach of defining the possible completions
explicitly. This has the obvious draw-back to require constant
updating as the Git code base evolves.

The approach taken by this commit is to to re-use the advanced bash
completion script and use its result for tcsh completion. This is
achieved by sourcing the bash script and outputting the completion
result for tcsh consumption.

Three solutions were looked at to implement this approach with (C)
being retained:

A) Modifications:
git-completion.bash and new git-completion.tcsh

Modify the existing git-completion.bash script to support
being sourced using bash (as now), but also executed using bash.
When being executed, the script will output the result of the
computed completion to be re-used elsewhere (e.g., in tcsh).

The modification to git-completion.bash is made not to be
tcsh-specific, but to allow future users to also re-use its
output. Therefore, to be general, git-completion.bash accepts a
second optional parameter, which is not used by tcsh, but could
prove useful for other users.

Pros:
1- allows the git-completion.bash script to easily be re-used
2- tcsh support is mostly isolated in git-completion.tcsh
Cons (for tcsh users only):
1- requires the user to copy both git-completion.tcsh and
git-completion.bash to ${HOME}
2- requires bash script to have a fixed name and location:
${HOME}/.git-completion.bash

B) Modifications:
git-completion.bash

Modify the existing git-completion.bash script to support
being sourced using bash (as now), but also executed using bash,
and sourced using tcsh.

Pros:
1- only requires the user to deal with a single file
2- maintenance more obvious for tcsh since it is entirely part
of the same git-completion.bash script.
Cons:
1- tcsh support could affect bash support as they share the
same script
2- small tcsh section must use syntax suitable for both tcsh
and bash and must be at the beginning of the script
3- requires script to have a fixed name and location:
${HOME}/.git-completion.sh (for tcsh users only)

C) Modifications:
New git-completion.tcsh

Provide a short tcsh script that generates another script
which extends git-completion.bash. This new script can be
used by tcsh to perform completion.

Pros:
1- tcsh support is entirely isolated in git-completion.tcsh
2- new tcsh script can be as complex as needed
Cons (for tcsh users only):
1- requires the user to copy both git-completion.tcsh and
git-completion.bash to ${HOME}
2- requires bash script to have a fixed name and location:
${HOME}/.git-completion.bash
3- sourcing the new script will generate a third script

Approach (C) was selected avoid any modification to git-completion.bash.

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

status: add advice on how to push/pull to tracking... Matthieu Moy Thu, 15 Nov 2012 10:45:00 +0000 (11:45 +0100)

status: add advice on how to push/pull to tracking branch

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

completion: simplify __gitcomp() test helperFelipe Contreras Sun, 11 Nov 2012 14:35:58 +0000 (15:35 +0100)

completion: simplify __gitcomp() test helper

By using print_comp as suggested by SZEDER Gábor.

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

completion: refactor __gitcomp related testsFelipe Contreras Sun, 11 Nov 2012 14:35:57 +0000 (15:35 +0100)

completion: refactor __gitcomp related tests

Remove lots of duplicated code; no functional changes intended.

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

completion: consolidate test_completion*() testsFelipe Contreras Sun, 11 Nov 2012 14:35:56 +0000 (15:35 +0100)

completion: consolidate test_completion*() tests

No need to have two versions; if a second argument is specified, use
that, otherwise use stdin.

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

completion: simplify tests using test_completion_long()Felipe Contreras Sun, 11 Nov 2012 14:35:55 +0000 (15:35 +0100)

completion: simplify tests using test_completion_long()

No need to duplicate that functionality.

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

completion: standardize final space marker in testsFelipe Contreras Sun, 11 Nov 2012 14:35:54 +0000 (15:35 +0100)

completion: standardize final space marker in tests

The rest of the code uses ' Z$'. Lets use that for
test_completion_long() as well.

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

completion: add comment for test_completion()Felipe Contreras Sun, 11 Nov 2012 14:35:53 +0000 (15:35 +0100)

completion: add comment for test_completion()

So that it's easier to understand what it does.

Also, make sure we pass only the first argument for completion.
Shouldn't cause any functional changes because run_completion only
checks $1.

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

config: don't segfault when given --path with a missing... Carlos Martín Nieto Thu, 15 Nov 2012 18:10:01 +0000 (10:10 -0800)

config: don't segfault when given --path with a missing value

When given a variable without a value, such as '[section] var' and
asking git-config to treat it as a path, git_config_pathname returns
an error and doesn't modify its output parameter. show_config assumes
that the call is always successful and sets a variable to indicate
that vptr should be freed. In case of an error however, trying to do
this will cause the program to be killed, as it's pointing to memory
in the stack.

Detect the error and return immediately to avoid freeing or accessing
the uninitialed memory in the stack.

Signed-off-by: Carlos Martín Nieto <cmn@elego.de>
Acked-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

usage.c: detect recursion in die routines and bail... Brandon Casey Thu, 15 Nov 2012 01:45:52 +0000 (17:45 -0800)

usage.c: detect recursion in die routines and bail out immediately

It is theoretically possible for a die handler to get into a state of
infinite recursion. For example, if a die handler called another function
which itself called die(). Let's at least detect this situation, inform the
user, and call exit.

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

ident: keep separate "explicit" flags for author and... Jeff King Thu, 15 Nov 2012 00:34:13 +0000 (16:34 -0800)

ident: keep separate "explicit" flags for author and committer

We keep track of whether the user ident was given to us
explicitly, or if we guessed at it from system parameters
like username and hostname. However, we kept only a single
variable. This covers the common cases (because the author
and committer will usually come from the same explicit
source), but can miss two cases:

1. GIT_COMMITTER_* is set explicitly, but we fallback for
GIT_AUTHOR. We claim the ident is explicit, even though
the author is not.

2. GIT_AUTHOR_* is set and we ask for author ident, but
not committer ident. We will claim the ident is
implicit, even though it is explicit.

This patch uses two variables instead of one, updates both
when we set the "fallback" values, and updates them
individually when we read from the environment.

Rather than keep user_ident_sufficiently_given as a
compatibility wrapper, we update the only two callers to
check the committer_ident, which matches their intent and
what was happening already.

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

ident: make user_ident_explicitly_given staticJeff King Thu, 15 Nov 2012 00:34:05 +0000 (16:34 -0800)

ident: make user_ident_explicitly_given static

In v1.5.6-rc0~56^2 (2008-05-04) "user_ident_explicitly_given"
was introduced as a global for communication between config,
ident, and builtin-commit. In v1.7.0-rc0~72^2 (2010-01-07)
readers switched to using the common wrapper
user_ident_sufficiently_given(). After v1.7.11-rc1~15^2~18
(2012-05-21), the var is only written in ident.c.

Now we can make it static, which will enable further
refactoring without worrying about upsetting other code.

Signed-off-by: Jeff King <peff@peff.net>
Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t7502: factor out autoident prerequisiteJeff King Thu, 15 Nov 2012 00:33:40 +0000 (16:33 -0800)

t7502: factor out autoident prerequisite

t7502 checks the behavior of commit when we can and cannot
determine a valid committer ident. Let's move that into
test-lib as a lazy prerequisite so other scripts can use it.

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

test-lib: allow negation of prerequisitesJeff King Thu, 15 Nov 2012 00:33:25 +0000 (16:33 -0800)

test-lib: allow negation of prerequisites

You can set and test a prerequisite like this:

test_set_prereq FOO
test_have_prereq FOO && echo yes

You can negate the test in the shell like this:

! test_have_prereq && echo no

However, when you are using the automatic prerequisite
checking in test_expect_*, there is no opportunity to use
the shell negation. This patch introduces the syntax "!FOO"
to indicate that the test should only run if a prerequisite
is not meant.

One alternative is to set an explicit negative prerequisite,
like:

if system_has_foo; then
test_set_prereq FOO
else
test_set_prereq NO_FOO
fi

However, this doesn't work for lazy prerequisites, which
associate a single test with a single name. We could teach
the lazy prereq evaluator to set both forms, but the code
change ends up quite similar to this one (because we still
need to convert NO_FOO into FOO to find the correct lazy
script).

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

checkout: print a message when switching unborn branchesJeff King Thu, 15 Nov 2012 17:12:33 +0000 (09:12 -0800)

checkout: print a message when switching unborn branches

When we switch to a new branch using checkout, we usually output a
message indicating what happened. However, when we switch from an unborn
branch to a new branch, we do not print anything, which may leave the
user wondering what happened.

The reason is that the unborn branch is a special case (see abe1998),
and does not follow the usual switch_branches code path. Let's add a
similar informational message to the special case to match the usual
code path.

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

Start 1.8.1 cycleJunio C Hamano Thu, 15 Nov 2012 19:21:47 +0000 (11:21 -0800)

Start 1.8.1 cycle

Prepare the release notes for the upcoming release, and describe
changes up to the 5th batch we just merged.

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

Merge branch 'jc/prettier-pretty-note'Junio C Hamano Thu, 15 Nov 2012 18:25:05 +0000 (10:25 -0800)

Merge branch 'jc/prettier-pretty-note'

Emit the notes attached to the commit in "format-patch --notes"
output after three-dashes.

* jc/prettier-pretty-note:
format-patch: add a blank line between notes and diffstat
Doc User-Manual: Patch cover letter, three dashes, and --notes
Doc format-patch: clarify --notes use case
Doc notes: Include the format-patch --notes option
Doc SubmittingPatches: Mention --notes option after "cover letter"
Documentation: decribe format-patch --notes
format-patch --notes: show notes after three-dashes
format-patch: append --signature after notes
pretty_print_commit(): do not append notes message
pretty: prepare notes message at a centralized place
format_note(): simplify API
pretty: remove reencode_commit_message()

Merge branch 'mg/maint-pull-suggest-upstream-to'Junio C Hamano Thu, 15 Nov 2012 18:24:59 +0000 (10:24 -0800)

Merge branch 'mg/maint-pull-suggest-upstream-to'

Follow-on to the new "--set-upstream-to" topic from v1.8.0 to avoid
suggesting the deprecated "--set-upstream".

* mg/maint-pull-suggest-upstream-to:
push/pull: adjust missing upstream help text to changed interface

Merge branch 'mh/notes-string-list'Junio C Hamano Thu, 15 Nov 2012 18:24:53 +0000 (10:24 -0800)

Merge branch 'mh/notes-string-list'

Improve the asymptotic performance of the cat_sort_uniq notes merge
strategy.

* mh/notes-string-list:
string_list_add_refs_from_colon_sep(): use string_list_split()
notes: fix handling of colon-separated values
combine_notes_cat_sort_uniq(): sort and dedup lines all at once
Initialize sort_uniq_list using named constant
string_list: add a function string_list_remove_empty_items()

Merge branch 'mh/strbuf-split'Junio C Hamano Thu, 15 Nov 2012 18:24:49 +0000 (10:24 -0800)

Merge branch 'mh/strbuf-split'

Cleanups and documentation for strbuf_split.

* mh/strbuf-split:
strbuf_split*(): document functions
strbuf_split*(): rename "delim" parameter to "terminator"
strbuf_split_buf(): simplify iteration
strbuf_split_buf(): use ALLOC_GROW()

Merge branch 'mm/maint-doc-commit-edit'Junio C Hamano Thu, 15 Nov 2012 18:24:44 +0000 (10:24 -0800)

Merge branch 'mm/maint-doc-commit-edit'

* mm/maint-doc-commit-edit:
Document 'git commit --no-edit' explicitly

Merge branch 'as/maint-doc-fix-no-post-rewrite'Junio C Hamano Thu, 15 Nov 2012 18:24:29 +0000 (10:24 -0800)

Merge branch 'as/maint-doc-fix-no-post-rewrite'

* as/maint-doc-fix-no-post-rewrite:
commit: fixup misplacement of --no-post-rewrite description

Merge branch 'js/hp-nonstop'Junio C Hamano Thu, 15 Nov 2012 18:24:13 +0000 (10:24 -0800)

Merge branch 'js/hp-nonstop'

Finishing touches to port to HP NonStop continues.

* js/hp-nonstop:
fix 'make test' for HP NonStop

Merge branch 'cr/cvsimport-local-zone'Junio C Hamano Thu, 15 Nov 2012 18:24:09 +0000 (10:24 -0800)

Merge branch 'cr/cvsimport-local-zone'

Allows "cvsimport" to read per-author timezone from the author info
file.

* cr/cvsimport-local-zone:
cvsimport: work around perl tzset issue
git-cvsimport: allow author-specific timezones

Merge branch 'jc/same-encoding'Junio C Hamano Thu, 15 Nov 2012 18:24:05 +0000 (10:24 -0800)

Merge branch 'jc/same-encoding'

Various codepaths checked if two encoding names are the same using
ad-hoc code and some of them ended up asking iconv() to convert
between "utf8" and "UTF-8". The former is not a valid way to spell
the encoding name, but often people use it by mistake, and we
equated them in some but not all codepaths. Introduce a new helper
function to make these codepaths consistent.

* jc/same-encoding:
reencode_string(): introduce and use same_encoding()

Conflicts:
builtin/mailinfo.c