gitweb.git
Merge branch 'mp/complete-paths'Junio C Hamano Thu, 7 Mar 2013 21:11:55 +0000 (13:11 -0800)

Merge branch 'mp/complete-paths'

* mp/complete-paths:
git-completion.zsh: define __gitcomp_file compatibility function

Merge branch 'maint'Junio C Hamano Thu, 7 Mar 2013 20:50:36 +0000 (12:50 -0800)

Merge branch 'maint'

* maint:
gitweb/README: remove reference to git.kernel.org

Merge branch 'mh/maint-ceil-absolute' into maintJunio C Hamano Thu, 7 Mar 2013 20:49:57 +0000 (12:49 -0800)

Merge branch 'mh/maint-ceil-absolute' into maint

* mh/maint-ceil-absolute:
Provide a mechanism to turn off symlink resolution in ceiling paths

gitweb/README: remove reference to git.kernel.orgFredrik Gustafsson Thu, 7 Mar 2013 01:23:43 +0000 (02:23 +0100)

gitweb/README: remove reference to git.kernel.org

git.kernel.org no longer uses gitweb but has switched to cgit.

Info about this can be found on: https://www.kernel.org/pelican.html
or simply by looking at http://git.kernel.org . This is change since
2013-03-01.

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

add: Clarify documentation of -A and -uGreg Price Thu, 7 Mar 2013 10:13:15 +0000 (05:13 -0500)

add: Clarify documentation of -A and -u

The documentation of '-A' and '-u' is very confusing for someone who
doesn't already know what they do. Describe them with fewer words and
clearer parallelism to each other and to the behavior of plain 'add'.

Also mention the default <pathspec> for '-A' as well as '-u', because
it applies to both.

Signed-off-by: Greg Price <price@mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

l10n: zh_CN.po: translate 1 new messageJiang Xin Tue, 5 Mar 2013 05:09:55 +0000 (13:09 +0800)

l10n: zh_CN.po: translate 1 new message

Translate 1 new message came from git.pot update in ed1ddaf
(l10n: git.pot: v1.8.2 round 4 (1 changed)).

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

tests: make sure rename pretty print worksAntoine Pelisse Wed, 6 Mar 2013 21:36:12 +0000 (22:36 +0100)

tests: make sure rename pretty print works

Add basic use cases and corner cases tests for
"git diff -M --summary/stat".

Signed-off-by: Antoine Pelisse <apelisse@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

l10n: de.po: translate 1 new messageRalf Thielow Tue, 5 Mar 2013 05:32:41 +0000 (06:32 +0100)

l10n: de.po: translate 1 new message

Translate 1 new message came from git.pot update in
ed1ddaf (l10n: git.pot: v1.8.2 round 4 (1 changed)).

Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>

l10n: vi.po: Update translation (2009t0f0u)Tran Ngoc Quan Wed, 6 Mar 2013 06:57:17 +0000 (13:57 +0700)

l10n: vi.po: Update translation (2009t0f0u)

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

reflog: fix typo in "reflog expire" clean-up codepathJunio C Hamano Tue, 5 Mar 2013 20:44:42 +0000 (12:44 -0800)

reflog: fix typo in "reflog expire" clean-up codepath

In "reflog expire" we were not clearing the REACHABLE bit from
objects reachable from the tip of refs we marked earlier.

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

git-completion.zsh: define __gitcomp_file compatibility... Matthieu Moy Tue, 5 Mar 2013 08:43:55 +0000 (09:43 +0100)

git-completion.zsh: define __gitcomp_file compatibility function

Commit fea16b47b60 (Fri Jan 11 19:48:43 2013, Manlio Perillo,
git-completion.bash: add support for path completion), introduced a new
__gitcomp_file function that uses the bash builtin "compgen". The
function was redefined for ZSH in the deprecated section of
git-completion.bash, but not in the new git-completion.zsh script.

As a result, users of git-completion.zsh trying to complete "git add
fo<tab>" get an error:

git add fo__gitcomp_file:8: command not found: compgen

This patch adds the redefinition and removes the error.

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

l10n: Update Swedish translation (2009t0f0u)Peter Krefting Tue, 5 Mar 2013 08:18:25 +0000 (09:18 +0100)

l10n: Update Swedish translation (2009t0f0u)

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

l10n: git.pot: v1.8.2 round 4 (1 changed)Jiang Xin Tue, 5 Mar 2013 04:41:45 +0000 (12:41 +0800)

l10n: git.pot: v1.8.2 round 4 (1 changed)

Generate po/git.pot from v1.8.2-rc2-4-g77995 for git v1.8.2
l10n round 4.

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

Merge git://github.com/git-l10n/git-poJunio C Hamano Mon, 4 Mar 2013 09:16:02 +0000 (01:16 -0800)

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

* git://github.com/git-l10n/git-po:
l10n: de.po: correct translation of "bisect" messages
l10n: de.po: translate 5 new messages
l10n: de.po: translate 35 new messages

submodule update: when using recursion, show full pathWilliam Entriken Sat, 2 Mar 2013 19:44:59 +0000 (14:44 -0500)

submodule update: when using recursion, show full path

Previously when using update with recursion, only the path for the
inner-most module was printed. Now the path is printed relative to
the directory the command was started from. This now matches the
behavior of submodule foreach.

