gitweb.git
fetch-pack: sort incoming headsJeff King Mon, 21 May 2012 22:17:02 +0000 (18:17 -0400)

fetch-pack: sort incoming heads

There's no reason to preserve the incoming order of the
heads we're requested to fetch. By having them sorted, we
can replace some of the quadratic algorithms with linear
ones.

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

cmd_fetch_pack(): respect constness of argv parameterMichael Haggerty Mon, 21 May 2012 07:59:59 +0000 (09:59 +0200)

cmd_fetch_pack(): respect constness of argv parameter

The old code cast away the constness of the strings passed to the
function in argument argv[], which could result in their being
modified by filter_refs(). Fix by copying reference names from argv
and putting them into our own array (similarly to how refnames passed
to stdin were already handled).

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

cmd_fetch_pack(): combine the loop termination conditionsMichael Haggerty Mon, 21 May 2012 07:59:58 +0000 (09:59 +0200)

cmd_fetch_pack(): combine the loop termination conditions

If an argument that does not start with '-' is found, the loop is
terminated. So move that check into the for-loop condition.

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

cmd_fetch_pack(): handle non-option arguments outside... Michael Haggerty Mon, 21 May 2012 07:59:57 +0000 (09:59 +0200)

cmd_fetch_pack(): handle non-option arguments outside of the loop

This makes it more obvious that the code is always executed unless
there is an error, and that the first initialization of nr_heads is
unnecessary.

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

cmd_fetch_pack(): declare dest to be constMichael Haggerty Mon, 21 May 2012 07:59:56 +0000 (09:59 +0200)

cmd_fetch_pack(): declare dest to be const

There is no need for it to be non-const, and this avoids the need
for casting away the constness of an argv element.

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

avoid segfault when reading header of malformed commitsJeff King Tue, 22 May 2012 04:52:17 +0000 (00:52 -0400)

avoid segfault when reading header of malformed commits

If a commit object has a header line at the end of the
buffer that is missing its newline (or if it appears so
because the content on the header line contains a stray
NUL), then git will segfault.

Interestingly, this case is explicitly handled and we do
correctly scan the final line for the header we are looking
for. But if we don't find it, we will dereference NULL while
trying to look at the next line.

Git will never generate such a commit, but it's good to be
defensive. We could die() in such a case, but since it's
easy enough to handle it gracefully, let's just issue a
warning and continue (so you could still view such a commit
with "git show", though you might be missing headers after
the NUL).

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

pretty: avoid buffer overflow in format_person_partJeff King Tue, 22 May 2012 05:45:08 +0000 (01:45 -0400)

pretty: avoid buffer overflow in format_person_part

When we parse the name and email from a commit to
pretty-print them, we usually can just put the result
directly into our strbuf result. However, if we are going to
use the mailmap, then we must first copy them into a
NUL-terminated buffer to feed to the mailmap machinery.

We did so by using strlcpy into a static buffer, but we used
it wrong. We fed it the length of the substring we wanted to
copy, but never checked that that length was less than the
size of the destination buffer.

The simplest fix is to just use snprintf to copy the
substring properly while still respecting the destination
buffer's size. It might seem like replacing the static
buffer with a strbuf would help, but we need to feed a
static buffer to the mailmap machinery anyway, so there's
not much benefit to handling arbitrary sizes.

A more ideal solution would be for mailmap to grow an
interface that:

1. Takes a pointer and length combination, instead of
assuming a NUL-terminated string.

2. Returns a pointer to the mailmap's allocated string,
rather than copying it into the buffer.

Then we could avoid the need for an extra buffer entirely.
However, doing this would involve a lot of refactoring of
mailmap and of string_list (which mailmap uses to store the
map itself). For now, let's do the simplest thing to fix the
bug.

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

fix off-by-one error in split_ident_lineJeff King Tue, 22 May 2012 06:12:20 +0000 (02:12 -0400)

fix off-by-one error in split_ident_line

Commit 4b340cf split the logic to parse an ident line out of
pretty.c's format_person_part. But in doing so, it
accidentally introduced an off-by-one error that caused it
to think that single-character names were invalid.

This manifested itself as the "%an" format failing to show
anything at all for a single-character name.

Reported-by: Brian Turner <bturner@atlassian.com>
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

format-patch: refactor get_patch_filenameJeff King Mon, 21 May 2012 23:10:32 +0000 (19:10 -0400)

format-patch: refactor get_patch_filename

The get_patch_filename function expects a commit argument
and uses it to get the sanitized subject line when making a
patch filename. However, we also want to use this same
function for the cover letter, which does not have a commit
object. The current solution is to create a fake commit with
the subject "cover letter". Instead, let's make the
get_patch_filename interface more flexibile, and allow
passing a direct subject.

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

ident: trim whitespace from default name/emailJeff King Mon, 21 May 2012 23:10:29 +0000 (19:10 -0400)

ident: trim whitespace from default name/email

Usually these values get fed to fmt_ident, which will trim
any cruft anyway, but there are a few code paths which use
them directly. Let's clean them up for the benefit of those
callers. Furthermore, fmt_ident will look at the pre-trimmed
value and decide whether to invoke ERROR_ON_NO_NAME; this
check can be fooled by a name consisting only of spaces.

Note that we only bother to clean up when we are pulling the
information from gecos or from system files. Any other value
comes from a config file, where we will have cleaned up
accidental whitespace already.

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

ident: use a dynamic strbuf in fmt_identJeff King Mon, 21 May 2012 23:10:26 +0000 (19:10 -0400)

ident: use a dynamic strbuf in fmt_ident

Now that we accept arbitrary-sized names and email
addresses, the only remaining limit is in the actual
formatting of the names into a buffer. The current limit is
1000 characters, which is not likely to be reached, but
using a strbuf is one less error condition we have to worry
about.

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

