git
9 years agofor_each_loose_file_in_objdir: take an optional strbuf path
Jeff King [Mon, 9 Feb 2015 01:13:22 +0000 (20:13 -0500)] 
for_each_loose_file_in_objdir: take an optional strbuf path

We feed a root "objdir" path to this iterator function,
which then copies the result into a strbuf, so that it can
repeatedly append the object sub-directories to it. Let's
make it easy for callers to just pass us a strbuf in the
first place.

We leave the original interface as a convenience for callers
who want to just pass a const string like the result of
get_object_directory().

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
9 years agogit-compat-util: do not step on MAC_OS_X_VERSION_MIN_REQUIRED
Kyle J. McKay [Fri, 6 Feb 2015 09:35:31 +0000 (01:35 -0800)] 
git-compat-util: do not step on MAC_OS_X_VERSION_MIN_REQUIRED

MAC_OS_X_VERSION_MIN_REQUIRED may be defined by the builder to a
specific version in order to produce compatible binaries for a
particular system.  Blindly defining it to MAC_OS_X_VERSION_10_6
is bad.

Additionally MAC_OS_X_VERSION_10_6 will not be defined on older
systems and should AvailabilityMacros.h be included on such as
system an error will result.  However, using the explicit value
of 1060 (which is what MAC_OS_X_VERSION_10_6 is defined to) does
not solve the problem.

The changes that introduced stepping on MAC_OS_X_VERSION_MIN were
made in b195aa00 (git-compat-util: suppress unavoidable
Apple-specific deprecation warnings) to avoid deprecation
warnings.

Instead of blindly setting MAC_OS_X_VERSION_MIN to 1060 change
the definition of DEPRECATED_ATTRIBUTE to empty to avoid the
warnings.  This preserves any MAC_OS_X_VERSION_MIN_REQUIRED
setting while avoiding the warnings as intended by b195aa00.

Signed-off-by: Kyle J. McKay <mackyle@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
9 years agoGit 2.3 v2.3.0
Junio C Hamano [Thu, 5 Feb 2015 21:23:56 +0000 (13:23 -0800)] 
Git 2.3

Signed-off-by: Junio C Hamano <gitster@pobox.com>
9 years agoconfig_buf_ungetc: warn when pushing back a random character
Jeff King [Thu, 5 Feb 2015 21:00:24 +0000 (16:00 -0500)] 
config_buf_ungetc: warn when pushing back a random character

Our config code simulates a stdio stream around a buffer,
but our fake ungetc() does not behave quite like the real
one. In particular, we only rewind the position by one
character, but do _not_ actually put the character from the
caller into position.

It turns out that this does not matter, because we only ever
push back the character we just read. In other words, such
an assignment would be a noop. But because the function is
called ungetc, and because it takes a character parameter,
it is a mistake waiting to happen.

Actually assigning the character into the buffer would be
ideal, but our pointer is actually a "const" copy of the
buffer. We do not know who the real owner of the buffer is
in this code, and would not want to munge their contents.

Instead, we can simply add an assertion that matches what
the current caller does, and will let us know if new callers
are added that violate the contract.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
9 years agodecimal_width: avoid integer overflow
Jeff King [Thu, 5 Feb 2015 08:14:19 +0000 (03:14 -0500)] 
decimal_width: avoid integer overflow

The decimal_width function originally appeared in blame.c as
"lineno_width", and was designed for calculating the
print-width of small-ish integer values (line numbers in
text files). In ec7ff5b, it was made into a reusable
function, and in dc801e7, we started using it to align
diffstats.

Binary files in a diffstat show byte counts rather than line
numbers, meaning they can be quite large (e.g., consider
adding or removing a 2GB file). decimal_width is not up to
the challenge for two reasons:

  1. It takes the value as an "int", whereas large files may
     easily surpass this. The value may be truncated, in
     which case we will produce an incorrect value.

  2. It counts "up" by repeatedly multiplying another
     integer by 10 until it surpasses the value.  This can
     cause an infinite loop when the value is close to the
     largest representable integer.

     For example, consider using a 32-bit signed integer,
     and a value of 2,140,000,000 (just shy of 2^31-1).
     We will count up and eventually see that 1,000,000,000
     is smaller than our value. The next step would be to
     multiply by 10 and see that 10,000,000,000 is too
     large, ending the loop. But we can't represent that
     value, and we have signed overflow.

     This is technically undefined behavior, but a common
     behavior is to lose the high bits, in which case our
     iterator will certainly be less than the number. So
     we'll keep multiplying, overflow again, and so on.

This patch changes the argument to a uintmax_t (the same
type we use to store the diffstat information for binary
filese), and counts "down" by repeatedly dividing our value
by 10.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
9 years agoconfig: do not ungetc EOF
Jeff King [Thu, 5 Feb 2015 06:53:28 +0000 (01:53 -0500)] 
config: do not ungetc EOF

When we are parsing a config value, if we see a carriage
return, we fgetc the next character to see if it is a
line feed (in which case we silently drop the CR). If it
isn't, we then ungetc the character, and take the literal
CR.

But we never check whether we in fact got a character at
all. If the config file ends in CR, we will get EOF here,
and try to ungetc EOF. This works OK for a real stdio
stream. The ungetc returns an error, and the next fgetc will
then return EOF again.

However, our custom buffer-based stream is not so fortunate.
It happily rewinds the position of the stream by one
character, ignoring the fact that we fed it EOF. The next
fgetc call returns the final CR again, over and over, and we
end up in an infinite loop.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
9 years agoewah: fix building with gcc < 3.4.0
Tom G. Christensen [Wed, 4 Feb 2015 08:23:16 +0000 (09:23 +0100)] 
ewah: fix building with gcc < 3.4.0

The __builtin_ctzll function was added in gcc 3.4.0.
This extends the check for gcc so that use of __builtin_ctzll is only
enabled if gcc >= 3.4.0.

Signed-off-by: Tom G. Christensen <tgc@statsbiblioteket.dk>
Reviewed-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
9 years agoMakefile: handle broken curl version number in version check
Tom G. Christensen [Fri, 30 Jan 2015 09:52:34 +0000 (10:52 +0100)] 
Makefile: handle broken curl version number in version check

curl 7.11.0 through 7.12.2 when built from their official release
archives will present a 5 digit version number instead of the documented
6 digits which breaks the version check in the Makefile.
Correct these broken version numbers on the fly when extracting them to
ensure the comparison works correctly.

[jc: shortened the new sed scripts a bit]

Signed-off-by: Tom G. Christensen <tgc@statsbiblioteket.dk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
9 years agogit-submodule.sh: fix '/././' path normalization
Patrick Steinhardt [Fri, 30 Jan 2015 15:14:03 +0000 (16:14 +0100)] 
git-submodule.sh: fix '/././' path normalization

