git
6 years agot2028: fix minor error and issues in newly-added "worktree move" tests
Eric Sunshine [Sun, 4 Mar 2018 05:26:47 +0000 (00:26 -0500)] 
t2028: fix minor error and issues in newly-added "worktree move" tests

Recently-added "git worktree move" tests include a minor error and a few
small issues. Specifically:

 * checking non-existence of wrong file ("source" instead of
   "destination")

 * unneeded redirect (">empty")

 * unused variable ("toplevel")

 * restoring a worktree location by means of a separate test somewhat
   distant from the test which moved it rather than using
   test_when_finished() to restore it in a self-contained fashion

 * having git command on the left-hand-side of a pipe ("git foo | grep")

Signed-off-by: Eric Sunshine <sunshine@sunshineco.com>
Acked-by: Duy Nguyen <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
6 years agoworktree remove: allow it when $GIT_WORK_TREE is already gone
Nguyễn Thái Ngọc Duy [Mon, 12 Feb 2018 09:49:40 +0000 (16:49 +0700)] 
worktree remove: allow it when $GIT_WORK_TREE is already gone

"git worktree remove" basically consists of two things

- delete $GIT_WORK_TREE
- delete $GIT_DIR (which is $SUPER_GIT_DIR/worktrees/something)

If $GIT_WORK_TREE is already gone for some reason, we should be able
to finish the job by deleting $GIT_DIR.

Two notes:

- $GIT_WORK_TREE _can_ be missing if the worktree is locked. In that
  case we must not delete $GIT_DIR because the real $GIT_WORK_TREE may
  be in a usb stick somewhere. This is already handled because we
  check for lock first.