Signed-off-by: William Entriken <github.com@phor.net>
Acked-by: Jens Lehmann <Jens.Lehmann@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Revert "graph.c: mark private file-scope symbols as... John Keeping Mon, 4 Mar 2013 00:03:37 +0000 (00:03 +0000)

Revert "graph.c: mark private file-scope symbols as static"

This reverts commit ba35480439d05b8f6cca50527072194fe3278bbb.

CGit uses these symbols to output the correct HTML around graph
elements. Making these symbols private means that CGit cannot be
updated to use Git 1.8.0 or newer, so let's not do that.

On top of the revert, also add comments so that we avoid reintroducing
this problem in the future and suggest to those modifying this API
that they might want to discuss it with the CGit developers.

Signed-off-by: John Keeping <john@keeping.me.uk>
Acked-by: Jason A. Donenfeld <Jason@zx2c4.com>
Acked-by: Johan Herland <johan@herland.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Git 1.8.2-rc2 v1.8.2-rc2Junio C Hamano Sun, 3 Mar 2013 09:24:11 +0000 (01:24 -0800)

Git 1.8.2-rc2

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

mailsplit: sort maildir filenames more cleverlyJeff King Fri, 1 Mar 2013 23:35:48 +0000 (18:35 -0500)

mailsplit: sort maildir filenames more cleverly

A maildir does not technically record the order in which
items were placed into it. That means that when applying a
patch series from a maildir, we may get the patches in the
wrong order. We try to work around this by sorting the
filenames. Unfortunately, this may or may not work depending
on the naming scheme used by the writer of the maildir.

For instance, mutt will write:

${epoch_seconds}.${pid}_${seq}.${host}

where we have:

- epoch_seconds: timestamp at which entry was written
- pid: PID of writing process
- seq: a sequence number to ensure uniqueness of filenames
- host: hostname

None of the numbers are zero-padded. Therefore, when we sort
the names as byte strings, entries that cross a digit
boundary (e.g., 10) will sort out of order. In the case of
timestamps, it almost never matters (because we do not cross
a digit boundary in the epoch time very often these days).
But for the sequence number, a 10-patch series would be
ordered as 1, 10, 2, 3, etc.

To fix this, we can use a custom sort comparison function
which traverses each string, comparing chunks of digits
numerically, and otherwise doing a byte-for-byte comparison.
That would sort:

123.456_1.bar
123.456_2.bar
...
123.456_10.bar

according to the sequence number. Since maildir does not
define a filename format, this is really just a heuristic.
But it happens to work for mutt, and there is a reasonable
chance that it will work for other writers, too (at least as
well as a straight sort).

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

Sync with 1.8.1.5Junio C Hamano Fri, 1 Mar 2013 21:17:18 +0000 (13:17 -0800)

Sync with 1.8.1.5

Git 1.8.1.5 v1.8.1.5Junio C Hamano Fri, 1 Mar 2013 21:15:29 +0000 (13:15 -0800)

Git 1.8.1.5

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

Make !pattern in .gitattributes non-fatalThomas Rast Fri, 1 Mar 2013 20:06:17 +0000 (21:06 +0100)

Make !pattern in .gitattributes non-fatal

Before 82dce99 (attr: more matching optimizations from .gitignore,
2012-10-15), .gitattributes did not have any special treatment of a
leading '!'. The docs, however, always said

The rules how the pattern matches paths are the same as in
`.gitignore` files; see linkgit:gitignore[5].

By those rules, leading '!' means pattern negation. So 82dce99
correctly determined that this kind of line makes no sense and should
be disallowed.

However, users who actually had a rule for files starting with a '!'
are in a bad position: before 82dce99 '!' matched that literal
character, so it is conceivable that users have .gitattributes with
such lines in them. After 82dce99 the unescaped version was
disallowed in such a way that git outright refuses to run(!) most
commands in the presence of such a .gitattributes. It therefore
becomes very hard to fix, let alone work with, such repositories.

Let's at least allow the users to fix their repos: change the fatal
error into a warning.

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

Merge branch 'wk/user-manual' into maintJunio C Hamano Fri, 1 Mar 2013 18:37:40 +0000 (10:37 -0800)

Merge branch 'wk/user-manual' into maint

* wk/user-manual:
user-manual: Flesh out uncommitted changes and submodule updates
user-manual: Use request-pull to generate "please pull" text
user-manual: Reorganize the reroll sections, adding 'git rebase -i'

Documentation/githooks: Fix linkgitAndrew Wong Fri, 1 Mar 2013 17:23:57 +0000 (12:23 -0500)

Documentation/githooks: Fix linkgit

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

describe: --match=<pattern> must limit the refs even... Junio C Hamano Thu, 28 Feb 2013 21:53:00 +0000 (13:53 -0800)

describe: --match=<pattern> must limit the refs even when used with --all

The logic to limit the refs used for describing with a matching pattern
with --match=<pattern> parameter was implemented incorrectly when --all
is in effect. It just demoted a ref that did not match the pattern to
lower priority---if there aren't other refs with higher priority
that describe the given commit, such an unmatching ref was still used.

When --match is used, reject refs that do not match the given
criteria, so that with or without --all, the output will only use
refs that match the pattern.

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

name-hash.c: fix endless loop with core.ignorecase... Karsten Blees Wed, 27 Feb 2013 23:57:48 +0000 (00:57 +0100)

