gitweb.git
mingw: avoid warnings when casting HANDLEs to intJohannes Schindelin Fri, 15 Jan 2016 13:24:34 +0000 (14:24 +0100)

mingw: avoid warnings when casting HANDLEs to int

HANDLE is defined internally as a void *, but in many cases it is
actually guaranteed to be a 32-bit integer. In these cases, GCC should
not warn about a cast of a pointer to an integer of a different type
because we know exactly what we are doing.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

mingw: avoid redefining S_* constantsJohannes Schindelin Fri, 15 Jan 2016 13:24:29 +0000 (14:24 +0100)

mingw: avoid redefining S_* constants

When compiling with MSys2's compiler, these constants are already defined.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

compat/winansi: support compiling with MSys2Johannes Schindelin Thu, 14 Jan 2016 16:52:02 +0000 (17:52 +0100)

compat/winansi: support compiling with MSys2

MSys2 already defines the _CONSOLE_FONT_INFOEX structure.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

compat/mingw: support MSys2-based MinGW buildJohannes Schindelin Thu, 14 Jan 2016 16:51:59 +0000 (17:51 +0100)

compat/mingw: support MSys2-based MinGW build

The excellent MSys2 project brings a substantially updated MinGW
environment including newer GCC versions and new headers. To support
compiling Git, let's special-case the new MinGW (tell-tale: the
_MINGW64_VERSION_MAJOR constant is defined).

Note: this commit only addresses compile failures, not compile warnings
(that task is left for a future patch).

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

nedmalloc: allow compiling with MSys2's compilerJohannes Schindelin Thu, 14 Jan 2016 16:51:54 +0000 (17:51 +0100)

nedmalloc: allow compiling with MSys2's compiler

With MSys2's GCC, `ReadWriteBarrier` is already defined, and FORCEINLINE
unfortunately gets defined incorrectly.

Let's work around both problems, using the MSys2-specific
__MINGW64_VERSION_MAJOR constant to guard the FORCEINLINE definition so
as not to affect other platforms.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

config.mak.uname: supporting 64-bit MSys2Johannes Schindelin Wed, 13 Jan 2016 13:31:01 +0000 (14:31 +0100)

config.mak.uname: supporting 64-bit MSys2

This just makes things compile, the test suite needs extra tender loving
care in addition to this change. We will address these issues in later
commits.

While at it, also allow building MSys2 Git (i.e. a Git that uses MSys2's
POSIX emulation layer).

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

config.mak.uname: support MSys2Johannes Schindelin Wed, 13 Jan 2016 13:30:53 +0000 (14:30 +0100)

config.mak.uname: support MSys2

For a long time, Git for Windows lagged behind Git's 2.x releases because
the Git for Windows developers wanted to let that big jump coincide with
a well-needed jump away from MSys to MSys2.

To understand why this is such a big issue, it needs to be noted that
many parts of Git are not written in portable C, but instead Git relies
on a POSIX shell and Perl to be available.

To support the scripts, Git for Windows has to ship a minimal POSIX
emulation layer with Bash and Perl thrown in, and when the Git for
Windows effort started in August 2007, this developer settled on using
MSys, a stripped down version of Cygwin. Consequently, the original name
of the project was "msysGit" (which, sadly, caused a *lot* of confusion
because few Windows users know about MSys, and even less care).

To compile the C code of Git for Windows, MSys was used, too: it sports
two versions of the GNU C Compiler: one that links implicitly to the
POSIX emulation layer, and another one that targets the plain Win32 API
(with a few convenience functions thrown in). Git for Windows'
executables are built using the latter, and therefore they are really
just Win32 programs. To discern executables requiring the POSIX
emulation layer from the ones that do not, the latter are called MinGW
(Minimal GNU for Windows) when the former are called MSys executables.

This reliance on MSys incurred challenges, too, though: some of our
changes to the MSys runtime -- necessary to support Git for Windows
better -- were not accepted upstream, so we had to maintain our own
fork. Also, the MSys runtime was not developed further to support e.g.
UTF-8 or 64-bit, and apart from lacking a package management system
until much later (when mingw-get was introduced), many packages provided
by the MSys/MinGW project lag behind the respective source code
versions, in particular Bash and OpenSSL. For a while, the Git for
Windows project tried to remedy the situation by trying to build newer
versions of those packages, but the situation quickly became untenable,
especially with problems like the Heartbleed bug requiring swift action
that has nothing to do with developing Git for Windows further.