When we add a new submodule the path of the submodule is being
normalized. We fail to normalize multiple adjacent '/./', though.
Thus 'path/to/././submodule' will become 'path/to/./submodule' where
it should be 'path/to/submodule' instead.

Signed-off-by: Patrick Steinhardt <ps@pks.im>
Acked-by: Jens Lehmann <Jens.Lehmann@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
9 years agoMerge git://github.com/git-l10n/git-po
Junio C Hamano [Mon, 2 Feb 2015 20:05:56 +0000 (12:05 -0800)] 
Merge git://github.com/git-l10n/git-po

* git://github.com/git-l10n/git-po:
  l10n: ca.po: Fix trailing whitespace

9 years agoCodingGuidelines: describe naming rules for configuration variables
Junio C Hamano [Tue, 27 Jan 2015 20:26:03 +0000 (12:26 -0800)] 
CodingGuidelines: describe naming rules for configuration variables

We may want to say something about command line option names in the
new section as well, but for now, let's make sure everybody is clear
on how to structure and name their configuration variables.

The text for the rules are partly taken from the log message of
Jonathan's 6b3020a2 (add: introduce add.ignoreerrors synonym for
add.ignore-errors, 2010-12-01).

Signed-off-by: Junio C Hamano <gitster@pobox.com>
9 years agol10n: ca.po: Fix trailing whitespace
Alex Henrie [Fri, 30 Jan 2015 22:02:34 +0000 (15:02 -0700)] 
l10n: ca.po: Fix trailing whitespace

Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
9 years agoDocumentation/git-remote.txt: stress that set-url is not for triangular
Junio C Hamano [Thu, 29 Jan 2015 20:26:09 +0000 (12:26 -0800)] 
Documentation/git-remote.txt: stress that set-url is not for triangular

It seems to be a common mistake to try using a single remote
(e.g. 'origin') to fetch from one place (i.e. upstream) while
pushing to another (i.e. your publishing point).