name-hash.c: fix endless loop with core.ignorecase=true

With core.ignorecase=true, name-hash.c builds a case insensitive index of
all tracked directories. Currently, the existing cache entry structures are
added multiple times to the same hashtable (with different name lengths and
hash codes). However, there's only one dir_next pointer, which gets
completely messed up in case of hash collisions. In the worst case, this
causes an endless loop if ce == ce->dir_next (see t7062).

Use a separate hashtable and separate structures for the directory index
so that each directory entry has its own next pointer. Use reference
counting to track which directory entry contains files.

There are only slight changes to the name-hash.c API:
- new free_name_hash() used by read_cache.c::discard_index()
- remove_name_hash() takes an additional index_state parameter
- index_name_exists() for a directory (trailing '/') may return a cache
entry that has been removed (CE_UNHASHED). This is not a problem as the
return value is only used to check if the directory exists (dir.c) or to
normalize casing of directory names (read-cache.c).

Getting rid of cache_entry.dir_next reduces memory consumption, especially
with core.ignorecase=false (which doesn't use that member at all).

With core.ignorecase=true, building the directory index is slightly faster
as we add / check the parent directory first (instead of going through all
directory levels for each file in the index). E.g. with WebKit (~200k
files, ~7k dirs), time spent in lazy_init_name_hash is reduced from 176ms
to 130ms.

Signed-off-by: Karsten Blees <blees@dcon.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'maint'Junio C Hamano Wed, 27 Feb 2013 18:10:28 +0000 (10:10 -0800)

Merge branch 'maint'

* maint:
Update draft release notes to 1.8.1.5
Documentation/submodule: Add --force to update synopsis

Update draft release notes to 1.8.1.5Junio C Hamano Wed, 27 Feb 2013 18:09:59 +0000 (10:09 -0800)

Update draft release notes to 1.8.1.5

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

Merge branch 'ef/non-ascii-parse-options-error-diag... Junio C Hamano Wed, 27 Feb 2013 18:04:26 +0000 (10:04 -0800)

Merge branch 'ef/non-ascii-parse-options-error-diag' into maint

* ef/non-ascii-parse-options-error-diag:
parse-options: report uncorrupted multi-byte options

Merge branch 'wk/man-deny-current-branch-is-default... Junio C Hamano Wed, 27 Feb 2013 18:01:21 +0000 (10:01 -0800)

Merge branch 'wk/man-deny-current-branch-is-default-these-days' into maint

* wk/man-deny-current-branch-is-default-these-days:
user-manual: typofix (ofthe->of the)
user-manual: Update for receive.denyCurrentBranch=refuse

Merge branch 'jn/less-reconfigure' into maintJunio C Hamano Wed, 27 Feb 2013 17:59:19 +0000 (09:59 -0800)

Merge branch 'jn/less-reconfigure' into maint

* jn/less-reconfigure:
Makefile: avoid infinite loop on configure.ac change

Merge branch 'mh/maint-ceil-absolute'Junio C Hamano Wed, 27 Feb 2013 17:47:27 +0000 (09:47 -0800)

Merge branch 'mh/maint-ceil-absolute'

An earlier workaround designed to help people who list logical
directories that will not match what getcwd(3) returns in the
GIT_CEILING_DIRECTORIES had an adverse effect when it is slow to
stat and readlink a directory component of an element listed on it.

* mh/maint-ceil-absolute:
Provide a mechanism to turn off symlink resolution in ceiling paths

archive-zip: fix compressed size for stored export... René Scharfe Wed, 27 Feb 2013 10:20:21 +0000 (11:20 +0100)

archive-zip: fix compressed size for stored export-subst files

Currently ZIP archive entries of files with export-subst attribute are
broken if they are stored uncompressed.

We get the size of a file from sha1_object_info(), but this number is
likely wrong for files whose contents are changed due to export-subst
placeholder expansion. We use sha1_file_to_archive() to get the
expanded file contents and size in that case. We proceed to use that
size for the uncompressed size field (good), but the compressed size
field is set based on the size from sha1_object_info() (bad).

This matters only for uncompressed files because for deflated files
we use the correct value after compression is done. And for files
without export-subst expansion the sizes from sha1_object_info() and
sha1_file_to_archive() are the same, so they are unaffected as well.

This patch fixes the issue by setting the compressed size based on the
uncompressed size only after we actually know the latter.

Also make use of the test file substfile1 to check for the breakage;
it was only stored verbatim so far. For that purpose, set the
attribute export-subst and replace its contents with the expected
expansion after committing.

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

Documentation/submodule: Add --force to update synopsisBrad King Wed, 27 Feb 2013 00:41:34 +0000 (19:41 -0500)

Documentation/submodule: Add --force to update synopsis

In commit 9db31bdf (submodule: Add --force option for git submodule
update, 2011-04-01) we added the option to the implementation's usage
synopsis but forgot to add it to the synopsis in the command
documentation. Add the option to the synopsis in the same location it
is reported in usage and re-wrap the options to avoid long lines.

Signed-off-by: Brad King <brad.king@kitware.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

diff: prevent pprint_rename from underrunning inputThomas Rast Tue, 26 Feb 2013 20:47:01 +0000 (21:47 +0100)

diff: prevent pprint_rename from underrunning input

The logic described in d020e27 (diff: Fix rename pretty-print when
suffix and prefix overlap, 2013-02-23) is wrong: The proof in the
comment is valid only if both strings are the same length. *One* of
old/new can reach a-1 (b-1, resp.) if 'a' is a suffix of 'b' (or vice
versa).

Since the intent was to let the loop run down to the '/' at the end of
the common prefix, fix it by making that distinction explicit: if
there is no prefix, allow no underrun.

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

Documentation: filter-branch env-filter exampleTadeusz Andrzej Kadłubowski Thu, 21 Feb 2013 20:23:38 +0000 (21:23 +0100)

Documentation: filter-branch env-filter example

filter-branch --env-filter example that shows how to change the email
address in all commits before publishing a project.

Signed-off-by: Tadeusz Andrzej Kadłubowski <yess@hell.org.pl>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-filter-branch.txt: clarify ident variables usageTadeusz Andrzej Kadłubowski Thu, 21 Feb 2013 20:22:50 +0000 (21:22 +0100)

git-filter-branch.txt: clarify ident variables usage

There is a rare edge case of git-filter-branch: a filter that unsets
identity variables from the environment. Link to git-commit-tree
clarifies how Git would fall back in this situation.

Signed-off-by: Tadeusz Andrzej Kadłubowski <yess@hell.org.pl>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'for-junio' of git://github.com/kusma/gitJunio C Hamano Tue, 26 Feb 2013 17:17:08 +0000 (09:17 -0800)

Merge branch 'for-junio' of git://github.com/kusma/git

* 'for-junio' of git://github.com/kusma/git:
wincred: improve compatibility with windows versions
wincred: accept CRLF on stdin to simplify console usage

Revert "compat: add strtok_r()"Erik Faye-Lund Tue, 26 Feb 2013 16:58:38 +0000 (17:58 +0100)

Revert "compat: add strtok_r()"

This reverts commit 78457bc0ccc1af8b9eb776a0b17986ebd50442bc.

commit 28c5d9e ("vcs-svn: drop string_pool") previously removed
the only call-site for strtok_r. So let's get rid of the compat
implementation as well.

Signed-off-by: Erik Faye-Lund <kusmabite@gmail.com>
Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

wincred: improve compatibility with windows versionsKarsten Blees Thu, 10 Jan 2013 10:52:12 +0000 (11:52 +0100)

wincred: improve compatibility with windows versions

On WinXP, the windows credential helper doesn't work at all (due to missing
Cred[Un]PackAuthenticationBuffer APIs). On Win7, the credential format used
by wincred is incompatible with native Windows tools (such as the control
panel applet or 'cmdkey.exe /generic'). These Windows tools only set the
TargetName, UserName and CredentialBlob members of the CREDENTIAL
structure (where CredentialBlob is the UTF-16-encoded password).