- validate_worktree() is still called because it may do more checks in
  future (and it already does something else, like checking main
  worktree, but that's irrelevant in this case)

Noticed-by: Kaartic Sivaraam <kaartic.sivaraam@gmail.com>
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
6 years agoworktree remove: new command
Nguyễn Thái Ngọc Duy [Mon, 12 Feb 2018 09:49:39 +0000 (16:49 +0700)] 
worktree remove: new command

This command allows to delete a worktree. Like 'move' you cannot
remove the main worktree, or one with submodules inside [1].

For deleting $GIT_WORK_TREE, Untracked files or any staged entries are
considered precious and therefore prevent removal by default. Ignored
files are not precious.

When it comes to deleting $GIT_DIR, there's no "clean" check because
there should not be any valuable data in there, except:

- HEAD reflog. There is nothing we can do about this until somebody
  steps up and implements the ref graveyard.

- Detached HEAD. Technically it can still be recovered. Although it
  may be nice to warn about orphan commits like 'git checkout' does.

[1] We do 'git status' with --ignore-submodules=all for safety
    anyway. But this needs a closer look by submodule people before we
    can allow deletion. For example, if a submodule is totally clean,
    but its repo not absorbed to the main .git dir, then deleting
    worktree also deletes the valuable .submodule repo too.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
6 years agoworktree move: refuse to move worktrees with submodules
Nguyễn Thái Ngọc Duy [Mon, 12 Feb 2018 09:49:38 +0000 (16:49 +0700)] 
worktree move: refuse to move worktrees with submodules

Submodules contains .git files with relative paths. After a worktree
move, these files need to be updated or they may point to nowhere.

This is a bandage patch to make sure "worktree move" don't break
people's worktrees by accident. When .git file update code is in
place, this validate_no_submodules() could be removed.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
6 years agoworktree move: accept destination as directory
Nguyễn Thái Ngọc Duy [Mon, 12 Feb 2018 09:49:37 +0000 (16:49 +0700)] 
worktree move: accept destination as directory

Similar to "mv a b/", which is actually "mv a b/a", we extract basename
of source worktree and create a directory of the same name at
destination if dst path is a directory.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
6 years agoworktree move: new command
Nguyễn Thái Ngọc Duy [Mon, 12 Feb 2018 09:49:36 +0000 (16:49 +0700)] 
worktree move: new command

This command allows to relocate linked worktrees. Main worktree cannot
(yet) be moved.

There are two options to move the main worktree, but both have
complications, so it's not implemented yet. Anyway the options are:

- convert the main worktree to a linked one and move it away, leave
  the git repository where it is. The repo essentially becomes bare
  after this move.

- move the repository with the main worktree. The tricky part is make
  sure all file descriptors to the repository are closed, or it may
  fail on Windows.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
6 years agoworktree.c: add update_worktree_location()
Nguyễn Thái Ngọc Duy [Mon, 12 Feb 2018 09:49:35 +0000 (16:49 +0700)] 
worktree.c: add update_worktree_location()

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
6 years agoworktree.c: add validate_worktree()
Nguyễn Thái Ngọc Duy [Wed, 24 Jan 2018 09:53:51 +0000 (16:53 +0700)] 
worktree.c: add validate_worktree()

This function is later used by "worktree move" and "worktree remove"
to ensure that we have a good connection between the repository and
the worktree. For example, if a worktree is moved manually, the
worktree location recorded in $GIT_DIR/worktrees/.../gitdir is
incorrect and we should not move that one.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
6 years agoGit 2.16.1 v2.16.1
Junio C Hamano [Mon, 22 Jan 2018 05:14:25 +0000 (21:14 -0800)] 
Git 2.16.1

Signed-off-by: Junio C Hamano <gitster@pobox.com>
6 years agoMerge branch 'bc/hash-algo' into maint
Junio C Hamano [Mon, 22 Jan 2018 05:12:37 +0000 (21:12 -0800)] 
Merge branch 'bc/hash-algo' into maint

* bc/hash-algo:
  t5601-clone: test case-conflicting files on case-insensitive filesystem
  repository: pre-initialize hash algo pointer

6 years agot5601-clone: test case-conflicting files on case-insensitive filesystem
Eric Sunshine [Sun, 21 Jan 2018 08:07:28 +0000 (03:07 -0500)] 
t5601-clone: test case-conflicting files on case-insensitive filesystem

A recently introduced regression caused a segfault at clone time on
case-insensitive filesystems when filenames differing only in case are
present. This bug has already been fixed (repository: pre-initialize
hash algo pointer, 2018-01-18), but it's not the first time similar
problems have arisen. Therefore, introduce a test to catch this case and
protect against future regressions.

Signed-off-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
Signed-off-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
6 years agorepository: pre-initialize hash algo pointer
brian m. carlson [Fri, 19 Jan 2018 04:18:25 +0000 (04:18 +0000)] 
repository: pre-initialize hash algo pointer

There are various git subcommands (among them, clone) which don't set up
the repository (that is, they lack RUN_SETUP or RUN_SETUP_GENTLY) but
end up needing to have information about the hash algorithm in use.
Because the hash algorithm is part of struct repository and it's only
initialized in repository setup, we can end up dereferencing a NULL
pointer in some cases if we call one of these subcommands and look up
the empty blob or empty tree values.

A "git clone" of a project that has two paths that differ only in
case suffers from this if it is run on a case insensitive platform.
When the command attempts to check out one of these two paths after
checking out the other one, the checkout codepath needs to see if
the version that is already on the filesystem (which should not
happen if the FS were case sensitive) is dirty, and it needs to
exercise the hashing code at that point.

In the future, we can add a command line option for this or read it
from the configuration, but until we're ready to expose that
functionality to the user, simply initialize the repository
structure to use the current hash algorithm, SHA-1.

Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
6 years agoGit 2.16 v2.16.0
Junio C Hamano [Wed, 17 Jan 2018 21:06:51 +0000 (13:06 -0800)] 
Git 2.16

Signed-off-by: Junio C Hamano <gitster@pobox.com>
6 years agoMerge tag 'l10n-2.16.0-rnd2' of git://github.com/git-l10n/git-po
Junio C Hamano [Tue, 16 Jan 2018 22:49:58 +0000 (14:49 -0800)] 
Merge tag 'l10n-2.16.0-rnd2' of git://github.com/git-l10n/git-po

l10n for Git 2.16.0 round 2

* tag 'l10n-2.16.0-rnd2' of git://github.com/git-l10n/git-po: (24 commits)
  l10n: de.po: translate 72 new messages
  l10n: de.po: improve messages when a branch starts to track another ref
  l10n: bg.po: Updated Bulgarian translation (3288t)
  l10n: TEAMS: add zh_CN team members
  l10n: zh_CN: for git v2.16.0 l10n round 2
  l10n: sv.po: Update Swedish translation (3288t0f0u)
  l10n: ru.po: update Russian translation
  l10n: TEAMS: Add ko team members
  l10n: ko.po: Update Korean translation
  l10n: fr.po 2.16 round 2
  l10n: es.po: Spanish translation 2.16.0 round 2
  l10n: vi.po(3288t): Updated Vietnamese translation for v2.16.0 round 2
  l10n: git.pot: v2.16.0 round 2 (8 new, 4 removed)
  l10n: es.po: Update Spanish Translation v2.16.0
  l10n: fr.po v2.16.0 round 1
  l10n: bg.po: Updated Bulgarian translation (3284t)
  l10n: sv.po: Update Swedish translation (3284t0f0u)
  l10n: fr.po: "worktree list" mistranslated as prune
  l10n: git.pot: v2.16.0 round 1 (64 new, 25 removed)
  l10n: fixes to German translation
  ...

6 years agol10n: de.po: translate 72 new messages
Ralf Thielow [Tue, 2 Jan 2018 09:14:40 +0000 (10:14 +0100)] 
l10n: de.po: translate 72 new messages

Translate 72 new messages came from git.pot update in 18a907225 (l10n:
git.pot: v2.16.0 round 1 (64 new, 25 removed)) and 005c62fe4 (l10n:
git.pot: v2.16.0 round 2 (8 new, 4 removed)).

Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>
Acked-by: Matthias Rüster <matthias.ruester@gmail.com>
6 years agol10n: de.po: improve messages when a branch starts to track another ref
Ralf Thielow [Sat, 16 Dec 2017 19:32:16 +0000 (20:32 +0100)] 
l10n: de.po: improve messages when a branch starts to track another ref

Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>
6 years agoRelNotes: minor typofix
SZEDER Gábor [Fri, 12 Jan 2018 10:47:36 +0000 (11:47 +0100)] 
RelNotes: minor typofix

Signed-off-by: SZEDER Gábor <szeder.dev@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
6 years agoGit 2.16-rc2 v2.16.0-rc2
Junio C Hamano [Thu, 11 Jan 2018 21:20:41 +0000 (13:20 -0800)] 
Git 2.16-rc2

Signed-off-by: Junio C Hamano <gitster@pobox.com>
6 years agoMerge branch 'jh/object-filtering'
Junio C Hamano [Thu, 11 Jan 2018 21:16:37 +0000 (13:16 -0800)] 
Merge branch 'jh/object-filtering'

Hotfix for a topic already in 'master'.

* jh/object-filtering:
  oidset: don't return value from oidset_init

6 years agoMerge branch 'tg/worktree-create-tracking'
Junio C Hamano [Thu, 11 Jan 2018 21:16:36 +0000 (13:16 -0800)] 
Merge branch 'tg/worktree-create-tracking'

Doc hotfix.

* tg/worktree-create-tracking:
  Documentation/git-worktree.txt: add missing `

6 years agoMerge branch 'js/test-with-ws-in-path'
Junio C Hamano [Thu, 11 Jan 2018 21:16:36 +0000 (13:16 -0800)] 
Merge branch 'js/test-with-ws-in-path'

Hot fix to a test.

* js/test-with-ws-in-path:
  t3900: add some more quotes

6 years agol10n: bg.po: Updated Bulgarian translation (3288t)
Alexander Shopov [Thu, 11 Jan 2018 20:59:37 +0000 (21:59 +0100)] 
l10n: bg.po: Updated Bulgarian translation (3288t)

Signed-off-by: Alexander Shopov <ash@kambanaria.org>
6 years agoDocumentation/git-worktree.txt: add missing `
Ralf Thielow [Thu, 11 Jan 2018 18:18:21 +0000 (19:18 +0100)] 
Documentation/git-worktree.txt: add missing `

Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
6 years agot3900: add some more quotes
Beat Bolli [Wed, 10 Jan 2018 09:58:32 +0000 (10:58 +0100)] 
t3900: add some more quotes

In 89a70b80 ("t0302 & t3900: add forgotten quotes", 2018-01-03), quotes
were added to protect against spaces in $HOME. In the test_when_finished
command, two files are deleted which must be quoted individually.

[jc: with \$HOME in the test_when_finished command quoted, as
pointed out by j6t].

Signed-off-by: Beat Bolli <dev+git@drbeat.li>
Helped-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
6 years agoRelNotes update before -rc2
Junio C Hamano [Wed, 10 Jan 2018 22:01:50 +0000 (14:01 -0800)] 
RelNotes update before -rc2

Signed-off-by: Junio C Hamano <gitster@pobox.com>
6 years agoMerge branch 'js/perl-path-workaround-in-tests'
Junio C Hamano [Wed, 10 Jan 2018 22:01:31 +0000 (14:01 -0800)] 
Merge branch 'js/perl-path-workaround-in-tests'

* js/perl-path-workaround-in-tests:
  mingw: handle GITPERLLIB in t0021 in a Windows-compatible way

6 years agoMerge branch 'ew/empty-merge-with-dirty-index'
Junio C Hamano [Wed, 10 Jan 2018 22:01:25 +0000 (14:01 -0800)] 
Merge branch 'ew/empty-merge-with-dirty-index'

"git merge -s recursive" did not correctly abort when the index is
dirty, if the merged tree happened to be the same as the current
HEAD, which has been fixed.

* ew/empty-merge-with-dirty-index:
  merge-recursive: do not look at the index during recursive merge

6 years agoMerge branch 'ma/bisect-leakfix'
Junio C Hamano [Wed, 10 Jan 2018 22:01:25 +0000 (14:01 -0800)] 
Merge branch 'ma/bisect-leakfix'

A hotfix for a recent update that broke 'git bisect'.

* ma/bisect-leakfix:
  bisect: fix a regression causing a segfault

6 years agoMerge branch 'js/fix-merge-arg-quoting-in-rebase-p'
Junio C Hamano [Wed, 10 Jan 2018 22:01:24 +0000 (14:01 -0800)] 
Merge branch 'js/fix-merge-arg-quoting-in-rebase-p'

"git rebase -p -X<option>" did not propagate the option properly
down to underlying merge strategy backend.

* js/fix-merge-arg-quoting-in-rebase-p:
  rebase -p: fix quoting when calling `git merge`

6 years agomingw: handle GITPERLLIB in t0021 in a Windows-compatible way
Johannes Schindelin [Sat, 6 Jan 2018 22:01:22 +0000 (23:01 +0100)] 
mingw: handle GITPERLLIB in t0021 in a Windows-compatible way

Git's assumption that all path lists are colon-separated is not only
wrong on Windows, it is not even an assumption that is compatible with
POSIX.

In the interest of time, let's not try to fix this properly but simply
work around the obvious breakage on Windows, where the MSYS2 Bash used
by Git for Windows to interpret the Git's Unix shell scripts will
automagically convert path lists in the environment to
semicolon-separated lists of Windows paths (with drive letter and the
corresponding colon and all that jazz).

In other words, we simply look whether there is a semicolon in
GITPERLLIB and split by semicolons if found instead of colons. This is
not fool-proof, of course, as the path list could consist of a single
path. But that is not the case in Git for Windows' test suite, there are
always two paths in GITPERLLIB.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
6 years agol10n: TEAMS: add zh_CN team members
Jiang Xin [Tue, 9 Jan 2018 01:55:12 +0000 (09:55 +0800)] 
l10n: TEAMS: add zh_CN team members

Add Fangyi Zhou to zh_CN l10n team members.

Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
6 years agol10n: zh_CN: for git v2.16.0 l10n round 2
Jiang Xin [Sun, 31 Dec 2017 02:50:17 +0000 (10:50 +0800)] 
l10n: zh_CN: for git v2.16.0 l10n round 2

Translate 72 messages (3288t0f0u) for git v2.16.0-rc1.

Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
Reviewed-by: 依云 <lilydjwg@gmail.com>
Reviewed-by: Fangyi Zhou <fangyi.zhou@yuriko.moe>
6 years agoMerge branch 'master' of git://github.com/nafmo/git-l10n-sv
Jiang Xin [Wed, 10 Jan 2018 03:30:04 +0000 (11:30 +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 (3288t0f0u)

6 years agoMerge branch 'russian-l10n' of https://github.com/DJm00n/git-po-ru
Jiang Xin [Wed, 10 Jan 2018 03:28:56 +0000 (11:28 +0800)] 
Merge branch 'russian-l10n' of https://github.com/DJm00n/git-po-ru

* 'russian-l10n' of https://github.com/DJm00n/git-po-ru:
  l10n: ru.po: update Russian translation

6 years agoMerge branch 'jk/doc-diff-options'
Junio C Hamano [Tue, 9 Jan 2018 22:32:57 +0000 (14:32 -0800)] 
Merge branch 'jk/doc-diff-options'

Doc update.

* jk/doc-diff-options:
  docs/diff-options: clarify scope of diff-filter types

6 years agoMerge branch 'bw/protocol-v1'
Junio C Hamano [Tue, 9 Jan 2018 22:32:56 +0000 (14:32 -0800)] 
Merge branch 'bw/protocol-v1'

Test fix for a topic already in 'master'.

* bw/protocol-v1:
  http: fix v1 protocol tests with apache httpd < 2.4

6 years agoMerge branch 'sg/travis-check-untracked'
Junio C Hamano [Tue, 9 Jan 2018 22:32:55 +0000 (14:32 -0800)] 
Merge branch 'sg/travis-check-untracked'

* sg/travis-check-untracked:
  travis-ci: check that all build artifacts are .gitignore-d
  travis-ci: don't store P4 and Git LFS in the working tree

6 years agoMerge branch 'js/test-with-ws-in-path'
Junio C Hamano [Tue, 9 Jan 2018 22:32:55 +0000 (14:32 -0800)] 
Merge branch 'js/test-with-ws-in-path'

Test fixes.

* js/test-with-ws-in-path:
  t0302 & t3900: add forgotten quotes
  Allow the test suite to pass in a directory whose name contains spaces

6 years agoMerge branch 'bc/submitting-patches-in-asciidoc'
Junio C Hamano [Tue, 9 Jan 2018 22:32:54 +0000 (14:32 -0800)] 
Merge branch 'bc/submitting-patches-in-asciidoc'

Doc readability update.

* bc/submitting-patches-in-asciidoc:
  doc/SubmittingPatches: improve text formatting

6 years agoMerge branch 'sg/travis-skip-identical-test'
Junio C Hamano [Tue, 9 Jan 2018 22:32:54 +0000 (14:32 -0800)] 
Merge branch 'sg/travis-skip-identical-test'

Avoid repeatedly testing the same tree in TravisCI that have been
tested successfully already.

* sg/travis-skip-identical-test:
  travis-ci: record and skip successfully built trees
  travis-ci: create the cache directory early in the build process
  travis-ci: print the "tip of branch is exactly at tag" message in color

6 years agoMerge branch 'ab/dc-sha1-loose-ends'
Junio C Hamano [Tue, 9 Jan 2018 22:32:53 +0000 (14:32 -0800)] 
Merge branch 'ab/dc-sha1-loose-ends'

Tying loose ends for the recent integration work of
collision-detecting SHA-1 implementation.

* ab/dc-sha1-loose-ends:
  Makefile: NO_OPENSSL=1 should no longer imply BLK_SHA1=1

6 years agoMerge branch 'sg/travis-fixes'
Junio C Hamano [Tue, 9 Jan 2018 22:32:53 +0000 (14:32 -0800)] 
Merge branch 'sg/travis-fixes'

Assorted updates for TravisCI integration.

* sg/travis-fixes:
  travis-ci: only print test failures if there are test results available
  travis-ci: save prove state for the 32 bit Linux build
  travis-ci: don't install default addon packages for the 32 bit Linux build
  travis-ci: fine tune the use of 'set -x' in 'ci/*' scripts

6 years agol10n: sv.po: Update Swedish translation (3288t0f0u)
Peter Krefting [Tue, 9 Jan 2018 19:10:14 +0000 (20:10 +0100)] 
l10n: sv.po: Update Swedish translation (3288t0f0u)

Signed-off-by: Peter Krefting <peter@softwolves.pp.se>
6 years agoMerge branch 'js/misc-git-gui-stuff' of ../git-gui
Junio C Hamano [Tue, 9 Jan 2018 19:07:03 +0000 (11:07 -0800)] 
Merge branch 'js/misc-git-gui-stuff' of ../git-gui

* 'js/misc-git-gui-stuff' of ../git-gui:
  git-gui: allow Ctrl+T to toggle multiple paths
  git-gui: fix exception when trying to stage with empty file list
  git-gui: avoid exception upon Ctrl+T in an empty list
  git gui: fix staging a second line to a 1-line file

6 years agogit-gui: allow Ctrl+T to toggle multiple paths
Johannes Schindelin [Tue, 9 Jan 2018 14:33:04 +0000 (15:33 +0100)] 
git-gui: allow Ctrl+T to toggle multiple paths

It is possible to select multiple files in the "Unstaged Changes" and
the "Staged Changes" lists. But when hitting Ctrl+T, surprisingly only
one entry is handled, not all selected ones.

Let's just use the same code path as for the "Stage To Commit" and the
"Unstage From Commit" menu items.

This fixes https://github.com/git-for-windows/git/issues/1012

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
6 years agogit-gui: fix exception when trying to stage with empty file list
Johannes Schindelin [Tue, 9 Jan 2018 14:33:01 +0000 (15:33 +0100)] 
git-gui: fix exception when trying to stage with empty file list

If there is nothing to stage, there is nothing to stage. Let's not try
to, even if the file list contains nothing at all.

This fixes https://github.com/git-for-windows/git/issues/1075

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
6 years agogit-gui: avoid exception upon Ctrl+T in an empty list
Johannes Schindelin [Tue, 9 Jan 2018 14:32:58 +0000 (15:32 +0100)] 
git-gui: avoid exception upon Ctrl+T in an empty list

Previously unstaged files can be staged by clicking on them and then
pressing Ctrl+T. Conveniently, the next unstaged file is selected
automatically so that the unstaged files can be staged by repeatedly
pressing Ctrl+T.

When a user hits Ctrl+T one time too many, though, Git GUI used to throw
this exception:

expected number but got ""
expected number but got ""
    while executing
"expr {int([lindex [$w tag ranges in_diff] 0])}"
    (procedure "toggle_or_diff" line 13)
    invoked from within
"toggle_or_diff toggle .vpane.files.workdir.list "
    (command bound to event)

Let's just avoid that by skipping the operation when there are no more
files to stage.

This fixes https://github.com/git-for-windows/git/issues/1060

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
6 years agogit gui: fix staging a second line to a 1-line file
Johannes Schindelin [Tue, 9 Jan 2018 14:32:54 +0000 (15:32 +0100)] 
git gui: fix staging a second line to a 1-line file

When a 1-line file is augmented by a second line, and the user tries to
stage that single line via the "Stage Line" context menu item, we do not
want to see "apply: corrupt patch at line 5".

The reason for this error was that the hunk header looks like this:

@@ -1 +1,2 @@

but the existing code expects the original range always to contain a
comma. This problem is easily fixed by cutting the string "1 +1,2"
(that Git GUI formerly mistook for the starting line) at the space.

This fixes https://github.com/git-for-windows/git/issues/515

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
6 years agoMerge branch 'ew/empty-merge-with-dirty-index-maint' into ew/empty-merge-with-dirty...
Junio C Hamano [Tue, 9 Jan 2018 18:41:37 +0000 (10:41 -0800)] 
Merge branch 'ew/empty-merge-with-dirty-index-maint' into ew/empty-merge-with-dirty-index

* ew/empty-merge-with-dirty-index-maint:
  merge-recursive: do not look at the index during recursive merge

6 years agomerge-recursive: do not look at the index during recursive merge
Junio C Hamano [Tue, 9 Jan 2018 18:05:51 +0000 (10:05 -0800)] 
merge-recursive: do not look at the index during recursive merge

When merging another branch into ours, if their tree is the same as
the common ancestor's, we can declare that our tree represents the
result of three-way merge.  In such a case, the recursive merge
backend incorrectly used to create a commit out of our index, even
when the index has changes.

A recent fix attempted to prevent this by adding a comparison
between "our" tree and the index, but forgot that this check must be
restricted only to the outermost merge.  Inner merges performed by
the recursive backend across merge bases are by definition made from
scratch without having any local changes added to the index.  The
call to index_has_changes() during an inner merge is working on the
index that has no relation to the merge being performed, preventing
legitimate merges from getting carried out.

Fix it by limiting the check to the outermost merge.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
6 years agol10n: ru.po: update Russian translation
Dimitriy Ryazantcev [Tue, 9 Jan 2018 10:21:52 +0000 (12:21 +0200)] 
l10n: ru.po: update Russian translation

Signed-off-by: Dimitriy Ryazantcev <dimitriy.ryazantcev@gmail.com>
6 years agol10n: TEAMS: Add ko team members
Changwoo Ryu [Tue, 9 Jan 2018 02:32:47 +0000 (11:32 +0900)] 
l10n: TEAMS: Add ko team members

Add Gwan-gyeong Mun and Sihyeon Jang.

Signed-off-by: Changwoo Ryu <cwryu@debian.org>
6 years agoMerge branch 'ko/merge-l10n' of https://github.com/git-l10n-ko/git-l10n-ko
Jiang Xin [Tue, 9 Jan 2018 01:47:11 +0000 (09:47 +0800)] 
Merge branch 'ko/merge-l10n' of https://github.com/git-l10n-ko/git-l10n-ko

* 'ko/merge-l10n' of https://github.com/git-l10n-ko/git-l10n-ko:
  l10n: ko.po: Update Korean translation

6 years agooidset: don't return value from oidset_init
Thomas Gummerer [Sun, 7 Jan 2018 23:04:04 +0000 (23:04 +0000)] 
oidset: don't return value from oidset_init

c3a9ad3117 ("oidset: add iterator methods to oidset", 2017-11-21)
introduced a 'oidset_init()' function in oidset.h, which has void as
return type, but returns an expression.

This makes the solaris compiler fail with:

    "oidset.h", line 30: void function cannot return value

As the return type is void, and even the return type of the expression
we're trying to return (oidmap_init) is void just remove the return
statement to fix the compiler error.

Signed-off-by: Thomas Gummerer <t.gummerer@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
6 years agol10n: ko.po: Update Korean translation
Changwoo Ryu [Mon, 8 Jan 2018 01:25:27 +0000 (10:25 +0900)] 
l10n: ko.po: Update Korean translation

Signed-off-by: Changwoo Ryu <cwryu@debian.org>
Signed-off-by: Sihyeon Jang <uneedsihyeon@gmail.com>
Signed-off-by: Gwan-gyeong Mun <elongbug@gmail.com>
Reviewed-by: Changwoo Ryu <cwryu@debian.org>
6 years agoMerge branch '2.16' of https://github.com/ChrisADR/git-po
Jiang Xin [Mon, 8 Jan 2018 02:59:24 +0000 (10:59 +0800)] 
Merge branch '2.16' of https://github.com/ChrisADR/git-po

* '2.16' of https://github.com/ChrisADR/git-po:
  l10n: es.po: Spanish translation 2.16.0 round 2

6 years agoMerge branch 'fr_2.16-rc1' of git://github.com/jnavila/git
Jiang Xin [Mon, 8 Jan 2018 01:17:24 +0000 (09:17 +0800)] 
Merge branch 'fr_2.16-rc1' of git://github.com/jnavila/git

* 'fr_2.16-rc1' of git://github.com/jnavila/git:
  l10n: fr.po 2.16 round 2

6 years agol10n: fr.po 2.16 round 2
Jean-Noel Avila [Sun, 7 Jan 2018 17:57:48 +0000 (18:57 +0100)] 
l10n: fr.po 2.16 round 2

Signed-off-by: Jean-Noel Avila <jn.avila@free.fr>
6 years agol10n: es.po: Spanish translation 2.16.0 round 2
Christopher Díaz Riveros [Sun, 7 Jan 2018 17:15:35 +0000 (12:15 -0500)] 
l10n: es.po: Spanish translation 2.16.0 round 2

Signed-off-by: Christopher Díaz Riveros <chrisadr@gentoo.org>
6 years agol10n: vi.po(3288t): Updated Vietnamese translation for v2.16.0 round 2
Tran Ngoc Quan [Sun, 7 Jan 2018 01:20:27 +0000 (08:20 +0700)] 
l10n: vi.po(3288t): Updated Vietnamese translation for v2.16.0 round 2

Signed-off-by: Tran Ngoc Quan <vnwildman@gmail.com>
6 years agol10n: git.pot: v2.16.0 round 2 (8 new, 4 removed)
Jiang Xin [Sat, 6 Jan 2018 23:50:31 +0000 (07:50 +0800)] 
l10n: git.pot: v2.16.0 round 2 (8 new, 4 removed)

Generate po/git.pot from v2.16.0-rc1 for git v2.16.0 l10n round 2.

Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
6 years agoMerge branch 'master' of git://github.com/git-l10n/git-po
Jiang Xin [Sat, 6 Jan 2018 23:49:43 +0000 (07:49 +0800)] 
Merge branch 'master' of git://github.com/git-l10n/git-po

* 'master' of git://github.com/git-l10n/git-po:
  l10n: es.po: Update Spanish Translation v2.16.0
  l10n: fr.po v2.16.0 round 1
  l10n: bg.po: Updated Bulgarian translation (3284t)
  l10n: sv.po: Update Swedish translation (3284t0f0u)
  l10n: fr.po: "worktree list" mistranslated as prune
  l10n: git.pot: v2.16.0 round 1 (64 new, 25 removed)
  l10n: fixes to German translation
  l10n: Update Spanish translation
  l10n: zh_CN translate parameter name
  l10n: zh_CN Fix typo
  l10n: Fixes to Catalan translation

6 years agoMerge branch '2.16' of https://github.com/ChrisADR/git-po
Jiang Xin [Sat, 6 Jan 2018 02:26:30 +0000 (10:26 +0800)] 
Merge branch '2.16' of https://github.com/ChrisADR/git-po

* '2.16' of https://github.com/ChrisADR/git-po:
  l10n: es.po: Update Spanish Translation v2.16.0

6 years agoMerge branch 'fr_2.16' of git://github.com/jnavila/git
Jiang Xin [Sat, 6 Jan 2018 02:24:52 +0000 (10:24 +0800)] 
Merge branch 'fr_2.16' of git://github.com/jnavila/git

* 'fr_2.16' of git://github.com/jnavila/git:
  l10n: fr.po v2.16.0 round 1
  l10n: fr.po: "worktree list" mistranslated as prune

6 years agoGit 2.16-rc1 v2.16.0-rc1
Junio C Hamano [Fri, 5 Jan 2018 21:45:17 +0000 (13:45 -0800)] 
Git 2.16-rc1

Signed-off-by: Junio C Hamano <gitster@pobox.com>
6 years agoMerge branch 'js/sequencer-cleanups'
Junio C Hamano [Fri, 5 Jan 2018 21:28:11 +0000 (13:28 -0800)] 
Merge branch 'js/sequencer-cleanups'

Code cleanup.

* js/sequencer-cleanups:
  sequencer: do not invent whitespace when transforming OIDs
  sequencer: report when noop has an argument
  sequencer: remove superfluous conditional
  sequencer: strip bogus LF at end of error messages
  rebase: do not continue when the todo list generation failed

6 years agoMerge branch 'jh/memihash-opt'
Junio C Hamano [Fri, 5 Jan 2018 21:28:11 +0000 (13:28 -0800)] 
Merge branch 'jh/memihash-opt'

Squelch compiler warning.

* jh/memihash-opt:
  t/helper/test-lazy-name-hash: fix compilation

6 years agoMerge branch 'tb/test-lint-wc-l'
Junio C Hamano [Fri, 5 Jan 2018 21:28:11 +0000 (13:28 -0800)] 
Merge branch 'tb/test-lint-wc-l'

Test update.

* tb/test-lint-wc-l:
  check-non-portable-shell.pl: `wc -l` may have leading WS

6 years agoMerge branch 'rs/use-argv-array-in-child-process'
Junio C Hamano [Fri, 5 Jan 2018 21:28:10 +0000 (13:28 -0800)] 
Merge branch 'rs/use-argv-array-in-child-process'

Code cleanup.

* rs/use-argv-array-in-child-process:
  send-pack: use internal argv_array of struct child_process
  http: use internal argv_array of struct child_process

6 years agoMerge branch 'ld/p4-multiple-shelves'
Junio C Hamano [Fri, 5 Jan 2018 21:28:10 +0000 (13:28 -0800)] 
Merge branch 'ld/p4-multiple-shelves'

"git p4" update.

* ld/p4-multiple-shelves:
  git-p4: update multiple shelved change lists

6 years agoMerge branch 'jd/fix-strbuf-add-urlencode-bytes'
Junio C Hamano [Fri, 5 Jan 2018 21:28:10 +0000 (13:28 -0800)] 
Merge branch 'jd/fix-strbuf-add-urlencode-bytes'

Bytes with high-bit set were encoded incorrectly and made
credential helper fail.

* jd/fix-strbuf-add-urlencode-bytes:
  strbuf: fix urlencode format string on signed char

6 years agoMerge branch 'ew/empty-merge-with-dirty-index'
Junio C Hamano [Fri, 5 Jan 2018 21:28:09 +0000 (13:28 -0800)] 
Merge branch 'ew/empty-merge-with-dirty-index'

"git merge -s recursive" did not correctly abort when the index is
dirty, if the merged tree happened to be the same as the current
HEAD, which has been fixed.

* ew/empty-merge-with-dirty-index:
  merge-recursive: avoid incorporating uncommitted changes in a merge
  move index_has_changes() from builtin/am.c to merge.c for reuse
  t6044: recursive can silently incorporate dirty changes in a merge

6 years agoMerge branch 'db/doc-config-section-names-with-bs'
Junio C Hamano [Fri, 5 Jan 2018 21:28:09 +0000 (13:28 -0800)] 
Merge branch 'db/doc-config-section-names-with-bs'

Doc update.

* db/doc-config-section-names-with-bs:
  config.txt: document behavior of backslashes in subsections

6 years agoMerge branch 'jk/test-suite-tracing'
Junio C Hamano [Fri, 5 Jan 2018 21:28:09 +0000 (13:28 -0800)] 
Merge branch 'jk/test-suite-tracing'

Assorted fixes around running tests with "-x" tracing option.

* jk/test-suite-tracing:
  t/Makefile: introduce TEST_SHELL_PATH
  test-lib: make "-x" work with "--verbose-log"
  t5615: avoid re-using descriptor 4
  test-lib: silence "-x" cleanup under bash

6 years agorebase -p: fix quoting when calling `git merge`
Johannes Schindelin [Thu, 4 Jan 2018 21:31:52 +0000 (22:31 +0100)] 
rebase -p: fix quoting when calling `git merge`

It has been reported that strategy arguments are not passed to `git
merge` correctly when rebasing interactively, preserving merges.

The reason is that the strategy arguments are already quoted, and then
quoted again.

This fixes https://github.com/git-for-windows/git/issues/1321

Original-patch-by: Kim Gybels <kgybels@infogroep.be>
Also-reported-by: Matwey V. Kornilov <matwey.kornilov@gmail.com>
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
6 years agol10n: es.po: Update Spanish Translation v2.16.0
Christopher Díaz Riveros [Thu, 4 Jan 2018 21:06:40 +0000 (16:06 -0500)] 
l10n: es.po: Update Spanish Translation v2.16.0

Signed-off-by: Christopher Díaz Riveros <chrisadr@gentoo.org>
6 years agodocs/diff-options: clarify scope of diff-filter types
Jeff King [Thu, 4 Jan 2018 16:49:42 +0000 (11:49 -0500)] 
docs/diff-options: clarify scope of diff-filter types

The same document for "--diff-filter" is included by many
programs in the diff family. Because it mentions all
possible types (added, removed, etc), this may imply to the
reader that all types can be generated by a particular
command. But this isn't necessarily the case; "diff-files"
cannot generally produce an "Added" entry, since the diff is
limited to what is already in the index.

Let's make it clear that the list here is the full one, and
does not imply anything about what a particular invocation
may produce.

Note that conditionally including items (e.g., omitting
"Added" in the git-diff-files manpage) isn't the right
solution here for two reasons:

  - The problem isn't diff-files, but doing an index to
    working tree diff. "git diff" can do the same diff, but
    also has other modes where "Added" does show up.

  - The direction of the diff matters. Doing "diff-files -R"
    can get you Added entries (but not Deleted ones).

So it's best just to explain that the set of available types
depends on the specific diff invocation.

Reported-by: John Cheng <johnlicheng@gmail.com>
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
6 years agohttp: fix v1 protocol tests with apache httpd < 2.4
Todd Zullinger [Sun, 31 Dec 2017 02:32:34 +0000 (21:32 -0500)] 
http: fix v1 protocol tests with apache httpd < 2.4

The apache config used by tests was updated to use the SetEnvIf
directive to set the Git-Protocol header in 19113a26b6 ("http: tell
server that the client understands v1", 2017-10-16).

Setting the Git-Protocol header is restricted to httpd >= 2.4, but
mod_setenvif and the SetEnvIf directive work with lower versions, at
least as far back as 2.0, according to the httpd documentation:

    https://httpd.apache.org/docs/2.0/mod/mod_setenvif.html

Drop the restriction.  Tested with httpd 2.2 and 2.4.

Signed-off-by: Todd Zullinger <tmz@pobox.com>
Acked-by: Brandon Williams <bmwill@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
6 years agot0302 & t3900: add forgotten quotes
Johannes Schindelin [Wed, 3 Jan 2018 16:54:54 +0000 (17:54 +0100)] 
t0302 & t3900: add forgotten quotes

When cleaning up files in the $HOME directory, it really makes sense to
quote the path, especially in Git's test suite, where the HOME directory
is *guaranteed* to contain spaces in its name.

It would appear that those two tests pass even without cleaning up the
files, but really more by pure chance than by design (the cleanup seems
not actually to be necessary).

However, if anybody would have a left-over `trash/` directory in Git's
`t/` directory, these tests would fail, because they would all of a
sudden try to delete that directory, but without the `-r` (recursive)
flag. That is how this issue was found.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Reviewed-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
6 years agoAllow the test suite to pass in a directory whose name contains spaces
Johannes Schindelin [Wed, 3 Jan 2018 16:54:50 +0000 (17:54 +0100)] 
Allow the test suite to pass in a directory whose name contains spaces

It is totally legitimate to clone Git's source code anywhere, including
into, say, directories whose name (or the name of its absolute path)
contains spaces.

However, a couple of tests failed to anticipate this, for lack of
quoting (or in one instance, for failure to expect more than one space
in the absolute path of the TEST_DIRECTORY). This can be easily verified
by calling these commands in your current clone:

git clone . with\ spaces
cd with\ spaces
make -j15 test

Let's fix this.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Reviewed-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
6 years agobisect: fix a regression causing a segfault
Ævar Arnfjörð Bjarmason [Wed, 3 Jan 2018 18:48:52 +0000 (18:48 +0000)] 
bisect: fix a regression causing a segfault

In 7c117184d7 ("bisect: fix off-by-one error in
`best_bisection_sorted()`", 2017-11-05) the more careful logic dealing
with freeing p->next in 50e62a8e70 ("rev-list: implement
--bisect-all", 2007-10-22) was removed.

Restore the more careful check to avoid segfaulting. Ideally this
would come with a test case, but we don't have steps to reproduce
this, only a backtrace from gdb pointing to this being the issue.

Reported-by: Yasushi SHOJI <yasushi.shoji@gmail.com>
Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Acked-by: Martin Ågren <martin.agren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
6 years agodoc/SubmittingPatches: improve text formatting
Todd Zullinger [Tue, 2 Jan 2018 15:33:50 +0000 (10:33 -0500)] 
doc/SubmittingPatches: improve text formatting

049e64aa50 ("Documentation: convert SubmittingPatches to AsciiDoc",
2017-11-12) changed the `git blame` and `git shortlog` examples given in
the section on sending your patches.

In order to italicize the `$path` argument the commands are enclosed in
plus characters as opposed to backticks.  The difference between the
quoting methods is that backtick enclosed text is not subject to further
expansion.  This formatting makes reading SubmittingPatches in a git
clone a little more difficult.  In addition to the underscores around
`$path` the `--` chars in `git shortlog --no-merges` must be replaced
with `{litdd}`.

Use backticks to quote these commands.  The italicized `$path` is lost
from the html version but the commands can be read (and copied) more
easily by users reading the text version.  These readers are more likely
to use the commands while submitting patches.  Make it easier for them.

Signed-off-by: Todd Zullinger <tmz@pobox.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
6 years agotravis-ci: check that all build artifacts are .gitignore-d
SZEDER Gábor [Sun, 31 Dec 2017 16:02:06 +0000 (17:02 +0100)] 
travis-ci: check that all build artifacts are .gitignore-d

Every once in a while our explicit .gitignore files get out of sync
when our build process learns to create new artifacts, like test
helper executables, but the .gitignore files are not updated
accordingly.

Use Travis CI to help catch such issues earlier: check that there are
no untracked files at the end of any build jobs building Git (i.e. the
64 bit Clang and GCC Linux and OSX build jobs, plus the GETTEXT_POISON
and 32 bit Linux build jobs) or its documentation, and fail the build
job if there are any present.

Signed-off-by: SZEDER Gábor <szeder.dev@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
6 years agotravis-ci: don't store P4 and Git LFS in the working tree
SZEDER Gábor [Sun, 31 Dec 2017 16:02:05 +0000 (17:02 +0100)] 
travis-ci: don't store P4 and Git LFS in the working tree

The Clang and GCC 64 bit Linux build jobs download and store the P4
and Git LFS executables under the current directory, which is the
working tree that we are about to build and test.  This means that Git
commands like 'status' or 'ls-files' would list these files as
untracked.  The next commit is about to make sure that there are no
untracked files present after the build, and the downloaded
executables in the working tree are interfering with those upcoming
checks.

Therefore, let's download P4 and Git LFS in the home directory,
outside of the working tree.

Signed-off-by: SZEDER Gábor <szeder.dev@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
6 years agol10n: fr.po v2.16.0 round 1
Jean-Noel Avila [Sun, 31 Dec 2017 16:35:53 +0000 (17:35 +0100)] 
l10n: fr.po v2.16.0 round 1

Signed-off-by: Jean-Noel Avila <jn.avila@free.fr>
6 years agotravis-ci: record and skip successfully built trees
SZEDER Gábor [Sun, 31 Dec 2017 10:12:05 +0000 (11:12 +0100)] 
travis-ci: record and skip successfully built trees

Travis CI dutifully builds and tests each new branch tip, even if its
tree has previously been successfully built and tested.  This happens
often enough in contributors' workflows, when a work-in-progress
branch is rebased changing e.g. only commit messages or the order or
number of commits while leaving the resulting code intact, and is then
pushed to a Travis CI-enabled GitHub fork.

This is wasting Travis CI's resources and is sometimes scary-annoying
when the new tip commit with a tree identical to the previous,
successfully tested one is suddenly reported in red, because one of
the OSX build jobs happened to exceed the time limit yet again.

So extend our Travis CI build scripts to skip building commits whose
trees have previously been successfully built and tested.  Use the
Travis CI cache feature to keep a record of the object names of trees
that tested successfully, in a plain and simple flat text file, one
line per tree object name.  Append the current tree's object name at
the end of every successful build job to this file, along with a bit
of additional info about the build job (commit object name, Travis CI
job number and id).  Limit the size of this file to 1000 records, to
prevent it from growing too large for git/git's forever living
integration branches.  Check, using a simple grep invocation, in each
build job whether the current commit's tree is already in there, and
skip the build if it is.  Include a message in the skipped build job's
trace log, containing the URL to the build job successfully testing
that tree for the first time and instructions on how to force a
re-build.  Catch the case when a build job, which successfully built
and tested a particular tree for the first time, is restarted and omit
the URL of the previous build job's trace log, as in this case it's
the same build job and the trace log has just been overwritten.

Note: this won't kick in if two identical trees are on two different
branches, because Travis CI caches are not shared between build jobs
of different branches.

Signed-off-by: SZEDER Gábor <szeder.dev@gmail.com>
Reviewed-by: Lars Schneider <larsxschneider@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
6 years agotravis-ci: create the cache directory early in the build process
SZEDER Gábor [Sun, 31 Dec 2017 10:12:04 +0000 (11:12 +0100)] 
travis-ci: create the cache directory early in the build process

It seems that Travis CI creates the cache directory for us anyway,
even when a previous cache doesn't exist for the current build job.
Alas, this behavior is not explicitly documented, therefore we don't
rely on it and create the cache directory ourselves in those build
jobs that read/write cached data (currently only the prove state).

In the following commit we'll start to cache additional data in every
build job, and will access the cache much earlier in the build
process.

Therefore move creating the cache directory to 'ci/lib-travisci.sh' to
make sure that it exists at the very beginning of every build job.

Signed-off-by: SZEDER Gábor <szeder.dev@gmail.com>
Reviewed-by: Lars Schneider <larsxschneider@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
6 years agotravis-ci: print the "tip of branch is exactly at tag" message in color
SZEDER Gábor [Sun, 31 Dec 2017 10:12:03 +0000 (11:12 +0100)] 
travis-ci: print the "tip of branch is exactly at tag" message in color

To make this info message stand out from the regular build job trace
output.

Signed-off-by: SZEDER Gábor <szeder.dev@gmail.com>
Reviewed-by: Lars Schneider <larsxschneider@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
6 years agoMerge branch 'master' of git://github.com/alshopov/git-po
Jiang Xin [Tue, 2 Jan 2018 14:45:47 +0000 (22:45 +0800)] 
Merge branch 'master' of git://github.com/alshopov/git-po

* 'master' of git://github.com/alshopov/git-po:
  l10n: bg.po: Updated Bulgarian translation (3284t)

6 years agol10n: bg.po: Updated Bulgarian translation (3284t)
Alexander Shopov [Mon, 1 Jan 2018 20:41:26 +0000 (21:41 +0100)] 
l10n: bg.po: Updated Bulgarian translation (3284t)

Signed-off-by: Alexander Shopov <ash@kambanaria.org>
6 years agol10n: sv.po: Update Swedish translation (3284t0f0u)
Peter Krefting [Mon, 1 Jan 2018 08:38:15 +0000 (09:38 +0100)] 
l10n: sv.po: Update Swedish translation (3284t0f0u)

Also corrected spelling.

Signed-off-by: Peter Krefting <peter@softwolves.pp.se>
6 years agol10n: fr.po: "worktree list" mistranslated as prune
Louis Bettens [Wed, 22 Nov 2017 17:24:40 +0000 (18:24 +0100)] 
l10n: fr.po: "worktree list" mistranslated as prune

Signed-off-by: Louis Bettens <louis@bettens.info>
6 years agoMerge branch 'maint' of git://github.com/git-l10n/git-po
Jiang Xin [Sun, 31 Dec 2017 02:48:20 +0000 (10:48 +0800)] 
Merge branch 'maint' of git://github.com/git-l10n/git-po

* 'maint' of git://github.com/git-l10n/git-po:
  l10n: fixes to German translation
  l10n: Update Spanish translation
  l10n: zh_CN translate parameter name
  l10n: zh_CN Fix typo
  l10n: Fixes to Catalan translation

6 years agol10n: git.pot: v2.16.0 round 1 (64 new, 25 removed)
Jiang Xin [Sun, 31 Dec 2017 02:46:19 +0000 (10:46 +0800)] 
l10n: git.pot: v2.16.0 round 1 (64 new, 25 removed)

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

Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
6 years agoGit 2.16-rc0 v2.16.0-rc0
Junio C Hamano [Thu, 28 Dec 2017 22:12:06 +0000 (14:12 -0800)] 
Git 2.16-rc0

Signed-off-by: Junio C Hamano <gitster@pobox.com>
6 years agoMerge branch 'sb/describe-blob'
Junio C Hamano [Thu, 28 Dec 2017 22:08:50 +0000 (14:08 -0800)] 
Merge branch 'sb/describe-blob'

"git describe" was taught to dig trees deeper to find a
<commit-ish>:<path> that refers to a given blob object.

* sb/describe-blob:
  builtin/describe.c: describe a blob
  builtin/describe.c: factor out describe_commit
  builtin/describe.c: print debug statements earlier
  builtin/describe.c: rename `oid` to avoid variable shadowing
  revision.h: introduce blob/tree walking in order of the commits
  list-objects.c: factor out traverse_trees_and_blobs
  t6120: fix typo in test name

6 years agoMerge branch 'hi/merge-verify-sig-config'
Junio C Hamano [Thu, 28 Dec 2017 22:08:50 +0000 (14:08 -0800)] 
Merge branch 'hi/merge-verify-sig-config'

"git merge" learned to pay attention to merge.verifySignatures
configuration variable and pretend as if '--verify-signatures'
option was given from the command line.

* hi/merge-verify-sig-config:
  t5573, t7612: clean up after unexpected success of 'pull' and 'merge'
  t: add tests for pull --verify-signatures
  merge: add config option for verifySignatures

6 years agoMerge branch 'ws/curl-http-proxy-over-https'
Junio C Hamano [Thu, 28 Dec 2017 22:08:50 +0000 (14:08 -0800)] 
Merge branch 'ws/curl-http-proxy-over-https'

Git has been taught to support an https:// URL used for http.proxy
when using recent versions of libcurl.

* ws/curl-http-proxy-over-https:
  http: support CURLPROXY_HTTPS

6 years agoMerge branch 'ks/doc-previous-checkout'
Junio C Hamano [Thu, 28 Dec 2017 22:08:49 +0000 (14:08 -0800)] 
Merge branch 'ks/doc-previous-checkout'

Doc update.

* ks/doc-previous-checkout:
  Doc/check-ref-format: clarify information about @{-N} syntax

6 years agoMerge branch 'ks/rebase-error-messages'
Junio C Hamano [Thu, 28 Dec 2017 22:08:49 +0000 (14:08 -0800)] 
Merge branch 'ks/rebase-error-messages'

Error messages from "git rebase" have been somewhat cleaned up.

* ks/rebase-error-messages:
  rebase: rebasing can also be done when HEAD is detached
  rebase: distinguish user input by quoting it
  rebase: consistently use branch_name variable