That will never work satisfactorily, and it is easy to understand
why if you think about what refs/remotes/origin/* would mean in such
a world.  It fundamentally cannot reflect the reality.  If it
follows the state of your upstream, it cannot match what you have
published, and vice versa.

It may be that misinformation is spread by some people.  Let's
counter them by adding a few words to our documentation.

 - The description was referring to <oldurl> and <newurl>, but never
   mentioned <name> argument you give from the command line.  By
   mentioning "remote <name>", stress the fact that it is configuring
   a single remote.

 - Add a reminder that explicitly states that this is about a single
   remote, which the triangular workflow is not about.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
9 years agot/lib-gpg: sanity-check that we can actually sign
Jeff King [Thu, 29 Jan 2015 15:51:11 +0000 (10:51 -0500)] 
t/lib-gpg: sanity-check that we can actually sign

Some older versions of gpg (reportedly v1.2.6 from RHEL4) cannot
import the keyrings found in our test suite, and thus cannot even
make a signature.  The previous change works it around, but we
cannot anticipate breakages update to GPG would cause in the future.

Do a test-sign before declaring the GPG prerequisite fulfilled
to future-proof our tests.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
9 years agot/lib-gpg: include separate public keys in keyring.gpg
Jeff King [Thu, 29 Jan 2015 15:43:20 +0000 (10:43 -0500)] 
t/lib-gpg: include separate public keys in keyring.gpg

Since 1e3eefb (tests: replace binary GPG keyrings with
ASCII-armored keys, 2014-12-12), we import our test GPG keys
from a single file. Each keypair in the import stream
contains both the secret and public keys. However, older
versions of gpg reportedly fail to import the public half of
the key. We can solve this by including duplicates of the
public keys separately. The duplicates are ignored by modern
gpg, and this makes older versions work.

Reported by Tom G. Christensen <tgc@statsbiblioteket.dk> on
gpg 1.2.6 (from RHEL4).

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
9 years agodiff-format doc: a score can follow M for rewrite
Junio C Hamano [Wed, 28 Jan 2015 21:17:19 +0000 (13:17 -0800)] 
diff-format doc: a score can follow M for rewrite

b6d8f309 (diff-raw format update take #2., 2005-05-23) started
documenting the diff format, and it said

 ...
 (8) sha1 for "dst"; 0{40} if creation, unmerged or "look at work tree".
 (9) status, followed by similarlity index number only for C and R.
 (10) a tab or a NUL when '-z' option is used.
 ...

because C and R _were_ the only ones that came with a number back
then.  This was corrected by ddafa7e9 (diff-helper: Fix R/C score
parsing under -z flag., 2005-05-29) and we started saying "score"
instead of "similarlity index" (because we can have other kind of
score there), and stopped saying "only for C and R" (because Git is
an ever evolving system).  Later f345b0a0 (Add -B flag to diff-*
brothers., 2005-05-30) introduced a new concept, "dissimilarity"
score; it did not have to fix any documentation.

The current text that says only C and R can have scores came
independently from a5a323f3 (Add reference for status letters in
documentation., 2008-11-02) and it was wrong from the day one.

Noticed-by: Mike Hommey
Signed-off-by: Junio C Hamano <gitster@pobox.com>
9 years agogit-push.txt: document the behavior of --repo
Michael J Gruber [Tue, 27 Jan 2015 12:35:53 +0000 (13:35 +0100)] 
git-push.txt: document the behavior of --repo

As per the code, the --repo <repo> option is equivalent to the
<repo> argument to 'git push', but somehow it was documented as
something that is more than that.  [It exists for historical
reasons, back from the time when options had to come before
arguments.]

Say so. [But not that.]

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Helped-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
9 years agodo not check truth value of flex arrays
Jeff King [Wed, 28 Jan 2015 17:58:50 +0000 (12:58 -0500)] 
do not check truth value of flex arrays

There is no point in checking "!ref->name" when ref is a
"struct ref". The name field is a flex-array, and there
always has a non-zero address. This is almost certainly not
hurting anything, but it does cause clang-3.6 to complain.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
9 years agoread_and_strip_branch: fix typo'd address-of operator
Jeff King [Wed, 28 Jan 2015 17:57:35 +0000 (12:57 -0500)] 
read_and_strip_branch: fix typo'd address-of operator

When we are chomping newlines from the end of a strbuf, we
must check "sb.len != 0" before accessing "sb.buf[sb.len - 1]".
However, this code mistakenly checks "&sb.len", which is
always true (it is a part of an auto struct, so the address
is always non-zero). This could lead to us accessing memory
outside the strbuf when we read an empty file.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
9 years agoconfig.txt: mark deprecated variables more prominently
Junio C Hamano [Tue, 27 Jan 2015 20:25:48 +0000 (12:25 -0800)] 
config.txt: mark deprecated variables more prominently

Signed-off-by: Junio C Hamano <gitster@pobox.com>
9 years agoconfig.txt: clarify that add.ignore-errors is deprecated
Junio C Hamano [Tue, 27 Jan 2015 20:19:11 +0000 (12:19 -0800)] 
config.txt: clarify that add.ignore-errors is deprecated

The old text gave an impression that even in a new repository using
old form might be safer.  Only Git from pre 1.7.0 days choke on the
correctly named variable, which is ancient by today's standard.

We have no intention to remove the support for deprecated ones, but
let's make sure that we do not give room for confused questions such
as "why does core.sparse-checkout not work, when add.ignore-errors
does?"

Signed-off-by: Junio C Hamano <gitster@pobox.com>
9 years agoGit 2.3.0-rc2 v2.3.0-rc2
Junio C Hamano [Tue, 27 Jan 2015 22:39:53 +0000 (14:39 -0800)] 
Git 2.3.0-rc2

Signed-off-by: Junio C Hamano <gitster@pobox.com>
9 years agodumb-http: do not pass NULL path to parse_pack_index
Jeff King [Tue, 27 Jan 2015 20:02:27 +0000 (15:02 -0500)] 
dumb-http: do not pass NULL path to parse_pack_index

Once upon a time, dumb http always fetched .idx files
directly into their final location, and then checked their
validity with parse_pack_index. This was refactored in
commit 750ef42 (http-fetch: Use temporary files for
pack-*.idx until verified, 2010-04-19), which uses the
following logic:

  1. If we have the idx already in place, see if it's
     valid (using parse_pack_index). If so, use it.

  2. Otherwise, fetch the .idx to a tempfile, check
     that, and if so move it into place.

  3. Either way, fetch the pack itself if necessary.

However, it got step 1 wrong. We pass a NULL path parameter
to parse_pack_index, so an existing .idx file always looks
broken. Worse, we do not treat this broken .idx as an
opportunity to re-fetch, but instead return an error,
ignoring the pack entirely. This can lead to a dumb-http
fetch failing to retrieve the necessary objects.

This doesn't come up much in practice, because it must be a
packfile that we found out about (and whose .idx we stored)
during an earlier dumb-http fetch, but whose packfile we
_didn't_ fetch. I.e., we did a partial clone of a
repository, didn't need some packfiles, and now a followup
fetch needs them.

Discovery and tests by Charles Bailey <charles@hashpling.org>.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
9 years agoMerge git://github.com/git-l10n/git-po
Junio C Hamano [Tue, 27 Jan 2015 19:01:05 +0000 (11:01 -0800)] 
Merge git://github.com/git-l10n/git-po

* git://github.com/git-l10n/git-po:
  l10n: de.po: correct singular form
  l10n: de.po: translate "leave behind" correctly
  l10n: de.po: fix typo
  l10n: ca.po: update translation

9 years agoMerge branch 'master' of git://github.com/alexhenrie/git-po
Jiang Xin [Tue, 27 Jan 2015 07:00:48 +0000 (15:00 +0800)] 
Merge branch 'master' of git://github.com/alexhenrie/git-po

* 'master' of git://github.com/alexhenrie/git-po:
  l10n: ca.po: update translation

9 years agocommit: reword --author error message
Michael J Gruber [Mon, 26 Jan 2015 15:48:33 +0000 (16:48 +0100)] 
commit: reword --author error message

If an --author argument is specified but does not contain a '>' then git tries
to find the argument within the existing authors; and gives the error
message "No existing author found with '%s'" if there is no match.

This is confusing for users who try to specify a valid complete author
name.

Rename the error message to make it clearer that the failure has two
reasons in this case.

(This codepath is touched only when we know already that the argument
cannot be a completely wellformed author ident.)

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Helped-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
9 years agol10n: de.po: correct singular form
Michael J Gruber [Mon, 26 Jan 2015 15:34:32 +0000 (16:34 +0100)] 
l10n: de.po: correct singular form

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>
9 years agol10n: de.po: translate "leave behind" correctly
Michael J Gruber [Mon, 26 Jan 2015 15:34:31 +0000 (16:34 +0100)] 
l10n: de.po: translate "leave behind" correctly

This message is about leaving orphaned commits behind, not about
behind an upstream branch. Try to make this clear.

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>
9 years agol10n: de.po: fix typo
Benedikt Heine [Sun, 25 Jan 2015 11:00:04 +0000 (12:00 +0100)] 
l10n: de.po: fix typo

Signed-off-by: Benedikt Heine <bebe@bebehei.de>
Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>
9 years agol10n: ca.po: update translation
Alex Henrie [Mon, 26 Jan 2015 17:12:50 +0000 (10:12 -0700)] 
l10n: ca.po: update translation

Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
9 years agowincred: fix get credential if username has "@"
Aleksey Vasenev [Wed, 19 Nov 2014 21:47:32 +0000 (00:47 +0300)] 
wincred: fix get credential if username has "@"

Such a username with "@" in it isn't all that unusual these days.

cf. https://groups.google.com/forum/#!msg/msysgit/YVuCqmwwRyY/HULHj5OoE88J

Signed-off-by: Aleksey Vasenev <margtu-fivt@ya.ru>
Acked-by: Erik Faye-Lund <kusmabite@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
9 years agoDocumentation: what does "git log --indexed-objects" even mean?
Junio C Hamano [Fri, 23 Jan 2015 19:49:05 +0000 (11:49 -0800)] 
Documentation: what does "git log --indexed-objects" even mean?

4fe10219 (rev-list: add --indexed-objects option, 2014-10-16) adds
"--indexed-objects" option to "rev-list", and it is only useful in
the context of "git rev-list" and not "git log".  There are other
object traversal options that do not make sense for "git log" that
are shown in the manual page.

Move the description of "--indexed-objects" to the object traversal
section so that it sits together with its friends "--objects",
"--objects-edge", etc. and then show them only in "git rev-list"
documentation.

Acked-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
9 years agoadd -i: return from list_and_choose if there is no candidate
Alexander Kuleshov [Thu, 22 Jan 2015 08:39:44 +0000 (14:39 +0600)] 
add -i: return from list_and_choose if there is no candidate

The list_and_choose() helper is given a prompt and a list, asks the
user to make selection from the list, and then returns a list of
items chosen.  Even when it is given an empty list as the original
candidate set to choose from, it gave a prompt to the user, who can
only say "I am done choosing".

Return an empty result when the input is an empty list without
bothering the user.  The existing caller must already have a logic
to say "Nothing to do" or an equivalent when the returned list is
empty (i.e. the user chose to select nothing) if it is necessary, so
no change to the callers is necessary.

This fixes the case where "add untracked" is asked in "git add -i"
and there is no untracked files in the working tree.  We used to give
an empty list of files to choose from with a prompt, but with this
change, we no longer do.

Signed-off-by: Alexander Kuleshov <kuleshovmail@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
9 years agoMerge branch 'js/t1050'
Junio C Hamano [Thu, 22 Jan 2015 21:46:45 +0000 (13:46 -0800)] 
Merge branch 'js/t1050'

* js/t1050:
  t1050-large: generate large files without dd

9 years agoMerge branch 'ak/cat-file-clean-up'
Junio C Hamano [Thu, 22 Jan 2015 21:46:38 +0000 (13:46 -0800)] 
Merge branch 'ak/cat-file-clean-up'

* ak/cat-file-clean-up:
  cat-file: use "type" and "size" from outer scope

9 years agoMerge git://github.com/git-l10n/git-po
Junio C Hamano [Thu, 22 Jan 2015 21:45:07 +0000 (13:45 -0800)] 
Merge git://github.com/git-l10n/git-po

* git://github.com/git-l10n/git-po:
  l10n: correct indentation of show-branch usage
  l10n: de.po: translate 3 messages
  l10n: zh_CN: various fixes on command arguments
  l10n: vi.po(2298t): Updated 3 new strings
  l10n: sv.po: Update Swedish translation (2298t0f0u)
  l10n: fr.po v2.3.0 round 2
  l10n: git.pot: v2.3.0 round 2 (3 updated)
  l10n: de.po: translate 13 new messages
  l10n: de.po: fix typo
  l10n: de.po: translate "track" as "versionieren"
  l10n: zh_CN: translations for git v2.3.0-rc0
  l10n: sv.po: Update Swedish translation (2298t0f0u)
  l10n: fr.po v2.3.0 round 1
  l10n: vi.po(2298t): Updated and change Plural-Forms
  l10n: git.pot: v2.3.0 round 1 (13 new, 11 removed)
  l10n: ca.po: various fixes

9 years agoMerge branch 'sh/asciidoc-git-version-fix'
Junio C Hamano [Thu, 22 Jan 2015 21:44:47 +0000 (13:44 -0800)] 
Merge branch 'sh/asciidoc-git-version-fix'

* sh/asciidoc-git-version-fix:
  Documentation: fix version numbering

9 years agoDocumentation: fix version numbering
Sven van Haastregt [Thu, 22 Jan 2015 19:32:33 +0000 (19:32 +0000)] 
Documentation: fix version numbering

Version numbers in asciidoc-generated content (such as man pages)
went missing as of da8a366 (Documentation: refactor common operations
into variables).  Fix by putting the underscore back in the variable
name.

Signed-off-by: Sven van Haastregt <svenvh@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
9 years agoMerge branch 'jh/empty-notes'
Junio C Hamano [Thu, 22 Jan 2015 21:42:37 +0000 (13:42 -0800)] 
Merge branch 'jh/empty-notes'

* jh/empty-notes:
  Fix unclosed here document in t3301.sh

9 years agoapply: count the size of postimage correctly
Junio C Hamano [Fri, 16 Jan 2015 23:32:00 +0000 (15:32 -0800)] 
apply: count the size of postimage correctly

Under --whitespace=fix option, match_fragment() function examines
the preimage (the common context and the removed lines in the patch)
and the file being patched and checks if they match after correcting
all whitespace errors.  When they are found to match, the common
context lines in the preimage is replaced with the fixed copy,
because these lines will then be copied to the corresponding place
in the postimage by a later call to update_pre_post_images().  Lines
that are added in the postimage, under --whitespace=fix, have their
whitespace errors already fixed when apply_one_fragment() prepares
the preimage and the postimage, so in the end, application of the
patch can be done by replacing the block of text in the file being
patched that matched the preimage with what is in the postimage that
was updated by update_pre_post_images().

In the earlier days, fixing whitespace errors always resulted in
reduction of size, either collapsing runs of spaces in the indent to
a tab or removing the trailing whitespaces.  These days, however,
some whitespace error fix results in extending the size.

250b3c6c (apply --whitespace=fix: avoid running over the postimage
buffer, 2013-03-22) tried to compute the final postimage size but
its math was flawed.  It counted the size of the block of text in
the original being patched after fixing the whitespace errors on its
lines that correspond to the preimage.  That number does not have
much to do with how big the final postimage would be.

Instead count (1) the added lines in the postimage, whose size is
the same as in the final patch result because their whitespace
errors have already been corrected, and (2) the fixed size of the
lines that are common.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
9 years agoapply: make update_pre_post_images() sanity check the given postlen
Junio C Hamano [Fri, 16 Jan 2015 19:54:47 +0000 (11:54 -0800)] 
apply: make update_pre_post_images() sanity check the given postlen

"git apply --whitespace=fix" used to be able to assume that fixing
errors will always reduce the size by e.g. stripping whitespaces at
the end of lines or collapsing runs of spaces into tabs at the
beginning of lines.  An update to accomodate fixes that lengthens
the result by e.g. expanding leading tabs into spaces were made long
time ago but the logic miscounted the necessary space after such
whitespace fixes, leading to either under-allocation or over-usage
of already allocated space.

Illustrate this with a runtime sanity-check to protect us from
future breakage.  The test was stolen from Kyle McKay who helped
to identify the problem.

Helped-by: "Kyle J. McKay" <mackyle@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
9 years agoapply.c: typofix
Junio C Hamano [Fri, 16 Jan 2015 21:54:52 +0000 (13:54 -0800)] 
apply.c: typofix

Signed-off-by: Junio C Hamano <gitster@pobox.com>
9 years agoFix unclosed here document in t3301.sh
Kacper Kornet [Thu, 22 Jan 2015 11:59:36 +0000 (12:59 +0100)] 
Fix unclosed here document in t3301.sh

Commit 908a3203632a02568df230c0fccf9a2cd8da24e6 introduced  indentation
to here documents in t3301.sh. However in one place <<-EOF was missing
-, which broke this test when run with mksh-50d. This commit fixes it.

Signed-off-by: Kacper Kornet <draenog@pld-linux.org>
Acked-by: Johan Herland <johan@herland.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
9 years agorebase -i: use full object name internally throughout the script
Kirill A. Shutemov [Thu, 22 Jan 2015 11:50:15 +0000 (13:50 +0200)] 
rebase -i: use full object name internally throughout the script

In earlier days, the abbreviated commit object name shown to the end
users were generated with hardcoded --abbrev=7; 56895038 (rebase
-i: respect core.abbrev, 2013-09-28) tried to make it honor the user
specified core.abbrev, but it missed the very initial invocation of
the editor.

These days, we try to use the full 40-hex object names internally to
avoid ambiguity that can arise after rebase starts running.  Newly
created objects during the rebase may share the same prefix with
existing commits listed in the insn sheet.  These object names are
shortened just before invoking the sequence editor to present the
insn sheet to the end user, and then expanded back to full object
names when the editor returns.

But the code still used the shortened names when preparing the insn
sheet for the very first time, resulting "7 hexdigits or more"
output to the user.  Change the code to use full 40-hex commit
object names from the very beginning to make things more uniform.

Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
9 years agotransport-helper: do not request symbolic refs to remote helpers
Mike Hommey [Mon, 19 Jan 2015 01:35:07 +0000 (10:35 +0900)] 
transport-helper: do not request symbolic refs to remote helpers

A typical remote helper will return a `list` of refs containing a symbolic
ref HEAD, pointing to, e.g. refs/heads/master. In the case of a clone, all
the refs are being requested through `fetch` or `import`, including the
symbolic ref.

While this works properly, in some cases of a fetch, like `git fetch url`
or `git fetch origin HEAD`, or any fetch command involving a symbolic ref
without also fetching the corresponding ref it points to, the fetch command
fails with:

  fatal: bad object 0000000000000000000000000000000000000000
  error: <remote> did not send all necessary objects

(in the case the remote helper returned '?' values to the `list` command).

This is because there is only one ref given to fetch(), and it's not
further resolved to something at the end of fetch_with_import().

While this can be somehow handled in the remote helper itself, by adding
a refspec for the symbolic ref, and storing an explicit ref in a private
namespace, and then handling the `import` for that symbolic ref
specifically, very few existing remote helpers are actually doing that.

So, instead of requesting the exact list of wanted refs to remote helpers,
treat symbolic refs differently and request the ref they point to instead.
Then, resolve the symbolic refs values based on the pointed ref.
This assumes there is no more than one level of indirection (a symbolic
ref doesn't point to another symbolic ref).

Signed-off-by: Mike Hommey <mh@glandium.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
9 years agol10n: correct indentation of show-branch usage
Jiang Xin [Wed, 21 Jan 2015 07:05:03 +0000 (15:05 +0800)] 
l10n: correct indentation of show-branch usage

An indentation error was found right after we started l10n round 2, and
commit d6589d1 (show-branch: fix indentation of usage string) and this
update would fix it.

Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
9 years agoMerge branch 'master' of git://github.com/git-l10n/git-po
Jiang Xin [Wed, 21 Jan 2015 06:20:53 +0000 (14:20 +0800)] 
Merge branch 'master' of git://github.com/git-l10n/git-po

* 'master' of git://github.com/git-l10n/git-po:
  l10n: de.po: translate 3 messages
  l10n: zh_CN: various fixes on command arguments
  l10n: vi.po(2298t): Updated 3 new strings
  l10n: sv.po: Update Swedish translation (2298t0f0u)
  l10n: fr.po v2.3.0 round 2
  l10n: git.pot: v2.3.0 round 2 (3 updated)
  l10n: de.po: translate 13 new messages
  l10n: de.po: fix typo
  l10n: de.po: translate "track" as "versionieren"
  l10n: zh_CN: translations for git v2.3.0-rc0
  l10n: sv.po: Update Swedish translation (2298t0f0u)
  l10n: fr.po v2.3.0 round 1
  l10n: vi.po(2298t): Updated and change Plural-Forms
  l10n: git.pot: v2.3.0 round 1 (13 new, 11 removed)
  l10n: ca.po: various fixes

9 years agoGit 2.3.0-rc1 v2.3.0-rc1
Junio C Hamano [Wed, 21 Jan 2015 00:54:58 +0000 (16:54 -0800)] 
Git 2.3.0-rc1

Signed-off-by: Junio C Hamano <gitster@pobox.com>
9 years agoMerge branch 'jk/http-push-symref-fix'
Junio C Hamano [Wed, 21 Jan 2015 01:31:50 +0000 (17:31 -0800)] 
Merge branch 'jk/http-push-symref-fix'

* jk/http-push-symref-fix:
  http-push: trim trailing newline from remote symref

9 years agoMerge branch 'ak/show-branch-usage-string'
Junio C Hamano [Wed, 21 Jan 2015 00:16:09 +0000 (16:16 -0800)] 
Merge branch 'ak/show-branch-usage-string'

* ak/show-branch-usage-string:
  show-branch: fix indentation of usage string

9 years agoshow-branch: fix indentation of usage string
Ralf Thielow [Tue, 20 Jan 2015 19:30:28 +0000 (20:30 +0100)] 
show-branch: fix indentation of usage string

Noticed-by: Jean-Noël Avila <jn.avila@free.fr>
Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
9 years agoMerge branch 'jk/colors'
Junio C Hamano [Tue, 20 Jan 2015 23:57:22 +0000 (15:57 -0800)] 
Merge branch 'jk/colors'

* jk/colors:
  parse_color: fix return value for numeric color values 0-8

9 years agoparse_color: fix return value for numeric color values 0-8
Jeff King [Tue, 20 Jan 2015 22:14:48 +0000 (17:14 -0500)] 
parse_color: fix return value for numeric color values 0-8

When commit 695d95d refactored the color parsing, it missed
a "return 0" when parsing literal numbers 0-8 (which
represent basic ANSI colors), leading us to report these
colors as an error.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
9 years agol10n: de.po: translate 3 messages
Ralf Thielow [Mon, 19 Jan 2015 06:15:29 +0000 (07:15 +0100)] 
l10n: de.po: translate 3 messages

Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>
9 years agol10n: zh_CN: various fixes on command arguments
Jiang Xin [Sun, 18 Jan 2015 12:37:57 +0000 (20:37 +0800)] 
l10n: zh_CN: various fixes on command arguments

Updated translations for Git 2.3.0 l10n round 2, and fixed various
translations for command arguments.

Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
9 years agoMerge branch 'v2.3.0' of git://github.com/jnavila/git
Jiang Xin [Mon, 19 Jan 2015 02:12:46 +0000 (10:12 +0800)] 
Merge branch 'v2.3.0' of git://github.com/jnavila/git

* 'v2.3.0' of git://github.com/jnavila/git:
  l10n: fr.po v2.3.0 round 2

9 years agoMerge branch 'master' of git://github.com/nafmo/git-l10n-sv
Jiang Xin [Mon, 19 Jan 2015 02:10:57 +0000 (10:10 +0800)] 
Merge branch 'master' of git://github.com/nafmo/git-l10n-sv

* 'master' of git://github.com/nafmo/git-l10n-sv:
  l10n: sv.po: Update Swedish translation (2298t0f0u)

9 years agol10n: vi.po(2298t): Updated 3 new strings
Tran Ngoc Quan [Mon, 19 Jan 2015 00:20:28 +0000 (07:20 +0700)] 
l10n: vi.po(2298t): Updated 3 new strings

Signed-off-by: Tran Ngoc Quan <vnwildman@gmail.com>
9 years agol10n: sv.po: Update Swedish translation (2298t0f0u)
Peter Krefting [Sun, 18 Jan 2015 19:30:18 +0000 (20:30 +0100)] 
l10n: sv.po: Update Swedish translation (2298t0f0u)

Signed-off-by: Peter Krefting <peter@softwolves.pp.se>
9 years agol10n: fr.po v2.3.0 round 2
Jean-Noel Avila [Sun, 18 Jan 2015 16:03:27 +0000 (17:03 +0100)] 
l10n: fr.po v2.3.0 round 2

Signed-off-by: Jean-Noel Avila <jn.avila@free.fr>
9 years agol10n: git.pot: v2.3.0 round 2 (3 updated)
Jiang Xin [Sun, 18 Jan 2015 03:26:57 +0000 (11:26 +0800)] 
l10n: git.pot: v2.3.0 round 2 (3 updated)

Generate po/git.pot from v2.3.0-rc0-44-ga94655d for git v2.3.0 l10n
round 2.

Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
9 years agoMerge branch 'master' of git://github.com/git-l10n/git-po
Jiang Xin [Sun, 18 Jan 2015 03:24:00 +0000 (11:24 +0800)] 
Merge branch 'master' of git://github.com/git-l10n/git-po

* 'master' of git://github.com/git-l10n/git-po:
  l10n: de.po: translate 13 new messages
  l10n: de.po: fix typo
  l10n: de.po: translate "track" as "versionieren"
  l10n: zh_CN: translations for git v2.3.0-rc0
  l10n: sv.po: Update Swedish translation (2298t0f0u)
  l10n: fr.po v2.3.0 round 1
  l10n: vi.po(2298t): Updated and change Plural-Forms
  l10n: git.pot: v2.3.0 round 1 (13 new, 11 removed)
  l10n: ca.po: various fixes

9 years agol10n: de.po: translate 13 new messages
Ralf Thielow [Wed, 31 Dec 2014 19:06:51 +0000 (20:06 +0100)] 
l10n: de.po: translate 13 new messages

Translate 13 new messages came from git.pot update in
beb691f (l10n: git.pot: v2.3.0 round 1 (13 new, 11 removed)).

Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>
9 years agol10n: de.po: fix typo
Ralf Thielow [Wed, 31 Dec 2014 19:16:35 +0000 (20:16 +0100)] 
l10n: de.po: fix typo

Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>
9 years agol10n: de.po: translate "track" as "versionieren"
Ralf Thielow [Sat, 6 Dec 2014 19:16:49 +0000 (20:16 +0100)] 
l10n: de.po: translate "track" as "versionieren"

Suggested-by: Torsten Bögershausen <tboegi@web.de>
Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>
9 years agol10n: zh_CN: translations for git v2.3.0-rc0
Jiang Xin [Sun, 4 Jan 2015 04:27:38 +0000 (12:27 +0800)] 
l10n: zh_CN: translations for git v2.3.0-rc0

Translate 13 new messages (2298t0f0u) for git v2.3.0-rc0.

Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
9 years agotests: correct misuses of POSIXPERM
Junio C Hamano [Fri, 16 Jan 2015 18:32:09 +0000 (10:32 -0800)] 
tests: correct misuses of POSIXPERM

POSIXPERM requires that a later call to stat(2) (hence "ls -l")
faithfully reproduces what an earlier chmod(2) did.  Some
filesystems cannot satisify this.

SANITY requires that a file or a directory is indeed accessible (or
inaccessible) when its permission bits would say it ought to be
accessible (or inaccessible).  Running tests as root would lose this
prerequisite for obvious reasons.

Fix a few tests that misuse POSIXPERM.

t0061-run-command.sh has two uses of POSIXPERM.

 - One checks that an attempt to execute a file that is marked as
   unexecutable results in a failure with EACCES; I do not think
   having root-ness or any other capability that busts the
   filesystem permission mode bits will make you run an unexecutable
   file, so this should be left as-is.  The test does not have
   anything to do with SANITY.

 - The other one expects 'git nitfol' runs the alias when an
   alias.nitfol is defined and a directory on the PATH is marked as
   unreadable and unsearchable.  I _think_ the test tries to reject
   the alternative expectation that we want to refuse to run the
   alias because it would break "no alias may mask a command" rule
   if a file 'git-nitfol' exists in the unreadable directory but we
   cannot even determine if that is the case.  Under !SANITY that
   busts the permission bits, this test no longer checks that, so it
   must be protected with SANITY.

t1509-root-worktree.sh expects to be run on a / that is writable by
the user and sees if Git behaves "sensibly" when /.git is the
repository to govern a worktree that is the whole filesystem, and
also if Git behaves "sensibly" when / itself is a bare repository
with refs, objects, and friends (I find the definition of "behaves
sensibly" under these conditions hard to fathom, but it is a
different matter).

The implementation of the test is very much problematic.

 - It requires POSIXPERM, but it does not do chmod or checks modes
   in any way.

 - It runs "rm /*" and "rm -fr /refs /objects ..." in one of the
   tests, and also does "cd / && git init --bare".  If done on a
   live system that takes advantages of the "feature" being tested,
   these obviously will clobber the system.  But there is no guard
   against such a breakage.

 - It uses "test $UID = 0" to see rootness, which now should be
   spelled "! test_have_prereq NOT_ROOT"

Signed-off-by: Junio C Hamano <gitster@pobox.com>
9 years agot/lib-httpd: switch SANITY check for NOT_ROOT
Jeff King [Fri, 16 Jan 2015 09:16:49 +0000 (04:16 -0500)] 
t/lib-httpd: switch SANITY check for NOT_ROOT

The SANITY prerequisite is really about whether the
filesystem will respect the permissions we set, and being
root is only one part of that. But the httpd tests really
just care about not being root, as they are trying to avoid
weirdness in apache (see a1a3011 for details).

Let's switch out SANITY for a new NOT_ROOT prerequisite,
which will let us tweak SANITY more freely.

We implement NOT_ROOT by checking `id -u`, which is in POSIX
and seems to be available even on MSYS.  Note that we cannot
just call this "ROOT" and ask for "!ROOT". The possible
outcomes are:

  1. we know we are root

  2. we know we are not root

  3. we could not tell, because `id` was not available

We should conservatively treat (3) as "does not have the
prerequisite", which means that a naive negation would not
work.

Helped-by: Kyle J. McKay <mackyle@gmail.com>
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
9 years agogit-svn: make it play nicely with submodules
Ramkumar Ramachandra [Sat, 10 Jan 2015 14:55:11 +0000 (09:55 -0500)] 
git-svn: make it play nicely with submodules

It's a simple matter of opening the directory specified in the gitfile.

[ew: tweaked check to avoid open() on directories]

Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
Signed-off-by: Eric Wong <normalperson@yhbt.net>
9 years agoGit::SVN: handle missing ref_id case correctly
Ramkumar Ramachandra [Sat, 10 Jan 2015 14:35:10 +0000 (09:35 -0500)] 
Git::SVN: handle missing ref_id case correctly

ref_id should not match "refs/remotes/".

[ew: dropped initial hunk for GIT_SVN_ID at Ramkumar's request]

Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
Signed-off-by: Eric Wong <normalperson@yhbt.net>
9 years agol10n: sv.po: Update Swedish translation (2298t0f0u)
Peter Krefting [Wed, 14 Jan 2015 21:55:49 +0000 (22:55 +0100)] 
l10n: sv.po: Update Swedish translation (2298t0f0u)

Signed-off-by: Peter Krefting <peter@softwolves.pp.se>
9 years agot1050-large: generate large files without dd
Johannes Sixt [Wed, 14 Jan 2015 20:28:56 +0000 (21:28 +0100)] 
t1050-large: generate large files without dd

For some unknown reason, the dd on my Windows box segfaults randomly,
but since recently, it does so much more often than it used to, which
makes running the test suite burdensome.

Use printf to write large files instead of dd. To emphasize that three
of the large blobs are exact copies, use cp to allocate them.

The new code makes the files a bit smaller, and they are not sparse
anymore, but the tests do not depend on these properties. We do not want
to use test-genrandom here (which is used to generate large files
elsewhere in t1050), so that the files can be compressed well (which
keeps the run-time short).

The files are now large text files, not binary files. But since they
are larger than core.bigfilethreshold they are diagnosed as binary
by Git. For this reason, the 'git diff' tests that check the output
for "Binary files differ" still pass.

Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Reviewed-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
9 years agoFifth batch for 2.3 cycle
Junio C Hamano [Wed, 14 Jan 2015 20:44:03 +0000 (12:44 -0800)] 
Fifth batch for 2.3 cycle

Hopefully this will be the final feature update for 2.3-rc1

Signed-off-by: Junio C Hamano <gitster@pobox.com>
9 years agoMerge branch 'po/doc-core-ignorestat'
Junio C Hamano [Wed, 14 Jan 2015 20:41:38 +0000 (12:41 -0800)] 
Merge branch 'po/doc-core-ignorestat'

* po/doc-core-ignorestat:
  doc: core.ignoreStat update, and clarify the --assume-unchanged effect
  doc: core.ignoreStat clarify the --assume-unchanged effect

9 years agoMerge branch 'rc/for-each-ref-tracking'
Junio C Hamano [Wed, 14 Jan 2015 20:39:02 +0000 (12:39 -0800)] 
Merge branch 'rc/for-each-ref-tracking'

* rc/for-each-ref-tracking:
  for-each-ref: always check stat_tracking_info()'s return value

9 years agoMerge branch 'rh/autoconf-rhel3'
Junio C Hamano [Wed, 14 Jan 2015 20:37:21 +0000 (12:37 -0800)] 
Merge branch 'rh/autoconf-rhel3'

Build update for older RHEL.

* rh/autoconf-rhel3:
  configure.ac: check for HMAC_CTX_cleanup
  configure.ac: check for clock_gettime and CLOCK_MONOTONIC
  configure.ac: check 'tv_nsec' field in 'struct stat'

9 years agoMerge branch 'ak/fewer-includes'
Junio C Hamano [Wed, 14 Jan 2015 20:37:19 +0000 (12:37 -0800)] 
Merge branch 'ak/fewer-includes'

* ak/fewer-includes:
  cat-file: remove unused includes
  git.c: remove unnecessary #includes

9 years agoMerge branch 'ak/doc-add-v-n-options'
Junio C Hamano [Wed, 14 Jan 2015 20:37:13 +0000 (12:37 -0800)] 
Merge branch 'ak/doc-add-v-n-options'

* ak/doc-add-v-n-options:
  Documentation: list long options for -v and -n

9 years agoMerge branch 'ak/show-branch-usage-string'
Junio C Hamano [Wed, 14 Jan 2015 20:37:07 +0000 (12:37 -0800)] 
Merge branch 'ak/show-branch-usage-string'

* ak/show-branch-usage-string:
  show-branch: line-wrap show-branch usage

9 years agoMerge branch 'rh/test-color-avoid-terminfo-in-original-home'
Junio C Hamano [Wed, 14 Jan 2015 20:36:45 +0000 (12:36 -0800)] 
Merge branch 'rh/test-color-avoid-terminfo-in-original-home'

We try to see if "tput" gives a useful result before switching TERM
to dumb and moving HOME to point to our fake location for stability
of the tests, and then use the command when coloring the output
from the tests, but there is no guarantee "tput" works after
switching HOME.

* rh/test-color-avoid-terminfo-in-original-home:
  test-lib.sh: do tests for color support after changing HOME
  test-lib: use 'test ...' instead of '[ ... ]'

9 years agoMerge branch 'tf/prompt-preserve-exit-status'
Junio C Hamano [Wed, 14 Jan 2015 20:35:48 +0000 (12:35 -0800)] 
Merge branch 'tf/prompt-preserve-exit-status'

Using the exit status of the last command in the prompt, e.g.
PS1='$(__git_ps1) $? ', did not work well because the helper
function stomped on the exit status.

* tf/prompt-preserve-exit-status:
  git-prompt: preserve value of $? in all cases

9 years agoMerge branch 'rh/hide-prompt-in-ignored-directory'
Junio C Hamano [Wed, 14 Jan 2015 20:34:01 +0000 (12:34 -0800)] 
Merge branch 'rh/hide-prompt-in-ignored-directory'

* rh/hide-prompt-in-ignored-directory:
  git-prompt.sh: allow to hide prompt for ignored pwd
  git-prompt.sh: if pc mode, immediately set PS1 to a plain prompt

9 years agoMerge branch 'mm/complete-rebase-autostash'
Junio C Hamano [Wed, 14 Jan 2015 20:33:57 +0000 (12:33 -0800)] 
Merge branch 'mm/complete-rebase-autostash'

* mm/complete-rebase-autostash:
  git-completion: add --autostash for 'git rebase'

9 years agoMerge branch 'aw/doc-smtp-ssl-cert-path'
Junio C Hamano [Wed, 14 Jan 2015 20:33:50 +0000 (12:33 -0800)] 
Merge branch 'aw/doc-smtp-ssl-cert-path'

A long overdue documentation update to match an age-old code
update.

* aw/doc-smtp-ssl-cert-path:
  correct smtp-ssl-cert-path description

9 years agoMerge branch 'sp/subtree-doc'
Junio C Hamano [Wed, 14 Jan 2015 20:33:45 +0000 (12:33 -0800)] 
Merge branch 'sp/subtree-doc'

* sp/subtree-doc:
  subtree: fix AsciiDoc list item continuation

9 years agoMerge branch 'km/log-usage-string-i18n'
Junio C Hamano [Wed, 14 Jan 2015 20:32:39 +0000 (12:32 -0800)] 
Merge branch 'km/log-usage-string-i18n'

* km/log-usage-string-i18n:
  log.c: fix translation markings

9 years agoMerge branch 'km/imap-send-libcurl-options'
Junio C Hamano [Wed, 14 Jan 2015 20:31:50 +0000 (12:31 -0800)] 
Merge branch 'km/imap-send-libcurl-options'

Now imap-send learned to talk to the server using cURL library,
allow the same GIT_CURL_VERBOSE environment variable to control the
verbosity of the chattering.

* km/imap-send-libcurl-options:
  imap-send.c: set CURLOPT_USE_SSL to CURLUSESSL_TRY
  imap-send.c: support GIT_CURL_VERBOSE

9 years agoMerge branch 'jk/prune-packed-server-info'
Junio C Hamano [Wed, 14 Jan 2015 20:30:26 +0000 (12:30 -0800)] 
Merge branch 'jk/prune-packed-server-info'

Fix recent breakage in Git 2.2 that started creating info/refs and
objects/info/packs files with permission bits tighter than user's
umask.

* jk/prune-packed-server-info:
  update-server-info: create info/* with mode 0666
  t1301: set umask in reflog sharedrepository=group test

9 years agoMerge branch 'js/remote-add-with-insteadof'
Junio C Hamano [Wed, 14 Jan 2015 20:29:47 +0000 (12:29 -0800)] 
Merge branch 'js/remote-add-with-insteadof'

"git remote add $name $URL" is now allowed when "url.$URL.insteadOf"
is already defined.

* js/remote-add-with-insteadof:
  Add a regression test for 'git remote add <existing> <same-url>'
  git remote: allow adding remotes agreeing with url.<...>.insteadOf

9 years agohttp-push: trim trailing newline from remote symref
Jeff King [Tue, 13 Jan 2015 02:28:58 +0000 (21:28 -0500)] 
http-push: trim trailing newline from remote symref

When we fetch a symbolic ref file from the remote, we get
the whole string "ref: refs/heads/master\n", recognize it by
skipping past the "ref: ", and store the rest. We should
chomp the trailing newline.

This bug was introduced in ae021d8 (use skip_prefix to avoid
magic numbers, 2014-06-18), which did not notice that the
length computation fed to xmemdupz was quietly tweaked by 1
to account for this.

We can solve it by explicitly trimming the newline, which is
more obvious. Note that we use strbuf_rtrim here, which will
actually cut off any trailing whitespace, not just a single
newline. This is a good thing, though, as it makes our
parsing more liberal (and spaces are not valid in refnames
anyway).

Signed-off-by: Jeff King <peff@peff.net>
Tested-by: Kyle J. McKay <mackyle@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
9 years agogit-prompt: preserve value of $? in all cases
Tony Finch [Wed, 14 Jan 2015 10:06:28 +0000 (10:06 +0000)] 
git-prompt: preserve value of $? in all cases

Signed-off-by: Tony Finch <dot@dotat.at>
Reviewed-by: SZEDER Gábor <szeder@ira.uka.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
9 years agocat-file: use "type" and "size" from outer scope
Alexander Kuleshov [Sat, 10 Jan 2015 18:13:23 +0000 (00:13 +0600)] 
cat-file: use "type" and "size" from outer scope

In cat_one_file(), "type" and "size" variables are defined in the
function scope, and then two variables of the same name are defined
in a block in one of the if/else statement, hiding the definitions
in the outer scope.

Because the values of the outer variables before the control enters
this scope, however, do not have to be preserved, we can remove
useless definitions of variables from the inner scope safely without
breaking anything.

Signed-off-by: Alexander Kuleshov <kuleshovmail@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
9 years agol10n: fr.po v2.3.0 round 1
Jean-Noel Avila [Tue, 13 Jan 2015 19:22:58 +0000 (20:22 +0100)] 
l10n: fr.po v2.3.0 round 1

Signed-off-by: Jean-Noel Avila <jn.avila@free.fr>
9 years agoblame.c: fix garbled error message
Lukas Fleischer [Tue, 13 Jan 2015 01:59:26 +0000 (20:59 -0500)] 
blame.c: fix garbled error message

The helper functions prepare_final() and prepare_initial() return a
pointer to a string that is a member of an object in the revs->pending
array. This array is later rebuilt when running prepare_revision_walk()
which potentially transforms the pointer target into a bogus string. Fix
this by maintaining a copy of the original string.

Signed-off-by: Lukas Fleischer <git@cryptocrack.de>
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
9 years agouse xstrdup_or_null to replace ternary conditionals
Jeff King [Tue, 13 Jan 2015 01:59:09 +0000 (20:59 -0500)] 
use xstrdup_or_null to replace ternary conditionals

This replaces "x ? xstrdup(x) : NULL" with xstrdup_or_null(x).
The change is fairly mechanical, with the exception of
resolve_refdup, which can eliminate a temporary variable.

There are still a few hits grepping for "?.*xstrdup", but
these are of slightly different forms and cannot be
converted (e.g., "x ? xstrdup(x->foo) : NULL").

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
9 years agobuiltin/commit.c: use xstrdup_or_null instead of envdup
Jeff King [Tue, 13 Jan 2015 01:58:33 +0000 (20:58 -0500)] 
builtin/commit.c: use xstrdup_or_null instead of envdup

The only reason for envdup to be its own function is that we
have to save the result in a temporary string. With
xstrdup_or_null, we can feed the result of getenv()
directly.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
9 years agobuiltin/apply.c: use xstrdup_or_null instead of null_strdup
Jeff King [Tue, 13 Jan 2015 01:58:15 +0000 (20:58 -0500)] 
builtin/apply.c: use xstrdup_or_null instead of null_strdup

This file had its own identical helper that predates
xstrdup_or_null. Let's use the global one to avoid
repetition.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
9 years agogit-compat-util: add xstrdup_or_null helper
Jeff King [Tue, 13 Jan 2015 01:57:37 +0000 (20:57 -0500)] 
git-compat-util: add xstrdup_or_null helper

It's a common idiom to duplicate a string if it is non-NULL,
or pass a literal NULL through. This is already a one-liner
in C, but you do have to repeat the name of the string
twice. So if there's a function call, you must write:

  const char *x = some_fun(...);
  return x ? xstrdup(x) : NULL;

instead of (with this patch) just:

  return xstrdup_or_null(some_fun(...));

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
9 years agol10n: vi.po(2298t): Updated and change Plural-Forms
Tran Ngoc Quan [Tue, 13 Jan 2015 07:23:12 +0000 (14:23 +0700)] 
l10n: vi.po(2298t): Updated and change Plural-Forms

Signed-off-by: Tran Ngoc Quan <vnwildman@gmail.com>
9 years agol10n: git.pot: v2.3.0 round 1 (13 new, 11 removed)
Jiang Xin [Tue, 13 Jan 2015 06:05:57 +0000 (14:05 +0800)] 
l10n: git.pot: v2.3.0 round 1 (13 new, 11 removed)

Generate po/git.pot from v2.3.0-rc0 for git v2.3.0 l10n round 1.

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