Remove the unnecessary packing / unpacking of the password, along with the
related API definitions, for compatibility with Windows XP.

Don't use CREDENTIAL_ATTRIBUTEs to identify credentials for compatibility
with Windows credential manager tools. Parse the protocol, username, host
and path fields from the credential's target name instead.

Credentials created with an old wincred version will have mangled or empty
passwords after this change.

Signed-off-by: Karsten Blees <blees@dcon.de>
Signed-off-by: Erik Faye-Lund <kusmabite@gmail.com>

wincred: accept CRLF on stdin to simplify console usageKarsten Blees Wed, 9 Jan 2013 11:49:26 +0000 (12:49 +0100)

wincred: accept CRLF on stdin to simplify console usage

The windows credential helper currently only accepts LF on stdin, but bash
and cmd.exe both send CRLF. This prevents interactive use in the console.

Change the stdin parser to optionally accept CRLF.

Signed-off-by: Karsten Blees <blees@dcon.de>
Signed-off-by: Erik Faye-Lund <kusmabite@gmail.com>

l10n: de.po: correct translation of "bisect" messagesRalf Thielow Sat, 23 Feb 2013 16:47:32 +0000 (17:47 +0100)

l10n: de.po: correct translation of "bisect" messages

The term "bisect" was translated as "halbieren", we should
translate it as "binäre Suche" (binary search). While at
there, we should leave "bisect run" untranslated since it's
a subcommand of "git bisect".

Suggested-by: Thomas Rast <trast@inf.ethz.ch>
Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>

l10n: de.po: translate 5 new messagesRalf Thielow Tue, 19 Feb 2013 16:59:28 +0000 (17:59 +0100)

l10n: de.po: translate 5 new messages

Translate 5 new messages came from git.pot update in 235537a
(l10n: git.pot: v1.8.2 round 3 (5 new)).

Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>
Acked-by: Thomas Rast <trast@inf.ethz.ch>

l10n: de.po: translate 35 new messagesRalf Thielow Thu, 14 Feb 2013 17:27:00 +0000 (18:27 +0100)

l10n: de.po: translate 35 new messages

Translate 35 new messages came from git.pot update
in 9caaf23 (l10n: Update git.pot (35 new, 14 removed
messages)).

Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>
Acked-by: Thomas Rast <trast@inf.ethz.ch>

user-manual: Standardize backtick quotingW. Trevor King Mon, 25 Feb 2013 22:53:00 +0000 (17:53 -0500)

user-manual: Standardize backtick quoting