ident: use full dns names to generate email addressesJeff King Mon, 21 May 2012 23:10:23 +0000 (19:10 -0400)

ident: use full dns names to generate email addresses

When we construct an email address from the username and
hostname, we generate the host part of the email with this
procedure:

1. add the result of gethostname

2. if it has a dot, ok, it's fully qualified

3. if not, then look up the unqualified hostname via
gethostbyname; take the domain name of the result and
append it to the hostname

Step 3 can actually produce a bogus result, as the name
returned by gethostbyname may not be related to the hostname
we fed it (e.g., consider a machine "foo" with names
"foo.one.example.com" and "bar.two.example.com"; we may have
the latter returned and generate the bogus name
"foo.two.example.com").

This patch simply uses the full hostname returned by
gethostbyname. In the common case that the first part is the
same as the unqualified hostname, the behavior is identical.
And in the case that it is not the same, we are much more
likely to be generating a valid name.

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

ident: report passwd errors with a more friendly messageJeff King Mon, 21 May 2012 23:10:20 +0000 (19:10 -0400)

ident: report passwd errors with a more friendly message

When getpwuid fails, we give a cute but cryptic message.
While it makes sense if you know that getpwuid or identity
functions are being called, this code is triggered behind
the scenes by quite a few git commands these days (e.g.,
receive-pack on a remote server might use it for a reflog;
the current message is hard to distinguish from an
authentication error). Let's switch to something that gives
a little more context.

While we're at it, we can factor out all of the
cut-and-pastes of the "you don't exist" message into a
wrapper function. Rather than provide xgetpwuid, let's make
it even more specific to just getting the passwd entry for
the current uid. That's the only way we use getpwuid anyway,
and it lets us make an even more specific error message.

The current message also fails to mention errno. While the
usual cause for getpwuid failing is that the user does not
exist, mentioning errno makes it easier to diagnose these
problems. Note that POSIX specifies that errno remain
untouched if the passwd entry does not exist (but will be
set on actual errors), whereas some systems will return
ENOENT or similar for a missing entry. We handle both cases
in our wrapper.

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

drop length limitations on gecos-derived names and... Jeff King Mon, 21 May 2012 23:10:17 +0000 (19:10 -0400)

drop length limitations on gecos-derived names and emails

When we pull the user's name from the GECOS field of the
passwd file (or generate an email address based on their
username and hostname), we put the result into a
static buffer. While it's extremely unlikely that anybody
ever hit these limits (after all, in such a case their
parents must have hated them), we still had to deal with the
error cases in our code.

Converting these static buffers to strbufs lets us simplify
the code and drop some error messages from the documentation
that have confused some users.

The conversion is mostly mechanical: replace string copies
with strbuf equivalents, and access the strbuf.buf directly.
There are a few exceptions:

- copy_gecos and copy_email are the big winners in code
reduction (since they no longer have to manage the
string length manually)

- git_ident_config wants to replace old versions of
the default name (e.g., if we read the config multiple
times), so it must reset+add to the strbuf instead of
just adding

Note that there is still one length limitation: the
gethostname interface requires us to provide a static
buffer, so we arbitrarily choose 1024 bytes for the
hostname.

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

ident: don't write fallback username into git_default_nameJeff King Mon, 21 May 2012 23:10:14 +0000 (19:10 -0400)

ident: don't write fallback username into git_default_name

The fmt_ident function gets a flag that tells us whether to
die if the name field is blank. If it is blank and we don't
die, then we fall back to the username from the passwd file.

The current code writes the value into git_default_name.
However, that's not necessarily correct, as the empty value
might have come from git_default_name, or it might have been
passed in. This leads to two potential problems:

1. If we are overriding an empty name in the passed-in
value, then we may be overwriting a perfectly good name
(from gitconfig or gecos) in the git_default_name
buffer. Later calls to fmt_ident will end up using the
fallback name, even though a better name was available.

2. If we override an empty gecos name, we end up with the
fallback name in git_default_name. A later call that
uses IDENT_ERROR_ON_NO_NAME will see the fallback name
and think that it is a good name, instead of producing
an error. In other words, a blank gecos name would
cause an error with this code:

git_committer_info(IDENT_ERROR_ON_NO_NAME);

but not this:

git_committer_info(0);
git_committer_info(IDENT_ERROR_ON_NO_NAME);

because in the latter case, the first call has polluted
the name buffer.