Happily, in the meantime the MSys2 project (https://msys2.github.io/)
emerged, and was chosen to be the base of the Git for Windows 2.x. Just
like MSys, MSys2 is a stripped down version of Cygwin, but it is
actively kept up-to-date with Cygwin's source code. Thereby, it already
supports Unicode internally, and it also offers the 64-bit support that
we yearned for since the beginning of the Git for Windows project.

MSys2 also ported the Pacman package management system from Arch Linux
and uses it heavily. This brings the same convenience to which Linux
users are used to from `yum` or `apt-get`, and to which MacOSX users are
used to from Homebrew or MacPorts, or BSD users from the Ports system,
to MSys2: a simple `pacman -Syu` will update all installed packages to
the newest versions currently available.

MSys2 is also *very* active, typically providing package updates
multiple times per week.

It still required a two-month effort to bring everything to a state
where Git's test suite passes, many more months until the first official
Git for Windows 2.x was released, and a couple of patches still await
their submission to the respective upstream projects. Yet without MSys2,
the modernization of Git for Windows would simply not have happened.

This commit lays the ground work to supporting MSys2-based Git builds.

Assisted-by: Waldek Maleska <weakcamel@users.github.com>
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Git 2.7 v2.7.0Junio C Hamano Mon, 4 Jan 2016 22:08:04 +0000 (14:08 -0800)

Git 2.7

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

Sync with 2.6.5Junio C Hamano Mon, 4 Jan 2016 22:06:59 +0000 (14:06 -0800)

Sync with 2.6.5

Git 2.6.5 v2.6.5Junio C Hamano Mon, 4 Jan 2016 22:06:00 +0000 (14:06 -0800)

Git 2.6.5

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

Merge branch 'jk/pending-keep-tag-name' into maintJunio C Hamano Mon, 4 Jan 2016 22:03:07 +0000 (14:03 -0800)

Merge branch 'jk/pending-keep-tag-name' into maint

History traversal with "git log --source" that starts with an
annotated tag failed to report the tag as "source", due to an
old regression in the command line parser back in v2.2 days.

* jk/pending-keep-tag-name:
revision.c: propagate tag names from pending array

Merge branch 'jk/symbolic-ref-maint' into maintJunio C Hamano Mon, 4 Jan 2016 22:02:58 +0000 (14:02 -0800)

Merge branch 'jk/symbolic-ref-maint' into maint

"git symbolic-ref" forgot to report a failure with its exit status.

* jk/symbolic-ref-maint:
t1401: test reflog creation for git-symbolic-ref
symbolic-ref: propagate error code from create_symref()

Merge branch 'jk/ident-loosen-getpwuid' into maintJunio C Hamano Mon, 4 Jan 2016 22:02:57 +0000 (14:02 -0800)

Merge branch 'jk/ident-loosen-getpwuid' into maint

When getpwuid() on the system returned NULL (e.g. the user is not
in the /etc/passwd file or other uid-to-name mappings), the
codepath to find who the user is to record it in the reflog barfed
and died. Loosen the check in this codepath, which already accepts
questionable ident string (e.g. host part of the e-mail address is
obviously bogus), and in general when we operate fmt_ident() function
in non-strict mode.

* jk/ident-loosen-getpwuid:
ident: loosen getpwuid error in non-strict mode
ident: keep a flag for bogus default_email
ident: make xgetpwuid_self() a static local helper

Merge branch 'jk/send-email-ssl-errors' into maintJunio C Hamano Mon, 4 Jan 2016 22:02:55 +0000 (14:02 -0800)

Merge branch 'jk/send-email-ssl-errors' into maint

Improve error reporting when SMTP TLS fails.

* jk/send-email-ssl-errors:
send-email: enable SSL level 1 debug output

Merge branch 'sg/completion-no-column' into maintJunio C Hamano Mon, 4 Jan 2016 22:02:45 +0000 (14:02 -0800)

Merge branch 'sg/completion-no-column' into maint

The completion script (in contrib/) used to list "git column"
(which is not an end-user facing command) as one of the choices

* sg/completion-no-column:
completion: remove 'git column' from porcelain commands

Merge tag 'l10n-2.7.0-rnd2+de' of git://github.com... Junio C Hamano Sat, 2 Jan 2016 19:31:43 +0000 (11:31 -0800)

Merge tag 'l10n-2.7.0-rnd2+de' of git://github.com/git-l10n/git-po

l10n-2.7.0-rnd2+de

* tag 'l10n-2.7.0-rnd2+de' of git://github.com/git-l10n/git-po:
l10n: de.po: translate 68 new messages
l10n: de.po: improve some translations

l10n: de.po: translate 68 new messagesRalf Thielow Tue, 22 Dec 2015 17:08:06 +0000 (18:08 +0100)

l10n: de.po: translate 68 new messages

Translate 68 new messages came from git.pot update in
f4f2c8f (l10n: git.pot: v2.7.0 round 1 (66 new, 29 removed)) and
2c0ca05 (l10n: git.pot: v2.7.0 round 2 (2 new, 2 removed)).

Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>
Acked-by: Matthias Rüster <matthias.ruester@gmail.com>

l10n: de.po: improve some translationsRalf Thielow Thu, 29 Oct 2015 21:18:32 +0000 (22:18 +0100)

l10n: de.po: improve some translations

Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>
Acked-by: Phillip Sz <phillip.szelat@gmail.com>

Git 2.7-rc3 v2.7.0-rc3Junio C Hamano Mon, 28 Dec 2015 22:00:52 +0000 (14:00 -0800)

Git 2.7-rc3

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

Merge branch 'sh/p4-multi-depot'Junio C Hamano Mon, 28 Dec 2015 21:58:57 +0000 (13:58 -0800)

Merge branch 'sh/p4-multi-depot'

"git p4" when interacting with multiple depots at the same time
used to incorrectly drop changes.

* sh/p4-multi-depot:
git-p4: reduce number of server queries for fetches
git-p4: support multiple depot paths in p4 submit
git-p4: failing test case for skipping changes with multiple depots

Merge branch 'jk/pending-keep-tag-name'Junio C Hamano Mon, 28 Dec 2015 21:58:03 +0000 (13:58 -0800)

Merge branch 'jk/pending-keep-tag-name'

History traversal with "git log --source" that starts with an
annotated tag failed to report the tag as "source", due to an
old regression in the command line parser back in v2.2 days.

* jk/pending-keep-tag-name:
revision.c: propagate tag names from pending array

Merge branch 'jk/symbolic-ref-maint'Junio C Hamano Mon, 28 Dec 2015 21:57:24 +0000 (13:57 -0800)

Merge branch 'jk/symbolic-ref-maint'

"git symbolic-ref" forgot to report a failure with its exit status.

* jk/symbolic-ref-maint:
t1401: test reflog creation for git-symbolic-ref
symbolic-ref: propagate error code from create_symref()

Merge tag 'l10n-2.7.0-rnd2' of git://github.com/git... Junio C Hamano Mon, 28 Dec 2015 21:53:47 +0000 (13:53 -0800)

Merge tag 'l10n-2.7.0-rnd2' of git://github.com/git-l10n/git-po

l10n-2.7.0-rnd2

* tag 'l10n-2.7.0-rnd2' of git://github.com/git-l10n/git-po:
l10n: ru.po: update Russian translation
l10n: Updated Bulgarian translation of git (2477t,0f,0u)
l10n: ca.po: update translation
l10n: zh_CN: for git v2.7.0 l10n round 2
l10n: sv.po: Update Swedish translation (2477t0f0u)
l10n: sv: Fix bad translation
l10n: fr.po v2.7.0 round 2 (2477t)
l10n: git.pot: v2.7.0 round 2 (2 new, 2 removed)
l10n: zh_CN: for git v2.7.0 l10n round 1
l10n: ca.po: update translation
l10n: fr v2.7.0 round 1 (2477t)
l10n: Updated Bulgarian translation of git (2477t,0f,0u)
l10n: sv.po: Update Swedish translation (2477t0f0u)
l10n: vi.po: Updated translation (2477t)
l10n: git.pot: v2.7.0 round 1 (66 new, 29 removed)
l10n: fr.po: Fix typo
l10n: fr.po: Fix typo

l10n: ru.po: update Russian translationDimitriy Ryazantcev Fri, 25 Dec 2015 12:02:48 +0000 (14:02 +0200)

l10n: ru.po: update Russian translation

Signed-off-by: Dimitriy Ryazantcev <dimitriy.ryazantcev@gmail.com>

Merge branch 'master' of git://github.com/alshopov... Jiang Xin Mon, 28 Dec 2015 15:13:15 +0000 (23:13 +0800)

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

* 'master' of git://github.com/alshopov/git-po:
l10n: Updated Bulgarian translation of git (2477t,0f,0u)

l10n: Updated Bulgarian translation of git (2477t,0f,0u)Alexander Shopov Mon, 28 Dec 2015 09:33:41 +0000 (11:33 +0200)

l10n: Updated Bulgarian translation of git (2477t,0f,0u)

Signed-off-by: Alexander Shopov <ash@kambanaria.org>

l10n: ca.po: update translationAlex Henrie Mon, 28 Dec 2015 04:42:59 +0000 (21:42 -0700)

l10n: ca.po: update translation

Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>

l10n: zh_CN: for git v2.7.0 l10n round 2Jiang Xin Tue, 22 Dec 2015 15:06:59 +0000 (23:06 +0800)

l10n: zh_CN: for git v2.7.0 l10n round 2

Update 2 translations (2477t0f0u) for git v2.7.0-rc1.

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

Merge branch 'master' of git://github.com/nafmo/git... Jiang Xin Sat, 26 Dec 2015 13:22:30 +0000 (21:22 +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 (2477t0f0u)
l10n: sv: Fix bad translation

l10n: sv.po: Update Swedish translation (2477t0f0u)Peter Krefting Sat, 26 Dec 2015 11:27:15 +0000 (12:27 +0100)

l10n: sv.po: Update Swedish translation (2477t0f0u)

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

l10n: sv: Fix bad translationPeter Krefting Sat, 7 Nov 2015 14:48:20 +0000 (15:48 +0100)

l10n: sv: Fix bad translation

Found-by: Sebastian Rasmussen <sebras@gmail.com>
Signed-off-by: Peter Krefting <peter@softwolves.pp.se>

l10n: fr.po v2.7.0 round 2 (2477t)Jean-Noel Avila Thu, 24 Dec 2015 06:38:22 +0000 (07:38 +0100)

l10n: fr.po v2.7.0 round 2 (2477t)

Signed-off-by: Jean-Noel Avila <jn.avila@free.fr>

Git 2.7-rc2 v2.7.0-rc2Junio C Hamano Tue, 22 Dec 2015 22:46:01 +0000 (14:46 -0800)

Git 2.7-rc2

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

Merge branch 'js/emu-write-epipe-on-windows'Junio C Hamano Tue, 22 Dec 2015 22:45:16 +0000 (14:45 -0800)

Merge branch 'js/emu-write-epipe-on-windows'

The write(2) emulation for Windows learned to set errno to EPIPE
when necessary.

* js/emu-write-epipe-on-windows:
mingw: emulate write(2) that fails with a EPIPE

push: don't mark options of recurse-submodules for... Ralf Thielow Tue, 22 Dec 2015 17:53:00 +0000 (18:53 +0100)

push: don't mark options of recurse-submodules for translation

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

l10n: git.pot: v2.7.0 round 2 (2 new, 2 removed)Jiang Xin Tue, 22 Dec 2015 14:51:43 +0000 (22:51 +0800)

l10n: git.pot: v2.7.0 round 2 (2 new, 2 removed)

Generate po/git.pot from v2.7.0-rc1-44-g1d88dab for git v2.7.0 l10n round 2.

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

Merge branch 'master' of git://github.com/git-l10n... Jiang Xin Tue, 22 Dec 2015 14:50:24 +0000 (22:50 +0800)

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

* 'master' of git://github.com/git-l10n/git-po:
l10n: zh_CN: for git v2.7.0 l10n round 1
l10n: ca.po: update translation
l10n: fr v2.7.0 round 1 (2477t)
l10n: Updated Bulgarian translation of git (2477t,0f,0u)
l10n: sv.po: Update Swedish translation (2477t0f0u)
l10n: vi.po: Updated translation (2477t)
l10n: git.pot: v2.7.0 round 1 (66 new, 29 removed)
l10n: fr.po: Fix typo
l10n: fr.po: Fix typo

t1401: test reflog creation for git-symbolic-refJeff King Sun, 20 Dec 2015 07:27:23 +0000 (02:27 -0500)

t1401: test reflog creation for git-symbolic-ref

The current code writes a reflog entry whenever we update a
symbolic ref, but we never test that this is so. Let's add a
test to make sure upcoming refactoring doesn't cause a
regression.

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

symbolic-ref: propagate error code from create_symref()Jeff King Sun, 20 Dec 2015 07:27:18 +0000 (02:27 -0500)

symbolic-ref: propagate error code from create_symref()

If create_symref() fails, git-symbolic-ref will still exit
with code 0, and our caller has no idea that the command did
nothing.

This appears to have been broken since the beginning of time
(e.g., it is not a regression where create_symref() stopped
calling die() or something similar).

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

git-p4: reduce number of server queries for fetchesSam Hocevar Sat, 19 Dec 2015 09:39:40 +0000 (09:39 +0000)

git-p4: reduce number of server queries for fetches

When fetching changes from a depot using a full client spec, there
is no need to perform as many queries as there are top-level paths
in the client spec. Instead we query all changes in chronological
order, also getting rid of the need to sort the results and remove
duplicates.

Signed-off-by: Sam Hocevar <sam@hocevar.net>
Signed-off-by: Luke Diamand <luke@diamand.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-p4: support multiple depot paths in p4 submitSam Hocevar Sat, 19 Dec 2015 09:39:39 +0000 (09:39 +0000)

git-p4: support multiple depot paths in p4 submit

When submitting from a repository that was cloned using a client spec,
use the full list of paths when ruling out files that are outside the
view. This fixes a bug where only files pertaining to the first path
would be included in the p4 submit.

Signed-off-by: Sam Hocevar <sam@hocevar.net>
Signed-off-by: Luke Diamand <luke@diamand.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Update release notes to 2.7Junio C Hamano Mon, 21 Dec 2015 19:08:20 +0000 (11:08 -0800)

Update release notes to 2.7

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

Merge branch 'bc/format-patch-null-from-line'Junio C Hamano Mon, 21 Dec 2015 18:59:07 +0000 (10:59 -0800)

Merge branch 'bc/format-patch-null-from-line'

"format-patch" has learned a new option to zero-out the commit
object name on the mbox "From " line.

* bc/format-patch-null-from-line:
format-patch: check that header line has expected format
format-patch: add an option to suppress commit hash
sha1_file.c: introduce a null_oid constant

Merge branch 'jk/ident-loosen-getpwuid'Junio C Hamano Mon, 21 Dec 2015 18:59:07 +0000 (10:59 -0800)

Merge branch 'jk/ident-loosen-getpwuid'

When getpwuid() on the system returned NULL (e.g. the user is not
in the /etc/passwd file or other uid-to-name mappings), the
codepath to find who the user is to record it in the reflog barfed
and died. Loosen the check in this codepath, which already accepts
questionable ident string (e.g. host part of the e-mail address is
obviously bogus), and in general when we operate fmt_ident() function
in non-strict mode.

* jk/ident-loosen-getpwuid:
ident: loosen getpwuid error in non-strict mode
ident: keep a flag for bogus default_email
ident: make xgetpwuid_self() a static local helper

Merge branch 'jk/send-email-ssl-errors'Junio C Hamano Mon, 21 Dec 2015 18:59:06 +0000 (10:59 -0800)

Merge branch 'jk/send-email-ssl-errors'

Improve error reporting when SMTP TLS fails.

* jk/send-email-ssl-errors:
send-email: enable SSL level 1 debug output

Merge branch 'sg/completion-no-column'Junio C Hamano Mon, 21 Dec 2015 18:59:06 +0000 (10:59 -0800)

Merge branch 'sg/completion-no-column'

The completion script (in contrib/) used to list "git column"
(which is not an end-user facing command) as one of the choices

* sg/completion-no-column:
completion: remove 'git column' from porcelain commands

Merge branch 'mc/push-recurse-submodules-config'Junio C Hamano Mon, 21 Dec 2015 18:59:05 +0000 (10:59 -0800)

Merge branch 'mc/push-recurse-submodules-config'

Add new config to avoid typing "--recurse-submodules" on each push.

* mc/push-recurse-submodules-config:
push: follow the "last one wins" convention for --recurse-submodules
push: test that --recurse-submodules on command line overrides config
push: add recurseSubmodules config option

mingw: emulate write(2) that fails with a EPIPEJohannes Schindelin Thu, 17 Dec 2015 17:08:15 +0000 (18:08 +0100)

mingw: emulate write(2) that fails with a EPIPE

On Windows, when writing to a pipe fails, errno is always
EINVAL. However, Git expects it to be EPIPE.

According to the documentation, there are two cases in which write()
triggers EINVAL: the buffer is NULL, or the length is odd but the mode
is 16-bit Unicode (the broken pipe is not mentioned as possible cause).
Git never sets the file mode to anything but binary, therefore we know
that errno should actually be EPIPE if it is EINVAL and the buffer is
not NULL.

See https://msdn.microsoft.com/en-us/library/1570wh78.aspx for more
details.

This works around t5571.11 failing with v2.6.4 on Windows.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Acked-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge git://ozlabs.org/~paulus/gitkJunio C Hamano Mon, 21 Dec 2015 16:56:16 +0000 (08:56 -0800)

Merge git://ozlabs.org/~paulus/gitk

* git://ozlabs.org/~paulus/gitk:
gitk: sv.po: Update Swedish translation (311t)
gitk: Let .bleft.mid widgets 'breathe'
gitk: Match ttk fonts to gitk fonts
gitk: Update revision date in Japanese PO file
gitk: Update "Language:" header
gitk: Improve translation message
gitk: Remove unused line
gitk: Update year
gitk: Change last translator line
gitk: Update fuzzy messages
gitk: Update Japanese translation
gitk: Fix translation around copyright sign
gitk: Update Japanese translation
gitk: Fix wrong translation
gitk: Translate Japanese catalog
gitk: Translate more to Japanese catalog
gitk: Update Japanese message catalog
gitk: Re-sync line number in Japanese message catalogue
gitk: Color name update

l10n: zh_CN: for git v2.7.0 l10n round 1Jiang Xin Sun, 15 Nov 2015 23:02:11 +0000 (07:02 +0800)

l10n: zh_CN: for git v2.7.0 l10n round 1

Update 66 translations (2477t0f0u) for git v2.7.0-rc0.

Reviewed-by: Ray Chen <oldsharp@gmail.com>
Signed-off-by: Jiang Xin <worldhello.net@gmail.com>

Merge branch 'master' of git://github.com/alexhenrie... Jiang Xin Sun, 20 Dec 2015 11:32:26 +0000 (19:32 +0800)

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

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

Merge branch 'fr_v2.7.0' of git://github.com/jnavila/gitJiang Xin Sun, 20 Dec 2015 11:31:47 +0000 (19:31 +0800)

Merge branch 'fr_v2.7.0' of git://github.com/jnavila/git

* 'fr_v2.7.0' of git://github.com/jnavila/git:
l10n: fr v2.7.0 round 1 (2477t)

Merge branch 'master' of git://github.com/alshopov... Jiang Xin Sun, 20 Dec 2015 11:30:52 +0000 (19:30 +0800)

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

* 'master' of git://github.com/alshopov/git-po:
l10n: Updated Bulgarian translation of git (2477t,0f,0u)

l10n: ca.po: update translationAlex Henrie Sat, 19 Dec 2015 06:38:23 +0000 (23:38 -0700)

l10n: ca.po: update translation

Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>

Merge branch 'ja.po' of https://github.com/qykth-git... Paul Mackerras Sat, 19 Dec 2015 02:33:16 +0000 (13:33 +1100)

Merge branch 'ja.po' of https://github.com/qykth-git/gitk

Merge branch 'color-fix' of https://github.com/qykth... Paul Mackerras Sat, 19 Dec 2015 02:29:35 +0000 (13:29 +1100)

Merge branch 'color-fix' of https://github.com/qykth-git/gitk

l10n: fr v2.7.0 round 1 (2477t)Jean-Noel Avila Fri, 18 Dec 2015 21:00:37 +0000 (22:00 +0100)

l10n: fr v2.7.0 round 1 (2477t)

Signed-off-by: Jean-Noel Avila <jn.avila@free.fr>

l10n: Updated Bulgarian translation of git (2477t,0f,0u)Alexander Shopov Sun, 13 Dec 2015 16:55:45 +0000 (18:55 +0200)

l10n: Updated Bulgarian translation of git (2477t,0f,0u)

Signed-off-by: Alexander Shopov <ash@kambanaria.org>

l10n: sv.po: Update Swedish translation (2477t0f0u)Peter Krefting Fri, 18 Dec 2015 08:09:41 +0000 (09:09 +0100)

l10n: sv.po: Update Swedish translation (2477t0f0u)

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

revision.c: propagate tag names from pending arrayJeff King Thu, 17 Dec 2015 06:47:07 +0000 (01:47 -0500)

revision.c: propagate tag names from pending array

When we unwrap a tag to find its commit for a traversal, we
do not propagate the "name" field of the tag in the pending
array (i.e., the ref name the user gave us in the first
place) to the commit (instead, we use an empty string). This
means that "git log --source" will never show the tag-name
for commits we reach through it.

This was broken in 2073949 (traverse_commit_list: support
pending blobs/trees with paths, 2014-10-15). That commit
tried to be careful and avoid propagating the path
information for a tag (which would be nonsensical) to trees
and blobs. But it should not have cut off the "name" field,
which should carry forward to children.

Note that this does mean that the "name" field will carry
forward to blobs and trees, too. Whereas prior to 2073949,
we always gave them an empty string. This is the right thing
to do, but in practice no callers probably use it (since now
we have an explicit separate "path" field, which was the
point of 2073949).

We add tests here not only for the broken case, but also a
basic sanity test of "log --source" in general, which did
not have any coverage in the test suite.

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

Merge branch 'fr/rebase-i-continue-preserve-options'Junio C Hamano Wed, 16 Dec 2015 22:42:52 +0000 (14:42 -0800)

Merge branch 'fr/rebase-i-continue-preserve-options'

"git rebase -i" started with merge strategy options did not
propagate them upon "git rebase --continue".

* fr/rebase-i-continue-preserve-options:
rebase -i: remember merge options beyond continue actions

Merge branch 'maint'Junio C Hamano Wed, 16 Dec 2015 22:40:30 +0000 (14:40 -0800)

Merge branch 'maint'

* maint:
credential-store: don't pass strerror to die_errno()

Merge branch 'sg/lock-file-commit-error' into maintJunio C Hamano Wed, 16 Dec 2015 18:27:22 +0000 (10:27 -0800)

Merge branch 'sg/lock-file-commit-error' into maint

* sg/lock-file-commit-error:
credential-store: don't pass strerror to die_errno()

credential-store: don't pass strerror to die_errno()SZEDER Gábor Wed, 16 Dec 2015 11:22:55 +0000 (12:22 +0100)

credential-store: don't pass strerror to die_errno()

Signed-off-by: SZEDER Gábor <szeder@ira.uka.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

format-patch: check that header line has expected formatbrian m. carlson Tue, 15 Dec 2015 01:52:05 +0000 (01:52 +0000)

format-patch: check that header line has expected format

The format of the "From " header line is very specific to allow
utilities to detect Git-style patches. Add a test that the patches
created are in the expected format.

Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

format-patch: add an option to suppress commit hashbrian m. carlson Tue, 15 Dec 2015 01:52:04 +0000 (01:52 +0000)

format-patch: add an option to suppress commit hash

Oftentimes, patches created by git format-patch will be stored in
version control or compared with diff. In these cases, two otherwise
identical patches can have different commit hashes, leading to diff
noise. Teach git format-patch a --zero-commit option that instead
produces an all-zero hash to avoid this diff noise.

Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Git 2.7-rc1 v2.7.0-rc1Junio C Hamano Tue, 15 Dec 2015 17:47:11 +0000 (09:47 -0800)

Git 2.7-rc1

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

Sync with maintJunio C Hamano Tue, 15 Dec 2015 17:45:06 +0000 (09:45 -0800)

Sync with maint

Update draft release notes to 2.6.5Junio C Hamano Tue, 15 Dec 2015 17:43:01 +0000 (09:43 -0800)

Update draft release notes to 2.6.5

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

Merge branch 'dt/fsck-verify-pack-error' into maintJunio C Hamano Tue, 15 Dec 2015 17:42:16 +0000 (09:42 -0800)

Merge branch 'dt/fsck-verify-pack-error' into maint

The exit code of git-fsck didnot reflect some types of errors found
in packed objects, which has been corrected.

* dt/fsck-verify-pack-error:
verify_pack: do not ignore return value of verification function

Merge branch 'ep/ident-with-getaddrinfo' into maintJunio C Hamano Tue, 15 Dec 2015 17:42:01 +0000 (09:42 -0800)

Merge branch 'ep/ident-with-getaddrinfo' into maint

A fix-up for recent topic.

* ep/ident-with-getaddrinfo:
ident: fix undefined variable when NO_IPV6 is set
ident.c: add support for IPv6

Merge branch 'ls/p4-keep-empty-commits' into maintJunio C Hamano Tue, 15 Dec 2015 17:34:18 +0000 (09:34 -0800)

Merge branch 'ls/p4-keep-empty-commits' into maint

"git p4" used to import Perforce CLs that touch only paths outside
the client spec as empty commits. It has been corrected to ignore
them instead, with a new configuration git-p4.keepEmptyCommits as a
backward compatibility knob.

* ls/p4-keep-empty-commits:
git-p4: add option to keep empty commits

Merge branch 'jk/send-email-complete-aliases'Junio C Hamano Tue, 15 Dec 2015 17:33:19 +0000 (09:33 -0800)

Merge branch 'jk/send-email-complete-aliases'

A fix-up for recent topic.

* jk/send-email-complete-aliases:
completion: fix completing unstuck email alias arguments

Merge branch 'ep/ident-with-getaddrinfo'Junio C Hamano Tue, 15 Dec 2015 17:33:19 +0000 (09:33 -0800)

Merge branch 'ep/ident-with-getaddrinfo'

A fix-up for recent topic.

* ep/ident-with-getaddrinfo:
ident: fix undefined variable when NO_IPV6 is set

Merge branch 'jk/prune-mtime' into maintJunio C Hamano Tue, 15 Dec 2015 17:27:11 +0000 (09:27 -0800)

Merge branch 'jk/prune-mtime' into maint

The helper used to iterate over loose object directories to prune
stale objects did not closedir() immediately when it is done with a
directory--a callback such as the one used for "git prune" may want
to do rmdir(), but it would fail on open directory on platforms
such as WinXP.

* jk/prune-mtime:
prune: close directory earlier during loose-object directory traversal

Merge branch 'ls/p4-keep-empty-commits'Junio C Hamano Tue, 15 Dec 2015 16:02:18 +0000 (08:02 -0800)

Merge branch 'ls/p4-keep-empty-commits'

"git p4" used to import Perforce CLs that touch only paths outside
the client spec as empty commits. It has been corrected to ignore
them instead, with a new configuration git-p4.keepEmptyCommits as a
backward compatibility knob.

* ls/p4-keep-empty-commits:
git-p4: add option to keep empty commits

Merge branch 'jk/prune-mtime'Junio C Hamano Tue, 15 Dec 2015 16:02:13 +0000 (08:02 -0800)

Merge branch 'jk/prune-mtime'

The helper used to iterate over loose object directories to prune
stale objects did not closedir() immediately when it is done with a
directory--a callback such as the one used for "git prune" may want
to do rmdir(), but it would fail on open directory on platforms
such as WinXP.

* jk/prune-mtime:
prune: close directory earlier during loose-object directory traversal

git-p4: failing test case for skipping changes with... Luke Diamand Sun, 13 Dec 2015 20:07:13 +0000 (20:07 +0000)

git-p4: failing test case for skipping changes with multiple depots

James Farwell reported that with multiple depots git-p4 would
skip changes.

http://article.gmane.org/gmane.comp.version-control.git/282297

Add a failing test case demonstrating the problem.

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

completion: fix completing unstuck email alias argumentsSZEDER Gábor Sat, 12 Dec 2015 00:18:18 +0000 (01:18 +0100)

completion: fix completing unstuck email alias arguments

Completing unstuck form of email aliases doesn't quite work:

$ git send-email --to <TAB>
alice bob cecil
$ git send-email --to a<TAB>
alice bob cecil

While listing email aliases works as expected, the second case should
just complete to 'alice', but it keeps offering all email aliases
instead.

The cause for this behavior is that in this case we mistakenly tell
__gitcomp() explicitly that the current word to be completed is empty,
while in reality it is not. As a result __gitcomp() doesn't filter
out non-matching aliases, so all aliases end up being offered over and
over again.

Fix this by not passing the current word to be completed to
__gitcomp() and letting it go the default route and grab it from the
'$cur' variable. Don't pass empty prefix either, because it's assumed
to be empty when unspecified, so it's not necessary.

Signed-off-by: SZEDER Gábor <szeder@ira.uka.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

sha1_file.c: introduce a null_oid constantbrian m. carlson Sun, 6 Dec 2015 22:16:35 +0000 (22:16 +0000)

sha1_file.c: introduce a null_oid constant

null_oid is the struct object_id equivalent to null_sha1.

Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

ident: fix undefined variable when NO_IPV6 is setJeff King Mon, 14 Dec 2015 20:52:41 +0000 (15:52 -0500)

ident: fix undefined variable when NO_IPV6 is set

Commit 00bce77 (ident.c: add support for IPv6, 2015-11-27)
moved the "gethostbyname" call out of "add_domainname" and
into the helper function "canonical_name". But when moving
the code, it forgot that the "buf" variable is passed as
"host" in the helper.

Reported-by: johan defries <johandefries@gmail.com>
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

ident: loosen getpwuid error in non-strict modeJeff King Thu, 10 Dec 2015 21:41:29 +0000 (16:41 -0500)

ident: loosen getpwuid error in non-strict mode

If the user has not specified an identity and we have to
turn to getpwuid() to find the username or gecos field, we
die immediately when getpwuid fails (e.g., because the user
does not exist). This is OK for making a commit, where we
have set IDENT_STRICT and would want to bail on bogus input.

But for something like a reflog, where the ident is "best
effort", it can be pain. For instance, even running "git
clone" with a UID that is not in /etc/passwd will result in
git barfing, just because we can't find an ident to put in
the reflog.

Instead of dying in xgetpwuid_self, we can instead return a
fallback value, and set a "bogus" flag. For the username in
an email, we already have a "default_email_is_bogus" flag.
For the name field, we introduce (and check) a matching
"default_name_is_bogus" flag. As a bonus, this means you now
get the usual "tell me who you are" advice instead of just a
"no such user" error.

No tests, as this is dependent on configuration outside of
git's control. However, I did confirm that it behaves
sensibly when I delete myself from the local /etc/passwd
(reflogs get written, and commits complain).

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

l10n: vi.po: Updated translation (2477t)Tran Ngoc Quan Sat, 12 Dec 2015 07:34:08 +0000 (14:34 +0700)

l10n: vi.po: Updated translation (2477t)

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

gitk: sv.po: Update Swedish translation (311t)Peter Krefting Fri, 11 Dec 2015 08:49:21 +0000 (09:49 +0100)

gitk: sv.po: Update Swedish translation (311t)

Signed-off-by: Peter Krefting <peter@softwolves.pp.se>
Signed-off-by: Paul Mackerras <paulus@samba.org>

gitk: Let .bleft.mid widgets 'breathe'Giuseppe Bilotta Tue, 8 Dec 2015 07:05:51 +0000 (08:05 +0100)

gitk: Let .bleft.mid widgets 'breathe'

The widgets on top of the diff window are very tightly packed. Make
them breathe a little by adding an 'i'-spaced padding between them.

Signed-off-by: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>

gitk: Match ttk fonts to gitk fontsGiuseppe Bilotta Tue, 8 Dec 2015 07:05:50 +0000 (08:05 +0100)

gitk: Match ttk fonts to gitk fonts

The fonts set in setoptions aren't consistently picked up by ttk, which
uses its own predefined fonts. This is noticeable when switching
between using and not using ttk with custom fonts or in HiDPI settings
(where the default TTK fonts do _not_ respect tk sclaing).

Fix by mapping the ttk fontset to the one used by gitk internally.

Signed-off-by: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>

rebase -i: remember merge options beyond continue actionsFabian Ruch Fri, 11 Dec 2015 20:30:36 +0000 (21:30 +0100)

rebase -i: remember merge options beyond continue actions

If the user explicitly specified a merge strategy or strategy
options, continue to use that strategy/option after
"rebase --continue". Add a test of the corrected behavior.

If --merge is specified or implied by -s or -X, then "strategy and
"strategy_opts" are set to values from which "strategy_args" can be
derived; otherwise they are set to empty strings. Either way,
their values are propagated from one step of an interactive rebase
to the next via state files.

"do_merge", on the other hand, is *not* propagated to later steps of
an interactive rebase. Therefore, making the initialization of
"strategy_args" conditional on "do_merge" being set prevents later
steps of an interactive rebase from setting it correctly.

Luckily, we don't need the "do_merge" guard at all. If the rebase
was started without --merge, then "strategy" and "strategy_opts"
are both the empty string, which results in "strategy_args" also
being set to the empty string, which is just what we want in that
situation. So remove the "do_merge" guard and derive
"strategy_args" from "strategy" and "strategy_opts" every time.

Reported-by: Diogo de Campos <campos@esss.com.br>
Signed-off-by: Fabian Ruch <bafain@gmail.com>
Helped-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

completion: remove 'git column' from porcelain commandsSZEDER Gábor Fri, 11 Dec 2015 12:05:00 +0000 (13:05 +0100)

completion: remove 'git column' from porcelain commands

'git column' is an internal helper, so it should not be offered on
'git <TAB>' along with porcelain commands.

Signed-off-by: SZEDER Gábor <szeder@ira.uka.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Update release notes to 2.7Junio C Hamano Fri, 11 Dec 2015 18:45:44 +0000 (10:45 -0800)

Update release notes to 2.7

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

Merge branch 'maint'Junio C Hamano Fri, 11 Dec 2015 19:19:43 +0000 (11:19 -0800)

Merge branch 'maint'

* maint:
Prepare for 2.6.5

Prepare for 2.6.5Junio C Hamano Fri, 11 Dec 2015 19:17:47 +0000 (11:17 -0800)

Prepare for 2.6.5

This back-merges hopefully the last batch of trivially correct fixes
to the 2.6.x maintenance track from the master branch.

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

Merge branch 'sn/null-pointer-arith-in-mark-tree-uninte... Junio C Hamano Fri, 11 Dec 2015 19:14:38 +0000 (11:14 -0800)

Merge branch 'sn/null-pointer-arith-in-mark-tree-uninteresting' into maint

mark_tree_uninteresting() has code to handle the case where it gets
passed a NULL pointer in its 'tree' parameter, but the function had
'object = &tree->object' assignment before checking if tree is
NULL. This gives a compiler an excuse to declare that tree will
never be NULL and apply a wrong optimization. Avoid it.

* sn/null-pointer-arith-in-mark-tree-uninteresting:
revision.c: fix possible null pointer arithmetic

Merge branch 'sg/lock-file-commit-error' into maintJunio C Hamano Fri, 11 Dec 2015 19:14:18 +0000 (11:14 -0800)

Merge branch 'sg/lock-file-commit-error' into maint

Cosmetic improvement to lock-file error messages.

* sg/lock-file-commit-error:
Make error message after failing commit_lock_file() less confusing

Merge branch 'cb/t3404-shellquote' into maintJunio C Hamano Fri, 11 Dec 2015 19:14:18 +0000 (11:14 -0800)

Merge branch 'cb/t3404-shellquote' into maint

* cb/t3404-shellquote:
t3404: fix quoting of redirect for some versions of bash

Merge branch 'sb/doc-submodule-sync-recursive' into... Junio C Hamano Fri, 11 Dec 2015 19:14:17 +0000 (11:14 -0800)

Merge branch 'sb/doc-submodule-sync-recursive' into maint

* sb/doc-submodule-sync-recursive:
document submodule sync --recursive

Merge branch 'nd/doc-check-ref-format-typo' into maintJunio C Hamano Fri, 11 Dec 2015 19:14:15 +0000 (11:14 -0800)

Merge branch 'nd/doc-check-ref-format-typo' into maint

* nd/doc-check-ref-format-typo:
git-check-ref-format.txt: typo, s/avoids/avoid/

Merge branch 'rs/show-branch-argv-array' into maintJunio C Hamano Fri, 11 Dec 2015 19:14:13 +0000 (11:14 -0800)

Merge branch 'rs/show-branch-argv-array' into maint

Code simplification.

* rs/show-branch-argv-array:
show-branch: use argv_array for default arguments

Merge branch 'rs/pop-commit' into maintJunio C Hamano Fri, 11 Dec 2015 19:14:12 +0000 (11:14 -0800)

Merge branch 'rs/pop-commit' into maint

Code simplification.

* rs/pop-commit:
use pop_commit() for consuming the first entry of a struct commit_list

Merge branch 'as/subtree-with-spaces' into maintJunio C Hamano Fri, 11 Dec 2015 19:14:11 +0000 (11:14 -0800)

Merge branch 'as/subtree-with-spaces' into maint

Update "git subtree" (in contrib/) so that it can take whitespaces
in the pathnames, not only in the in-tree pathname but the name of
the directory that the repository is in.

* as/subtree-with-spaces:
contrib/subtree: respect spaces in a repository path
t7900-subtree: test the "space in a subdirectory name" case

Merge branch 'jk/test-lint-forbid-when-finished-in... Junio C Hamano Fri, 11 Dec 2015 19:14:09 +0000 (11:14 -0800)

Merge branch 'jk/test-lint-forbid-when-finished-in-subshell' into maint

Because "test_when_finished" in our test framework queues the
clean-up tasks to be done in a shell variable, it should not be
used inside a subshell. Add a mechanism to allow 'bash' to catch
such uses, and fix the ones that were found.

* jk/test-lint-forbid-when-finished-in-subshell:
test-lib-functions: detect test_when_finished in subshell
t7800: don't use test_config in a subshell
test-lib-functions: support "test_config -C <dir> ..."
t5801: don't use test_when_finished in a subshell
t7610: don't use test_config in a subshell