I tried to always use backticks for:
* Paths and filenames (e.g. `.git/config`)
* Compound refs (e.g. `origin/HEAD`)
* Git commands (e.g. `git log`)
* Command arguments (e.g. `--pretty`)
* URLs (e.g. `git://`), as a subset of command arguments
* Special characters (e.g. `+` in diffs).
* Config options (e.g. `branch.<name>.remote`)

Branch and tag names are sometimes set off with double quotes,
sometimes set off with backticks, and sometimes left bare. I tried to
judge when the intention was introducing new terms or conventions
(double quotes), to reference a recently used command argument
(backticks), or to reference the abstract branch/commit (left bare).
Obviously these are not particularly crisp definitions, so my
decisions are fairly arbitrary ;). When a reference had already been
introduced, I changed further double-quoted instances to backticked
instances.

When new backticks increased the length of a line beyond others in
that block, I re-wrapped blocks to 72 columns.

Signed-off-by: W. Trevor King <wking@tremily.us>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

utf8: accept alternate spellings of UTF-8Jeff King Mon, 25 Feb 2013 20:31:00 +0000 (15:31 -0500)

utf8: accept alternate spellings of UTF-8

The iconv implementation on many platforms will accept
variants of UTF-8, including "UTF8", "utf-8", and "utf8",
but some do not. We make allowances in our code to treat
them all identically, but we sometimes hand the string from
the user directly to iconv. In this case, the platform iconv
may or may not work.

There are really four levels of platform iconv support for
these synonyms:

1. All synonyms understood (e.g., glibc).

2. Only the official "UTF-8" understood (e.g., Windows).