Instead, let's make the fallback a per-invocation variable.
We can just use the pw->pw_name string directly, since it
only needs to persist through the rest of the function (and
we don't do any other getpwent calls).

Note that while this solves (1) for future invocations of
fmt_indent, the current invocation might use the fallback
when it could in theory load a better value from
git_default_name. However, by not passing
IDENT_ERROR_ON_NO_NAME, the caller is indicating that it
does not care too much about the name, anyway, so we don't
bother; this is primarily about protecting future callers
who do care.

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

fmt_ident: drop IDENT_WARN_ON_NO_NAME codeJeff King Mon, 21 May 2012 23:10:11 +0000 (19:10 -0400)

fmt_ident: drop IDENT_WARN_ON_NO_NAME code

There are no more callers who want this, so we can drop it.

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

format-patch: use default email for generating message idsJeff King Mon, 21 May 2012 23:10:08 +0000 (19:10 -0400)

format-patch: use default email for generating message ids

We try to generate a sane message id for cover letters and
threading by appending some changing bits to the front of
the user's email address. The current code parses the email
out of the results of git_committer_info, but we can do this
much more easily by just calling ident_default_email
ourselves.

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

ident: trim trailing newline from /etc/mailnameJeff King Mon, 21 May 2012 23:10:02 +0000 (19:10 -0400)

ident: trim trailing newline from /etc/mailname

We use fgets to read the /etc/mailname file, which means we
will typically end up with an extra newline in our
git_default_email. Most of the time this doesn't matter, as
fmt_ident will skip it as cruft, but there is one code path
that accesses it directly (in http-push.c:lock_remote).

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

move git_default_* variables to ident.cJeff King Mon, 21 May 2012 23:09:57 +0000 (19:09 -0400)

move git_default_* variables to ident.c

There's no reason anybody outside of ident.c should access
these directly (they should use the new accessors which make
sure the variables are initialized), so we can make them
file-scope statics.

While we're at it, move user_ident_explicitly_given into
ident.c; while still globally visible, it makes more sense
to reside with the ident code.

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

move identity config parsing to ident.cJeff King Mon, 21 May 2012 23:09:54 +0000 (19:09 -0400)

move identity config parsing to ident.c

There's no reason for this to be in config, except that once
upon a time all of the config parsing was there. It makes
more sense to keep the ident code together.

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

fmt-merge-msg: don't use static buffer in record_personJeff King Mon, 21 May 2012 23:09:51 +0000 (19:09 -0400)

fmt-merge-msg: don't use static buffer in record_person

The record_person function just parses out the "name" field
of the person line in a commit and adds it to a string_list.
The only reason we need an extra buffer is that the
string_list functions require a NUL-terminated string.

Instead of the static buffer, we can just allocate a
temporary NUL-terminated copy. In addition to removing a
useless limit, this removes the only user of MAX_GITNAME
outside of ident.c.

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

http-push: do not access git_default_email directlyJeff King Mon, 21 May 2012 23:09:47 +0000 (19:09 -0400)

http-push: do not access git_default_email directly

By calling the ident_default_email accessor, we can be sure
that the default value is actually filled-in.

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

ident: split setup_ident into separate functionsJeff King Mon, 21 May 2012 23:09:43 +0000 (19:09 -0400)

ident: split setup_ident into separate functions

This function sets up the default name, email, and date, and
is not publicly available. Let's split it into three public
functions so that callers can get just the parts they need.

While we're at it, let's change the interface to simple
accessors. The original function was called only by fmt_ident,
and contained logic for "if we already have some other
value, don't load the default" which properly belongs in
fmt_ident.

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

grep: stop leaking line strings with -fRené Scharfe Mon, 21 May 2012 16:10:09 +0000 (18:10 +0200)

grep: stop leaking line strings with -f

When reading patterns from a file, we pass the lines as allocated string
buffers to append_grep_pat() and never free them. That's not a problem
because they are needed until the program ends anyway.

However, now that the function duplicates the pattern string, we can
reuse the strbuf after calling that function. This simplifies the code
a bit and plugs a minor memory leak.

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

remote: fix typoRalf Thielow Fri, 18 May 2012 16:46:01 +0000 (18:46 +0200)

remote: fix typo

The mapping that describe what ref fetched from the remote is used to
update what ref locally is called "refspec", not "respec".

Signed-off-by: Ralf Thielow <ralf.thielow@googlemail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

l10n: Update git.pot (41 new messages)Jiang Xin Mon, 21 May 2012 01:00:39 +0000 (09:00 +0800)

l10n: Update git.pot (41 new messages)

Generate po/git.pot from v1.7.10.2-548-g9de96:

* 41 new l10n messages at lines:

332, 337, 344, 349, 967, 1288, 1292, 1296, 1300, 1304, 1308, 1312,
1316, 1320, 1324, 1328, 1332, 1336, 1340, 1344, 1348, 1352, 1356,
1360, 1364, 1368, 1372, 1376, 1380, 1384, 1388, 1392, 1396, 4465,
4469, 4473, 4477, 4481, 4485, 4489, 4493.

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

Merge branch 'maint'Junio C Hamano Sun, 20 May 2012 22:45:35 +0000 (15:45 -0700)

Merge branch 'maint'

By Jens Lehmann (1) and Johannes Sixt (1)
* maint:
Consistently use "superproject" instead of "supermodule"
t3404: begin "exchange commits with -p" test with correct preconditions

grep: support newline separated pattern listRené Scharfe Sun, 20 May 2012 14:33:07 +0000 (16:33 +0200)

grep: support newline separated pattern list

Currently, patterns that contain newline characters don't match anything
when given to git grep. Regular grep(1) interprets patterns as lists of
newline separated search strings instead.

Implement this functionality by creating and inserting extra grep_pat
structures for patterns consisting of multiple lines when appending to
the pattern lists. For simplicity, all pattern strings are duplicated.
The original pattern is truncated in place to make it contain only the
first line.

Requested-by: Torne (Richard Coles) <torne@google.com>
Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

grep: factor out do_append_grep_pat()René Scharfe Sun, 20 May 2012 14:32:54 +0000 (16:32 +0200)

grep: factor out do_append_grep_pat()

Add do_append_grep_pat() as a shared function for adding patterns to
the header pattern list and the general pattern list.

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

grep: factor out create_grep_pat()René Scharfe Sun, 20 May 2012 14:32:39 +0000 (16:32 +0200)

grep: factor out create_grep_pat()

Add create_grep_pat(), a shared helper for all grep pattern allocation
and initialization needs.

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

free_ref_entry(): do not trigger reading of loose refsMichael Haggerty Sun, 20 May 2012 06:49:32 +0000 (08:49 +0200)

free_ref_entry(): do not trigger reading of loose refs

Do not call get_ref_dir() from within free_ref_entry(), because that
triggers the reading of loose refs, only for them to be freed
immediately.

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

Consistently use "superproject" instead of "supermodule"Jens Lehmann Sun, 20 May 2012 13:28:26 +0000 (15:28 +0200)

Consistently use "superproject" instead of "supermodule"

We fairly consistently say "superproject" and never "supermodule" these
days. But there are seven occurrences of "supermodule" left in the current
work tree. Three appear in Release Notes for 1.5.3 and 1.7.7, three in
test names and one in a C-code comment.

Replace all occurrences of "supermodule" outside of the Release Notes
(which shouldn't be changed after the fact) with "superproject" for
consistency.

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

t3404: begin "exchange commits with -p" test with corre... Johannes Sixt Sat, 19 May 2012 13:14:16 +0000 (15:14 +0200)

t3404: begin "exchange commits with -p" test with correct preconditions

The test case shows a bug in 'rebase -p', but even if the bug were fixed
the test would fail because it did not ensure that the preconditions match
the postconditions that were checked. Insert the suitable 'git checkout'.

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

completion: add support for backwards compatibilityFelipe Contreras Sat, 19 May 2012 02:41:35 +0000 (04:41 +0200)

completion: add support for backwards compatibility

Some people might be relying on _git and _gitk to define custom aliases,
unfortunately, commit 6b179ad (completion: add new __git_complete
helper) broke that support.

"bash: [: 1: unary operator expected"

This can be easily fixed by using __git_complete, but it's not meant to
be public.

Although _git and _gitk are probably not meant to be public, it's easy
to keep having support for them by having a wrapper to the proper
new function that is fully functional.

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

completion: rename internal helpers _git and _gitkFelipe Contreras Sat, 19 May 2012 02:41:34 +0000 (04:41 +0200)

completion: rename internal helpers _git and _gitk

Would be useful to provide backwards compatibility for _git. Also, zsh
completion uses _git, and it cannot be changed.

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

t/Makefile: retain cache t/.prove across prove runsMichael Haggerty Wed, 2 May 2012 15:31:52 +0000 (17:31 +0200)

t/Makefile: retain cache t/.prove across prove runs

prove(1) can write a summary of its test results and timings into a
cache file, t/.prove, then use this information during later runs for
various purposes. But deleting t/.prove after every test run defeats
this purpose. So do not delete t/.prove as part of "make
DEFAILT_TEST_TARGET=prove test". (Continue to delete the file on
"make clean".)

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

pack-objects: refactor write_object() into helper functionsNguyễn Thái Ngọc Duy Wed, 16 May 2012 12:02:10 +0000 (19:02 +0700)

pack-objects: refactor write_object() into helper functions

The function first decides if we want to copy data taken from existing
pack verbatim or we want to encode the data ourselves for the packfile
we are creating and then carries out the decision. Separate the latter
phase into two helper functions, one for the case the data is reused,
the other for the case the data is produced anew.

A little twist is that it can later turn out that we cannot reuse the
data after we initially decide to do so; in such a case, the "reuse"
helper makes a call to "generate" helper. It is easier to follow than
the current fallback code that uses "goto" inside a single large
function.

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

pack-objects, streaming: turn "xx >= big_file_threshold... Nguyễn Thái Ngọc Duy Wed, 16 May 2012 12:02:09 +0000 (19:02 +0700)

pack-objects, streaming: turn "xx >= big_file_threshold" to ".. > .."

This is because all other places do "xx > big_file_threshold"

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

Fix t3411.3 to actually rebase somethingJohannes Sixt Fri, 18 May 2012 13:48:53 +0000 (15:48 +0200)

Fix t3411.3 to actually rebase something

The test intends to rebase a branchy history onto a later commit, but it
forgot to reset HEAD back to an earlier commit before it set up the side
branches. In the end, every "rebased" commit was only a fast-forward and
the 'rebase -p' did not change the commit graph at all. Insert the missing
checkout that moves to an earlier commit.

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

rev-parse doc: --git-dir does not always show a relativ... Jon Seymour Fri, 18 May 2012 09:23:24 +0000 (19:23 +1000)

rev-parse doc: --git-dir does not always show a relative path

The description was misleading because it lead the reader to believe
that --git-dir would always show a relative path when, in fact, the
actual behaviour does not guarantee this.

Rather, it was intended that the advice be given that if a relative
path is shown, then the path is relative to the current working
directory and not some other directory (for example, the root of the
working tree).

Signed-off-by: Jon Seymour <jon.seymour@gmail.com>
Acked-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

archive-tar: keep const in checksum calculationRené Scharfe Fri, 18 May 2012 05:18:11 +0000 (07:18 +0200)

archive-tar: keep const in checksum calculation

For correctness, don't needlessly drop the const qualifier when casting.

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

archive: simplify refname handlingRené Scharfe Fri, 18 May 2012 05:15:17 +0000 (07:15 +0200)

archive: simplify refname handling

There is no need to build a copy of the relevant part of the string just
to make sure we have a NUL-terminated string. We can simply pass the
length of the interesting part to dwim_ref() instead.

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

Merge git://github.com/git-l10n/git-poJunio C Hamano Thu, 17 May 2012 22:35:35 +0000 (15:35 -0700)

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

By Jiang Xin (3) and others
via Jiang Xin (3) and Ralf Thielow (1)
* git://github.com/git-l10n/git-po:
l10n: de.po: translate 3 new messages
l10n: zh_CN.po: translate 3 new messages
l10n: pt_PT.po translate new messages
l10n: Update git.pot (8 new, 4 removed messages)
l10n: Update git.pot (3 new, 2 removed messages)

Merge branch 'nd/i18n-parseopt'Junio C Hamano Thu, 17 May 2012 22:22:29 +0000 (15:22 -0700)

Merge branch 'nd/i18n-parseopt'

Text from "git cmd --help" are getting prepared for i18n.

By Nguyễn Thái Ngọc Duy
* nd/i18n-parseopt:
i18n: apply: mark parseopt strings for translation
i18n: parseopt: lookup help and argument translations when showing usage

Merge branch 'rs/xdiff-lose-emit-func'Junio C Hamano Thu, 17 May 2012 22:22:13 +0000 (15:22 -0700)

Merge branch 'rs/xdiff-lose-emit-func'

Simplifies the interface between the implementation of "blame" and
underlying xdiff engine, and removes a lot of unused or unnecessary code
from the latter.

By René Scharfe (6) and Ramsay Jones (1)
* rs/xdiff-lose-emit-func:
builtin/blame.c: Fix a "Using plain integer as NULL pointer" warning
xdiff: remove unused functions
xdiff: remove emit_func() and xdi_diff_hunks()
blame: factor out helper for calling xdi_diff()
blame: use hunk_func(), part 2
blame: use hunk_func(), part 1
xdiff: add hunk_func()

Merge branch 'fc/git-complete-helper'Junio C Hamano Thu, 17 May 2012 22:21:55 +0000 (15:21 -0700)

Merge branch 'fc/git-complete-helper'

By Felipe Contreras
* fc/git-complete-helper:
completion: add new __git_complete helper

Merge branch 'ld/git-p4-tags-and-labels'Junio C Hamano Thu, 17 May 2012 22:21:46 +0000 (15:21 -0700)

Merge branch 'ld/git-p4-tags-and-labels'

By Luke Diamand
* ld/git-p4-tags-and-labels:
git p4: fix bug when enabling tag import/export via config variables
git p4: fix bug when verbose enabled with tag export
git p4: add test for tag import/export enabled via config

git-svn: clarify the referent of dcommit's optional... Jon Seymour Thu, 17 May 2012 03:20:43 +0000 (13:20 +1000)

git-svn: clarify the referent of dcommit's optional argument

The documentation of the dcommit subcommand is reworded to clarify that
the optional argument refers to a git branch, not an SVN branch.

The discussion of the optional argument is put into its own paragraph
as is the guidance about using 'dcommit' in preference to 'set-tree'.

The section on REBASE vs. PULL/MERGE is reworded to incorporate the
advice to prefer 'git rebase' previously in the description of 'dcommit'.

Signed-off-by: Jon Seymour <jon.seymour@gmail.com>
Acked-by: Eric Wong <normalperson@yhbt.net>

git-svn: support rebase --preserve-mergesAvishay Lavie Tue, 15 May 2012 08:45:50 +0000 (11:45 +0300)

git-svn: support rebase --preserve-merges

When git svn rebase is performed after an unpushed merge, the
rebase operation follows both parents and replays both the user's
local commits and those from the merged branch. This is usually
not the intended behavior.
This patch adds support for the --preserve-merges/-p flag which
allows for a better workflow by re-applying merge commits as merges.

[ew: fixed a minor syntax error]

Signed-off-by: Avishay Lavie <avishay.lavie@gmail.com>
Signed-off-by: Eric Wong <normalperson@yhbt.net>

diff --no-index: don't leak buffers in queue_diffBobby Powers Wed, 16 May 2012 14:50:31 +0000 (10:50 -0400)

diff --no-index: don't leak buffers in queue_diff

queue_diff uses two strbufs, and at the end of the function
strbuf_reset was called. This only reset the length of the buffer -
any allocated memory was leaked. Using strbuf_release fixes this.

Signed-off-by: Bobby Powers <bobbypowers@gmail.com>
Reviewed-by: René Scharfe <rene.scharfe@lsrfire.ath.cx>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

diff --no-index: reset temporary buffer lengths on... Bobby Powers Wed, 16 May 2012 14:28:31 +0000 (10:28 -0400)

diff --no-index: reset temporary buffer lengths on directory iteration

Commit 875b91b (diff --no-index: use strbuf for temporary pathnames,
2012-04-25) introduced a regression when using diff --no-index with
directories. When iterating through a directory, the switch to strbuf
from heap-allocated char arrays caused paths to form like 'dir/file1',
'dir/file1file2', rather than 'dir/file1', 'dir/file2' as expected.

Avoid this by resetting the paths variables to their original length
before each iteration.

Signed-off-by: Bobby Powers <bobbypowers@gmail.com>
Reviewed-by: René Scharfe <rene.scharfe@lsrfire.ath.cx>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-sh-setup: define workaround wrappers before they... Junio C Hamano Wed, 16 May 2012 17:36:01 +0000 (10:36 -0700)

git-sh-setup: define workaround wrappers before they are used

Recently we tweaked this scriptlet to let mingw port redefine "pwd" to
always return Windows-style path, but the code to do so came after the
first use of "pwd" to set up $GIT_DIR shell variable.

Move the block to define these workaround wrappers, so that everything
everything that executes when the scriptlet is dot-sourced uses the
replacements.

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

Merge branch 'maint' into masterJiang Xin Tue, 15 May 2012 23:32:20 +0000 (07:32 +0800)

Merge branch 'maint' into master

By Ralf Thielow(1) and Jiang Xin(1)
* maint:
l10n: de.po: translate 3 new messages
l10n: zh_CN.po: translate 3 new messages

l10n: de.po: translate 3 new messagesRalf Thielow Tue, 15 May 2012 17:00:40 +0000 (19:00 +0200)

l10n: de.po: translate 3 new messages

Translate 3 new messages for upcoming git 1.7.10.3.

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

l10n: zh_CN.po: translate 3 new messagesJiang Xin Tue, 15 May 2012 03:53:26 +0000 (11:53 +0800)

l10n: zh_CN.po: translate 3 new messages

Translate 3 new messages for upcoming git 1.7.10.3.

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

Merge branch 'master' of git://github.com/marcomsousa... Jiang Xin Mon, 14 May 2012 23:11:58 +0000 (07:11 +0800)

Merge branch 'master' of git://github.com/marcomsousa/git-l10n-pt_PT

By Marco Sousa
* marcomsousa/git-l10n-pt_PT/master:
l10n: pt_PT.po translate new messages

l10n: pt_PT.po translate new messagesMarco Sousa Mon, 14 May 2012 19:18:32 +0000 (21:18 +0200)

l10n: pt_PT.po translate new messages

Translate new and old messages came from git.pot.

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

l10n: Update git.pot (8 new, 4 removed messages)Jiang Xin Mon, 14 May 2012 22:43:03 +0000 (06:43 +0800)

l10n: Update git.pot (8 new, 4 removed messages)

Generate po/git.pot from v1.7.10.2-520-g6a4a48:

* 8 new l10n messages at lines:

977, 982, 1404, 1409, 1414, 1419, 1424, 1429.

* 4 removed l10n messages from lines:

977, 1399, 1404, 1409.

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

Merge branch 'maint'Jiang Xin Mon, 14 May 2012 22:40:08 +0000 (06:40 +0800)

Merge branch 'maint'

* maint:
l10n: Update git.pot (3 new, 2 removed messages)

l10n: Update git.pot (3 new, 2 removed messages)Jiang Xin Mon, 14 May 2012 22:36:36 +0000 (06:36 +0800)

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

Generate po/git.pot from v1.7.10.2-35-g0b9f4:

* 3 new l10n messages at lines: 2743, 2751, 2759.

* 2 removed l10n messages from lines: 1879, 2757.

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

Update draft release notes for 12th batchJunio C Hamano Mon, 14 May 2012 19:20:46 +0000 (12:20 -0700)

Update draft release notes for 12th batch

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

teach add_submodule_odb() to look for alternatesHeiko Voigt Mon, 14 May 2012 16:24:45 +0000 (18:24 +0200)

teach add_submodule_odb() to look for alternates

Since we allow to link other object databases when loading a submodules
database we should also load possible alternates.

Signed-off-by: Heiko Voigt <hvoigt@hvoigt.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'fc/simplify-complete-revlist-file'Junio C Hamano Mon, 14 May 2012 18:50:57 +0000 (11:50 -0700)

Merge branch 'fc/simplify-complete-revlist-file'

By Felipe Contreras
* fc/simplify-complete-revlist-file:
completion: simplify __git_complete_revlist_file

Merge branch 'nd/threaded-index-pack'Junio C Hamano Mon, 14 May 2012 18:50:40 +0000 (11:50 -0700)

Merge branch 'nd/threaded-index-pack'

Enables threading in index-pack to resolve base data in parallel.

By Nguyễn Thái Ngọc Duy (3) and Ramsay Jones (1)
* nd/threaded-index-pack:
index-pack: disable threading if NO_PREAD is defined
index-pack: support multithreaded delta resolving
index-pack: restructure pack processing into three main functions
compat/win32/pthread.h: Add an pthread_key_delete() implementation

Sync with maintJunio C Hamano Mon, 14 May 2012 18:50:20 +0000 (11:50 -0700)

Sync with maint

Merge branch 'master' of git://github.com/git-l10n... Junio C Hamano Mon, 14 May 2012 18:49:18 +0000 (11:49 -0700)

Merge branch 'master' of git://github.com/git-l10n/git-po

By Ralf Thielow (6) and others
via Jiang Xin (3) and Ralf Thielow (1)
* 'master' of git://github.com/git-l10n/git-po:
l10n: zh_CN.po: translate 1 new message
l10n: de.po: translate one new message
l10n: de.po: unify translation of "ahead" and "behind"
l10n: de.po: collection of improvements
l10n: de.po: translate "remote" as "extern"
l10n: de.po: translate "track" as "beobachten"
l10n: add new members to German translation team
l10n: de.po: collection of suggestions
l10n: de.po: translate "bad" as "ungültig" ("invalid")
l10n: de.po: hopefully uncontroversial fixes
l10n: de.po: translate "bare" as "bloß"
l10n: Update git.pot (275 new, 15 removed messages)
l10n: Update git.pot (1 new messages)

Merge branch 'maint' of git://github.com/git-l10n/git... Junio C Hamano Mon, 14 May 2012 18:47:49 +0000 (11:47 -0700)

Merge branch 'maint' of git://github.com/git-l10n/git-po into maint

By Ralf Thielow (6) and others
via Jiang Xin
* 'maint' of git://github.com/git-l10n/git-po:
l10n: zh_CN.po: translate 1 new message
l10n: de.po: translate one new message
l10n: de.po: unify translation of "ahead" and "behind"
l10n: de.po: collection of improvements
l10n: de.po: translate "remote" as "extern"
l10n: de.po: translate "track" as "beobachten"
l10n: add new members to German translation team
l10n: de.po: collection of suggestions
l10n: de.po: translate "bad" as "ungültig" ("invalid")
l10n: de.po: hopefully uncontroversial fixes
l10n: de.po: translate "bare" as "bloß"
l10n: Update git.pot (1 new messages)

Start preparing for 1.7.10.3Junio C Hamano Mon, 14 May 2012 18:47:20 +0000 (11:47 -0700)

Start preparing for 1.7.10.3

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

Merge branch 'jk/maint-reflog-walk-count-vs-time' into... Junio C Hamano Mon, 14 May 2012 18:46:16 +0000 (11:46 -0700)

Merge branch 'jk/maint-reflog-walk-count-vs-time' into maint

Gives a better DWIM behaviour for --pretty=format:%gd, "stash list", and
"log -g", depending on how the starting point ("master" vs "master@{0}" vs
"master@{now}") and date formatting options (e.g. "--date=iso") are given
on the command line.

By Jeff King (4) and Junio C Hamano (1)
* jk/maint-reflog-walk-count-vs-time:
reflog-walk: tell explicit --date=default from not having --date at all
reflog-walk: always make HEAD@{0} show indexed selectors
reflog-walk: clean up "flag" field of commit_reflog struct
log: respect date_mode_explicit with --format:%gd
t1411: add more selector index/date tests

Merge branch 'jk/doc-asciidoc-inline-literal' into... Junio C Hamano Mon, 14 May 2012 18:43:04 +0000 (11:43 -0700)

Merge branch 'jk/doc-asciidoc-inline-literal' into maint

By Jeff King
* jk/doc-asciidoc-inline-literal:
docs: stop using asciidoc no-inline-literal

Merge branch 'ef/checkout-empty' into maintJunio C Hamano Mon, 14 May 2012 18:42:49 +0000 (11:42 -0700)

Merge branch 'ef/checkout-empty' into maint

Running "git checkout" on an unborn branch used to corrupt HEAD
(regression in 1.7.10); this makes it error out.

By Erik Faye-Lund
* ef/checkout-empty:
checkout: do not corrupt HEAD on empty repo

Merge branch 'jk/maint-tformat-with-z' into maintJunio C Hamano Mon, 14 May 2012 18:42:34 +0000 (11:42 -0700)

Merge branch 'jk/maint-tformat-with-z' into maint

By Jan Krüger (1) and Junio C Hamano (1)
* jk/maint-tformat-with-z:
log-tree: the previous one is still not quite right
log-tree: use custom line terminator in line termination mode

Merge branch 'js/checkout-detach-count' into maintJunio C Hamano Mon, 14 May 2012 18:42:22 +0000 (11:42 -0700)

Merge branch 'js/checkout-detach-count' into maint

When checking out another commit from an already detached state, we used
to report all commits that are not reachable from any of the refs as
lossage, but some of them might be reachable from the new HEAD, and there
is no need to warn about them.

By Johannes Sixt
* js/checkout-detach-count:
checkout (detached): truncate list of orphaned commits at the new HEAD
t2020-checkout-detach: check for the number of orphaned commits

Merge branch 'ef/maint-clone-progress-fix' into maintJunio C Hamano Mon, 14 May 2012 18:41:40 +0000 (11:41 -0700)

Merge branch 'ef/maint-clone-progress-fix' into maint

Some time ago, "git clone" lost the progress output for its "checkout"
phase; when run without any "--quiet" option, it should give progress to
the lengthy operation.

By Erik Faye-Lund
* ef/maint-clone-progress-fix:
clone: fix progress-regression

link to gitmodules page at the beginning of git-submodu... Heiko Voigt Mon, 14 May 2012 17:32:08 +0000 (19:32 +0200)

link to gitmodules page at the beginning of git-submodule documentation

This way the user does not have to scroll down to the bottom to find
it.

Signed-off-by: Heiko Voigt <hvoigt@hvoigt.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

completion: add new __git_complete helperFelipe Contreras Mon, 14 May 2012 15:35:18 +0000 (17:35 +0200)

completion: add new __git_complete helper

This simplifies the completions, and would make it easier to define
aliases in the future.

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

builtin/blame.c: Fix a "Using plain integer as NULL... Ramsay Jones Sun, 13 May 2012 21:41:16 +0000 (22:41 +0100)

builtin/blame.c: Fix a "Using plain integer as NULL pointer" warning

Plain gcc may not but sparse catches and complains about this sort of
stuff.

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

pack-protocol: fix first-want separator in the examplesCarlos Martín Nieto Fri, 11 May 2012 23:44:53 +0000 (01:44 +0200)

pack-protocol: fix first-want separator in the examples

When sending the "want" list, the capabilities list is separated from
the obj-id by a SP instead of NUL as in the ref advertisement. The
text is correct, but the examples wrongly show the separator as
NUL. Fix the example so it uses SP.

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

Merge branch 'maint'Jiang Xin Sat, 12 May 2012 07:01:22 +0000 (15:01 +0800)

Merge branch 'maint'

* maint:
l10n: zh_CN.po: translate 1 new message

Conflicts:
po/zh_CN.po

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

l10n: zh_CN.po: translate 1 new messageJiang Xin Tue, 8 May 2012 08:14:32 +0000 (16:14 +0800)

l10n: zh_CN.po: translate 1 new message

Translate new message '[new ref]' since git 1.7.10.1.

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

dir: simplify fill_directory()René Scharfe Fri, 11 May 2012 14:59:25 +0000 (16:59 +0200)

dir: simplify fill_directory()

Now that read_directory_recursive() (reached through read_directory())
respects the string length limit we provide, we don't need to create a
NUL-limited copy of the common prefix anymore.

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

dir: respect string length argument of read_directory_r... René Scharfe Fri, 11 May 2012 14:53:07 +0000 (16:53 +0200)

dir: respect string length argument of read_directory_recursive()

A directory name is passed to read_directory_recursive() as a
length-limited string, through the parameters base and baselen.
Suprisingly, base must be a NUL-terminated string as well, as it is
passed to opendir(), ignoring baselen.

Fix this by postponing the call to opendir() until the length-limted
string is added to a strbuf, which provides a NUL in the right place.

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

git p4: fix bug when enabling tag import/export via... Luke Diamand Fri, 11 May 2012 06:25:18 +0000 (07:25 +0100)

git p4: fix bug when enabling tag import/export via config variables

Use Python's True, not true. Causes failure when enabling tag
import or export in "git p4" using a config option rather than
the command line.

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

git p4: fix bug when verbose enabled with tag exportLuke Diamand Fri, 11 May 2012 06:25:17 +0000 (07:25 +0100)

git p4: fix bug when verbose enabled with tag export

Wrong variable name used when verbose enabled, causes failure.

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

git p4: add test for tag import/export enabled via... Luke Diamand Fri, 11 May 2012 06:25:16 +0000 (07:25 +0100)

git p4: add test for tag import/export enabled via config

This adds a test for git p4 to check it can import/export tags
when enabled via a config variable rather than on the command
line.

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

Update draft release notes to 1.7.11 (11th batch)Junio C Hamano Fri, 11 May 2012 18:40:43 +0000 (11:40 -0700)

Update draft release notes to 1.7.11 (11th batch)

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

Merge branch 'ef/checkout-empty'Junio C Hamano Fri, 11 May 2012 18:34:16 +0000 (11:34 -0700)

Merge branch 'ef/checkout-empty'

Running "git checkout" on an unborn branch used to corrupt HEAD
(regression in 1.7.10); this makes it error out.

By Erik Faye-Lund
* ef/checkout-empty:
checkout: do not corrupt HEAD on empty repo

Merge branch 'jk/maint-reflog-walk-count-vs-time'Junio C Hamano Fri, 11 May 2012 18:30:07 +0000 (11:30 -0700)

Merge branch 'jk/maint-reflog-walk-count-vs-time'

Gives a better DWIM behaviour for --pretty=format:%gd, "stash list", and
"log -g", depending on how the starting point ("master" vs "master@{0}" vs
"master@{now}") and date formatting options (e.g. "--date=iso") are given
on the command line.

By Jeff King (4) and Junio C Hamano (1)
* jk/maint-reflog-walk-count-vs-time:
reflog-walk: tell explicit --date=default from not having --date at all
reflog-walk: always make HEAD@{0} show indexed selectors
reflog-walk: clean up "flag" field of commit_reflog struct
log: respect date_mode_explicit with --format:%gd
t1411: add more selector index/date tests

Merge branch 'nd/i18n-branch-lego'Junio C Hamano Fri, 11 May 2012 18:29:45 +0000 (11:29 -0700)

Merge branch 'nd/i18n-branch-lego'

Fix yet another message construction by concatenating pieces of sentenes,
which is unfriendly to i18n.

By Nguyễn Thái Ngọc Duy
* nd/i18n-branch-lego:
branch: remove lego in i18n tracking info strings

Sync with 1.7.10.2Junio C Hamano Fri, 11 May 2012 18:29:02 +0000 (11:29 -0700)

Sync with 1.7.10.2

Git 1.7.10.2 v1.7.10.2Junio C Hamano Fri, 11 May 2012 18:25:28 +0000 (11:25 -0700)

Git 1.7.10.2

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

Merge branch 'jc/diff-algo-cleanup' into maintJunio C Hamano Fri, 11 May 2012 18:19:27 +0000 (11:19 -0700)

Merge branch 'jc/diff-algo-cleanup' into maint

* jc/diff-algo-cleanup:
xdiff: PATIENCE/HISTOGRAM are not independent option bits
xdiff: remove XDL_PATCH_* macros

Merge branch 'ct/advise-push-default' into maintJunio C Hamano Fri, 11 May 2012 18:18:43 +0000 (11:18 -0700)

Merge branch 'ct/advise-push-default' into maint

The cases "git push" fails due to non-ff can be broken into three
categories; each case is given a separate advise message.

By Christopher Tiwald (2) and Jeff King (1)
* ct/advise-push-default:
Fix httpd tests that broke when non-ff push advice changed
clean up struct ref's nonfastforward field
push: Provide situational hints for non-fast-forward errors

Merge branch 'js/fast-import-test-9300' into maintJunio C Hamano Fri, 11 May 2012 18:17:49 +0000 (11:17 -0700)

Merge branch 'js/fast-import-test-9300' into maint

By Johannes Sixt
* js/fast-import-test-9300:
t9300-fast-import: avoid 'exit' in test_expect_success snippets

Merge branch 'jk/repack-no-explode-objects-from-old... Junio C Hamano Fri, 11 May 2012 18:16:45 +0000 (11:16 -0700)

Merge branch 'jk/repack-no-explode-objects-from-old-pack' into maint

"git repack" used to write out unreachable objects as loose objects
when repacking, even if such loose objects will immediately pruned
due to its age.

By Jeff King
* jk/repack-no-explode-objects-from-old-pack:
gc: use argv-array for sub-commands
argv-array: add a new "pushl" method
argv-array: refactor empty_argv initialization
gc: do not explode objects which will be immediately pruned

Merge branch 'ah/maint-grep-double-init' into maintJunio C Hamano Fri, 11 May 2012 18:16:09 +0000 (11:16 -0700)

Merge branch 'ah/maint-grep-double-init' into maint

By Angus Hammond
* ah/maint-grep-double-init:
grep.c: remove redundant line of code

Merge branch 'fa/maint-config-doc' into maintJunio C Hamano Fri, 11 May 2012 18:15:53 +0000 (11:15 -0700)

Merge branch 'fa/maint-config-doc' into maint

By Florian Achleitner
* fa/maint-config-doc:
Documentation/git-config: describe and clarify "--local <file>" option

Merge branch 'rs/unpack-trees-leakfix' into maintJunio C Hamano Fri, 11 May 2012 18:15:10 +0000 (11:15 -0700)

Merge branch 'rs/unpack-trees-leakfix' into maint

By René Scharfe
* rs/unpack-trees-leakfix:
unpack-trees: plug minor memory leak
unpack-trees: don't perform any index operation if we're not merging

Merge branch 'sl/test-wc-l-line-count' into maintJunio C Hamano Fri, 11 May 2012 18:14:57 +0000 (11:14 -0700)

Merge branch 'sl/test-wc-l-line-count' into maint

By Stefano Lattarini
* sl/test-wc-l-line-count:
tests: modernise style: more uses of test_line_count

Merge branch 'rl/show-empty-prefix' into maintJunio C Hamano Fri, 11 May 2012 18:13:26 +0000 (11:13 -0700)

Merge branch 'rl/show-empty-prefix' into maint

Unlike "git rev-parse --show-cdup", "--show-prefix" did not give an
empty line when run at the top of the working tree.

By Ross Lagerwall
* rl/show-empty-prefix:
rev-parse --show-prefix: add in trailing newline