3. Official "UTF-8" not understood, but some other synonym
understood (it's not known whether such a platform exists).

4. Neither "UTF-8" nor any synonym understood (e.g.,
ancient systems, or ones without utf8 support
installed).

This patch teaches git to fall back to using the official
"UTF-8" spelling when iconv_open fails (and the encoding was
one of the synonym spellings). This makes things more
convenient to users of type 2 systems, as they can now use
any of the synonyms for the log output encoding.

Type 1 systems are not affected, as iconv already works on
the first try.

Type 4 systems are not affected, as both attempts already
fail.

Type 3 systems will not benefit from the feature, but
because we only use "UTF-8" as a fallback, they will not be
regressed (i.e., you can continue to use "utf8" if your
platform supports it). We could try all the various
synonyms, but since such systems are not even known to
exist, it's not worth the effort.

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

git-compat-util.h: Provide missing netdb.h definitionsDavid Michael Mon, 25 Feb 2013 19:30:19 +0000 (14:30 -0500)

git-compat-util.h: Provide missing netdb.h definitions

Some platforms may lack the NI_MAXHOST and NI_MAXSERV values in their
system headers, so ensure they are available.

Signed-off-by: David Michael <fedora.dm0@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Git 1.8.2-rc1 v1.8.2-rc1Junio C Hamano Mon, 25 Feb 2013 16:39:23 +0000 (08:39 -0800)

Git 1.8.2-rc1

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

Merge git://github.com/git-l10n/git-poJunio C Hamano Mon, 25 Feb 2013 17:02:58 +0000 (09:02 -0800)

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

* git://github.com/git-l10n/git-po:
l10n: vi.po: Updated 5 new messages (2009t0f0u)
l10n: Update Swedish translation (2009t0f0u)
l10n: Update Swedish translation (2004t0f0u)
l10n: zh_CN.po: translate 5 new messages
l10n: git.pot: v1.8.2 round 3 (5 new)

Sync with 'maint'Junio C Hamano Mon, 25 Feb 2013 16:27:50 +0000 (08:27 -0800)

Sync with 'maint'

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

Merge branch 'wk/user-manual'Junio C Hamano Mon, 25 Feb 2013 16:27:17 +0000 (08:27 -0800)

Merge branch 'wk/user-manual'

Further updates to the user manual.

* wk/user-manual:
user-manual: Flesh out uncommitted changes and submodule updates
user-manual: Use request-pull to generate "please pull" text
user-manual: Reorganize the reroll sections, adding 'git rebase -i'

Merge branch 'jn/less-reconfigure'Junio C Hamano Mon, 25 Feb 2013 16:27:13 +0000 (08:27 -0800)

Merge branch 'jn/less-reconfigure'

A change made on v1.8.1.x maintenance track had a nasty regression
to break the build when autoconf is used.

* jn/less-reconfigure:
Makefile: avoid infinite loop on configure.ac change

Merge branch 'as/check-ignore'Junio C Hamano Mon, 25 Feb 2013 16:27:09 +0000 (08:27 -0800)

Merge branch 'as/check-ignore'

"git check-ignore ." segfaulted, as a function it calls deep in its
callchain took a string in the <ptr, length> form but did not stop
when given an empty string.

* as/check-ignore:
name-hash: allow hashing an empty string
t0008: document test_expect_success_multi

Merge branch 'ct/autoconf-htmldir'Junio C Hamano Mon, 25 Feb 2013 16:27:04 +0000 (08:27 -0800)

Merge branch 'ct/autoconf-htmldir'

An earlier change to config.mak.autogen broke a build driven by the
./configure script when --htmldir is not specified on the command
line of ./configure.

* ct/autoconf-htmldir:
Bugfix: undefined htmldir in config.mak.autogen

Merge branch 'wk/man-deny-current-branch-is-default... Junio C Hamano Mon, 25 Feb 2013 16:26:59 +0000 (08:26 -0800)

Merge branch 'wk/man-deny-current-branch-is-default-these-days'

* wk/man-deny-current-branch-is-default-these-days:
user-manual: typofix (ofthe->of the)

Prepare for 1.8.1.5Junio C Hamano Mon, 25 Feb 2013 16:15:40 +0000 (08:15 -0800)

Prepare for 1.8.1.5

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

Merge branch 'jc/mention-tracking-for-pull-default... Junio C Hamano Mon, 25 Feb 2013 16:04:19 +0000 (08:04 -0800)

Merge branch 'jc/mention-tracking-for-pull-default' into maint

* jc/mention-tracking-for-pull-default:
doc: mention tracking for pull.default

Merge branch 'mm/config-intro-in-git-doc' into maintJunio C Hamano Mon, 25 Feb 2013 16:04:17 +0000 (08:04 -0800)

Merge branch 'mm/config-intro-in-git-doc' into maint

* mm/config-intro-in-git-doc:
git.txt: update description of the configuration mechanism

Merge branch 'da/p4merge-mktemp-fix' into maintJunio C Hamano Mon, 25 Feb 2013 16:04:05 +0000 (08:04 -0800)

Merge branch 'da/p4merge-mktemp-fix' into maint

* da/p4merge-mktemp-fix:
p4merge: fix printf usage

Merge branch 'bw/get-tz-offset-perl' into maintJunio C Hamano Mon, 25 Feb 2013 16:04:03 +0000 (08:04 -0800)

Merge branch 'bw/get-tz-offset-perl' into maint

* bw/get-tz-offset-perl:
cvsimport: format commit timestamp ourselves without using strftime
perl/Git.pm: fix get_tz_offset to properly handle DST boundary cases
Move Git::SVN::get_tz to Git::get_tz_offset

Merge branch 'al/mergetool-printf-fix' into maintJunio C Hamano Mon, 25 Feb 2013 16:04:01 +0000 (08:04 -0800)

Merge branch 'al/mergetool-printf-fix' into maint

* al/mergetool-printf-fix:
difftool--helper: fix printf usage
git-mergetool: print filename when it contains %

Merge branch 'jx/utf8-printf-width' into maintJunio C Hamano Mon, 25 Feb 2013 16:03:59 +0000 (08:03 -0800)

Merge branch 'jx/utf8-printf-width' into maint

* jx/utf8-printf-width:
Add utf8_fprintf helper that returns correct number of columns

Merge branch 'mg/bisect-doc' into maintJunio C Hamano Mon, 25 Feb 2013 16:03:57 +0000 (08:03 -0800)

Merge branch 'mg/bisect-doc' into maint

* mg/bisect-doc:
git-bisect.txt: clarify that reset quits bisect

Merge branch 'sp/smart-http-content-type-check' into... Junio C Hamano Mon, 25 Feb 2013 16:03:54 +0000 (08:03 -0800)

Merge branch 'sp/smart-http-content-type-check' into maint

* sp/smart-http-content-type-check:
http_request: reset "type" strbuf before adding
t5551: fix expected error output
Verify Content-Type from smart HTTP servers

Merge branch 'jc/combine-diff-many-parents' into maintJunio C Hamano Mon, 25 Feb 2013 16:03:51 +0000 (08:03 -0800)

Merge branch 'jc/combine-diff-many-parents' into maint

* jc/combine-diff-many-parents:
t4038: add tests for "diff --cc --raw <trees>"
combine-diff: lift 32-way limit of combined diff

Merge branch 'jk/apply-similaritly-parsing' into maintJunio C Hamano Mon, 25 Feb 2013 16:03:44 +0000 (08:03 -0800)

Merge branch 'jk/apply-similaritly-parsing' into maint

* jk/apply-similaritly-parsing:
builtin/apply: tighten (dis)similarity index parsing

Merge branch 'jk/remote-helpers-doc' into maintJunio C Hamano Mon, 25 Feb 2013 16:03:37 +0000 (08:03 -0800)

Merge branch 'jk/remote-helpers-doc' into maint

* jk/remote-helpers-doc:
Rename {git- => git}remote-helpers.txt

Merge branch 'ab/gitweb-use-same-scheme' into maintJunio C Hamano Mon, 25 Feb 2013 16:03:34 +0000 (08:03 -0800)

Merge branch 'ab/gitweb-use-same-scheme' into maint

* ab/gitweb-use-same-scheme:
gitweb: refer to picon/gravatar images over the same scheme

Merge branch 'zk/clean-report-failure' into maintJunio C Hamano Mon, 25 Feb 2013 16:03:32 +0000 (08:03 -0800)

Merge branch 'zk/clean-report-failure' into maint

* zk/clean-report-failure:
git-clean: Display more accurate delete messages

Merge branch 'nd/clone-no-separate-git-dir-with-bare... Junio C Hamano Mon, 25 Feb 2013 16:03:27 +0000 (08:03 -0800)

Merge branch 'nd/clone-no-separate-git-dir-with-bare' into maint

* nd/clone-no-separate-git-dir-with-bare:
clone: forbid --bare --separate-git-dir <dir>

Merge branch 'da/p4merge-mktemp' into maintJunio C Hamano Mon, 25 Feb 2013 16:03:20 +0000 (08:03 -0800)

Merge branch 'da/p4merge-mktemp' into maint

* da/p4merge-mktemp:
mergetools/p4merge: Honor $TMPDIR for the /dev/null placeholder

fix clang -Wtautological-compare with unsigned enumAntoine Pelisse Sun, 3 Feb 2013 14:37:09 +0000 (14:37 +0000)

fix clang -Wtautological-compare with unsigned enum

Create a GREP_HEADER_FIELD_MIN so we can check that the field value is
sane and silence the clang warning.

Clang warning happens because the enum is unsigned (this is
implementation-defined, and there is no negative fields) and the check
is then tautological.

Signed-off-by: Antoine Pelisse <apelisse@gmail.com>
Signed-off-by: John Keeping <john@keeping.me.uk>
Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Documentation: "advice" is uncountableGreg Price Mon, 25 Feb 2013 05:27:20 +0000 (00:27 -0500)

Documentation: "advice" is uncountable

"Advice" is a mass noun, not a count noun; it's not ordinarily
pluralized.

Signed-off-by: Greg Price <price@mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

describe: Document --match pattern formatGreg Price Mon, 25 Feb 2013 05:29:01 +0000 (00:29 -0500)

describe: Document --match pattern format

It's not clear in git-describe(1) what kind of "pattern" should be
passed to --match. Fix that.

Signed-off-by: Greg Price <price@mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Fix ".git/refs" stragglersGreg Price Mon, 25 Feb 2013 05:34:14 +0000 (00:34 -0500)

Fix ".git/refs" stragglers

A couple of references still survive to .git/refs as a tree
of all refs. Fix one in docs, one in a -h message, one in
a -h message quoted in docs.

Signed-off-by: Greg Price <price@mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

contrib/mw-to-git/t/install-wiki.sh: use a lowercase... David Aguilar Sun, 24 Feb 2013 22:48:41 +0000 (14:48 -0800)

contrib/mw-to-git/t/install-wiki.sh: use a lowercase "usage:" string

Make the usage string consistent with Git.

Signed-off-by: David Aguilar <davvid@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

contrib/examples/git-remote.perl: use a lowercase ... David Aguilar Sun, 24 Feb 2013 22:48:40 +0000 (14:48 -0800)

contrib/examples/git-remote.perl: use a lowercase "usage:" string

Make the usage string consistent with Git.

Signed-off-by: David Aguilar <davvid@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

tests: use a lowercase "usage:" stringDavid Aguilar Sun, 24 Feb 2013 22:48:39 +0000 (14:48 -0800)

tests: use a lowercase "usage:" string

Adjust test commands and test suites so that their
usage strings are consistent with Git.

Signed-off-by: David Aguilar <davvid@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-svn: use a lowercase "usage:" stringDavid Aguilar Sun, 24 Feb 2013 22:48:38 +0000 (14:48 -0800)

git-svn: use a lowercase "usage:" string

Make the usage string consistent with Git.

Signed-off-by: David Aguilar <davvid@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Documentation/user-manual.txt: use a lowercase "usage... David Aguilar Sun, 24 Feb 2013 00:50:24 +0000 (16:50 -0800)

Documentation/user-manual.txt: use a lowercase "usage:" string

Make the usage string in the example script consistent with Git.

Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: David Aguilar <davvid@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

templates/hooks--update.sample: use a lowercase "usage... David Aguilar Sun, 24 Feb 2013 00:50:23 +0000 (16:50 -0800)

templates/hooks--update.sample: use a lowercase "usage:" string

Make the usage string consistent with Git.

Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: David Aguilar <davvid@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

contrib/hooks/setgitperms.perl: use a lowercase "usage... David Aguilar Sun, 24 Feb 2013 00:50:22 +0000 (16:50 -0800)

contrib/hooks/setgitperms.perl: use a lowercase "usage:" string

Make the usage string consistent with Git.

Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: David Aguilar <davvid@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

contrib/examples: use a lowercase "usage:" stringDavid Aguilar Sun, 24 Feb 2013 00:50:21 +0000 (16:50 -0800)

contrib/examples: use a lowercase "usage:" string

Make the usage string consistent with Git.

Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: David Aguilar <davvid@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

contrib/fast-import/import-zips.py: use spaces instead... David Aguilar Sun, 24 Feb 2013 00:50:20 +0000 (16:50 -0800)

contrib/fast-import/import-zips.py: use spaces instead of tabs

Follow the conventional Python style by using 4-space indents
instead of hard tabs.

Signed-off-by: David Aguilar <davvid@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

contrib/fast-import/import-zips.py: fix broken error... David Aguilar Sun, 24 Feb 2013 00:50:19 +0000 (16:50 -0800)

contrib/fast-import/import-zips.py: fix broken error message

The 'sys' module is not imported but all of the bits
we want from it are. Adjust the script to not fail
when run on old Python versions and fix the inconsistent
use of tabs.

Signed-off-by: David Aguilar <davvid@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

contrib/fast-import: use a lowercase "usage:" stringDavid Aguilar Sun, 24 Feb 2013 00:50:18 +0000 (16:50 -0800)

contrib/fast-import: use a lowercase "usage:" string

Make the usage string consistent with Git.

Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: David Aguilar <davvid@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

contrib/credential: use a lowercase "usage:" stringDavid Aguilar Sun, 24 Feb 2013 00:50:17 +0000 (16:50 -0800)

contrib/credential: use a lowercase "usage:" string

Make the usage string consistent with Git.

Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: David Aguilar <davvid@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-cvsimport: use a lowercase "usage:" stringDavid Aguilar Sun, 24 Feb 2013 00:50:16 +0000 (16:50 -0800)

git-cvsimport: use a lowercase "usage:" string

Make the usage string consistent with Git.

Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: David Aguilar <davvid@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-cvsimport: use a lowercase "usage:" stringDavid Aguilar Sun, 24 Feb 2013 00:50:15 +0000 (16:50 -0800)

git-cvsimport: use a lowercase "usage:" string

Make the usage string consistent with Git.

Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: David Aguilar <davvid@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-cvsexportcommit: use a lowercase "usage:" stringDavid Aguilar Sun, 24 Feb 2013 00:50:14 +0000 (16:50 -0800)

git-cvsexportcommit: use a lowercase "usage:" string

Make the usage string consistent with Git.

Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: David Aguilar <davvid@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-archimport: use a lowercase "usage:" stringDavid Aguilar Sun, 24 Feb 2013 00:50:13 +0000 (16:50 -0800)

git-archimport: use a lowercase "usage:" string

Make the usage string consistent with Git.

Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: David Aguilar <davvid@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-merge-one-file: use a lowercase "usage:" stringDavid Aguilar Sun, 24 Feb 2013 00:50:12 +0000 (16:50 -0800)

git-merge-one-file: use a lowercase "usage:" string

Make the usage string consistent with Git.

Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: David Aguilar <davvid@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-relink: use a lowercase "usage:" stringDavid Aguilar Sun, 24 Feb 2013 00:50:11 +0000 (16:50 -0800)

git-relink: use a lowercase "usage:" string

Make the usage string consistent with Git.

Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: David Aguilar <davvid@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-svn: use a lowercase "usage:" stringDavid Aguilar Sun, 24 Feb 2013 00:50:10 +0000 (16:50 -0800)

git-svn: use a lowercase "usage:" string

Make the usage string consistent with Git.

Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: David Aguilar <davvid@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-sh-setup: use a lowercase "usage:" stringDavid Aguilar Sun, 24 Feb 2013 00:50:09 +0000 (16:50 -0800)

git-sh-setup: use a lowercase "usage:" string

mergetool, bisect, and other commands that use
git-sh-setup print a usage string that is inconsistent
with the rest of Git when they are invoked as "git $cmd -h".

The compiled builtins use the lowercase "usage:" string
but these commands say "Usage:". Adjust the shell library
to make these consistent.

Signed-off-by: David Aguilar <davvid@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Documentation/githooks: Explain pre-rebase parametersW. Trevor King Sat, 23 Feb 2013 15:27:39 +0000 (10:27 -0500)

Documentation/githooks: Explain pre-rebase parameters

Descriptions borrowed from templates/hooks--pre-rebase.sample.

Signed-off-by: W. Trevor King <wking@tremily.us>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

diff: Fix rename pretty-print when suffix and prefix... Antoine Pelisse Sat, 23 Feb 2013 16:48:45 +0000 (17:48 +0100)

diff: Fix rename pretty-print when suffix and prefix overlap

When considering a rename for two files that have a suffix and a prefix
that can overlap, a confusing line is shown. As an example, renaming
"a/b/b/c" to "a/b/c" shows "a/b/{ => }/b/c".

Currently, what we do is calculate the common prefix ("a/b/"), and the
common suffix ("/b/c"), but the same "/b/" is actually counted both in
prefix and suffix. Then when calculating the size of the non-common part,
we end-up with a negative value which is reset to 0, thus the "{ => }".

Do not allow the common suffix to overlap the common prefix and stop
when reaching a "/" that would be in both.

Signed-off-by: Antoine Pelisse <apelisse@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

update-index: allow "-h" to also display optionsAntoine Pelisse Sat, 23 Feb 2013 18:10:41 +0000 (19:10 +0100)

update-index: allow "-h" to also display options

Even though "git update-index" was updated to use parse-options
infrastracture some time ago to make it possible to show list of
options with usage_with_options(), "git update-index -h" only shows
the usage. Detect this case and call usage_with_options() to show
the list of options as well.

Signed-off-by: Antoine Pelisse <apelisse@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

update-index: list supported idx versions and their... Nguyễn Thái Ngọc Duy Sat, 23 Feb 2013 02:29:31 +0000 (09:29 +0700)

update-index: list supported idx versions and their features

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

branch: segfault fixes and validationNguyễn Thái Ngọc Duy Sat, 23 Feb 2013 12:22:27 +0000 (19:22 +0700)

branch: segfault fixes and validation

branch_get() can return NULL (so far on detached HEAD only) but some
code paths in builtin/branch.c cannot deal with that and cause
segfaults.

While at there, make sure to bail out when the user gives 2 or more
branches with --set-upstream-to or --unset-upstream, where only the
first branch is processed and the rest silently dropped.

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

diff-options: unconfuse description of --colorJunio C Hamano Sat, 23 Feb 2013 06:24:10 +0000 (22:24 -0800)

diff-options: unconfuse description of --color

It said "by default it is off" while it also said "the default is
always", which confused everybody who read it only once. It wanted
to say (1) if you do not say --color, it is not enabled, and (2) if
you say --color but do not say when to enable it, it will always be
enabled".

Rephrase to clarify by using "default" only once.

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