OSDN Git Service
Junio C Hamano [Tue, 23 Jan 2018 21:16:38 +0000 (13:16 -0800)]
Merge branch 'cc/codespeed'
"perf" test output can be sent to codespeed server.
* cc/codespeed:
perf/run: read GIT_PERF_REPO_NAME from perf.repoName
perf/run: learn to send output to codespeed server
perf/run: learn about perf.codespeedOutput
perf/run: add conf_opts argument to get_var_from_env_or_config()
perf/aggregate: implement codespeed JSON output
perf/aggregate: refactor printing results
perf/aggregate: fix checking ENV{GIT_PERF_SUBSECTION}
Junio C Hamano [Tue, 23 Jan 2018 21:16:37 +0000 (13:16 -0800)]
Merge branch 'ab/perf-grep-threads'
More perf tests for threaded grep
* ab/perf-grep-threads:
perf: amend the grep tests to test grep.threads
Junio C Hamano [Tue, 23 Jan 2018 21:16:37 +0000 (13:16 -0800)]
Merge branch 'sb/diff-blobfind-pickaxe'
"diff" family of commands learned "--find-object=<object-id>" option
to limit the findings to changes that involve the named object.
* sb/diff-blobfind-pickaxe:
diff: use HAS_MULTI_BITS instead of counting bits manually
diff: properly error out when combining multiple pickaxe options
diffcore: add a pickaxe option to find a specific blob
diff: introduce DIFF_PICKAXE_KINDS_MASK
diff: migrate diff_flags.pickaxe_ignore_case to a pickaxe_opts bit
diff.h: make pickaxe_opts an unsigned bit field
Junio C Hamano [Tue, 23 Jan 2018 21:16:37 +0000 (13:16 -0800)]
Merge branch 'jk/abort-clone-with-existing-dest'
"git clone $there $here" is allowed even when here directory exists
as long as it is an empty directory, but the command incorrectly
removed it upon a failure of the operation.
* jk/abort-clone-with-existing-dest:
clone: do not clean up directories we didn't create
clone: factor out dir_exists() helper
t5600: modernize style
t5600: fix outdated comment about unborn HEAD
Junio C Hamano [Tue, 23 Jan 2018 21:16:37 +0000 (13:16 -0800)]
Merge branch 'jc/merge-symlink-ours-theirs'
"git merge -Xours/-Xtheirs" learned to use our/their version when
resolving a conflicting updates to a symbolic link.
* jc/merge-symlink-ours-theirs:
merge: teach -Xours/-Xtheirs to symbolic link merge
Junio C Hamano [Tue, 23 Jan 2018 21:16:36 +0000 (13:16 -0800)]
Merge branch 'rs/lose-leak-pending'
API clean-up around revision traversal.
* rs/lose-leak-pending:
commit: remove unused function clear_commit_marks_for_object_array()
revision: remove the unused flag leak_pending
checkout: avoid using the rev_info flag leak_pending
bundle: avoid using the rev_info flag leak_pending
bisect: avoid using the rev_info flag leak_pending
object: add clear_commit_marks_all()
ref-filter: use clear_commit_marks_many() in do_merge_filter()
commit: use clear_commit_marks_many() in remove_redundant()
commit: avoid allocation in clear_commit_marks_many()
Junio C Hamano [Tue, 23 Jan 2018 21:16:36 +0000 (13:16 -0800)]
Merge branch 'jm/svn-pushmergeinfo-fix'
"git svn dcommit" did not take into account the fact that a
svn+ssh:// URL with a username@ (typically used for pushing) refers
to the same SVN repository without the username@ and failed when
svn.pushmergeinfo option is set.
* jm/svn-pushmergeinfo-fix:
git-svn: fix svn.pushmergeinfo handling of svn+ssh usernames.
Junio C Hamano [Tue, 23 Jan 2018 21:16:28 +0000 (13:16 -0800)]
Merge branch 'nd/ita-wt-renames-in-status'
"git status" after moving a path in the working tree (hence making
it appear "removed") and then adding with the -N option (hence
making that appear "added") detected it as a rename, but did not
report the old and new pathnames correctly.
* nd/ita-wt-renames-in-status:
wt-status.c: handle worktree renames
wt-status.c: rename rename-related fields in wt_status_change_data
wt-status.c: catch unhandled diff status codes
wt-status.c: coding style fix
Use DIFF_DETECT_RENAME for detect_rename assignments
t2203: test status output with porcelain v2 format
Junio C Hamano [Tue, 23 Jan 2018 21:16:28 +0000 (13:16 -0800)]
Merge branch 'dk/describe-all-output-fix'
An old regression in "git describe --all $annotated_tag^0" has been
fixed.
* dk/describe-all-output-fix:
describe: prepend "tags/" when describing tags with embedded name
Junio C Hamano [Mon, 22 Jan 2018 05:14:54 +0000 (21:14 -0800)]
Sync with v2.16.1
* maint:
Git 2.16.1
t5601-clone: test case-conflicting files on case-insensitive filesystem
repository: pre-initialize hash algo pointer
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>
Junio C Hamano [Mon, 22 Jan 2018 05:14:09 +0000 (21:14 -0800)]
Start 2.17 cycle
Signed-off-by: Junio C Hamano <gitster@pobox.com>
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
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>
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>
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>
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
...
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>
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>
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>
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>
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
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 `
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
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>
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>
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>
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>
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
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
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
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`
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>
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>
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>
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)
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
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
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
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
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
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
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
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
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
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>
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
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>
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>
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>
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>
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
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>
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>
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>
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
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>
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>
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
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
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>
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>
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>
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>
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
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
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
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>
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
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
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
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
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
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
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
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
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
Christian Couder [Fri, 5 Jan 2018 09:12:26 +0000 (10:12 +0100)]
perf/run: read GIT_PERF_REPO_NAME from perf.repoName
The GIT_PERF_REPO_NAME env variable is used in
the `aggregate.perl` script to set the 'environment'
field in the JSON Codespeed output.
Let's make it easy to set this variable by setting it
in a config file.
Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Christian Couder [Fri, 5 Jan 2018 09:12:25 +0000 (10:12 +0100)]
perf/run: learn to send output to codespeed server
Let's make it possible to set in a config file the URL of
a codespeed server. And then let's make the `run` script
send the perf test results to this URL at the end of the
tests.
This should make is possible to easily automate the process
of running perf tests and having their results available in
Codespeed.
Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Christian Couder [Fri, 5 Jan 2018 09:12:24 +0000 (10:12 +0100)]
perf/run: learn about perf.codespeedOutput
Let's make it possible to set in a config file the output
format (regular or codespeed) of the perf tests.
Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Christian Couder [Fri, 5 Jan 2018 09:12:23 +0000 (10:12 +0100)]
perf/run: add conf_opts argument to get_var_from_env_or_config()
Let's make it possible to use `git config` type specifiers like
`--int` or `--bool`, so that config values are converted to the
canonical form and easier to use.
This additional argument is now the fourth argument of
get_var_from_env_or_config() instead of the fifth because we
want the default value argument to be unset if it is not
passed, and this is simpler if it is the last argument.
Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Christian Couder [Fri, 5 Jan 2018 09:12:22 +0000 (10:12 +0100)]
perf/aggregate: implement codespeed JSON output
Codespeed (https://github.com/tobami/codespeed/) is an open source
project that can be used to track how some software performs over
time. It stores performance test results in a database and can show
nice graphs and charts on a web interface.
As it can be interesting to use Codespeed to see how Git performance
evolves over time and releases, let's implement a Codespeed output
in "perf/aggregate.perl".
Helped-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Christian Couder [Fri, 5 Jan 2018 09:12:21 +0000 (10:12 +0100)]
perf/aggregate: refactor printing results
As we want to implement another kind of output than
the current output for the perf test results, let's
refactor the existing code that outputs the results
in its own print_default_results() function.
Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Christian Couder [Fri, 5 Jan 2018 09:12:20 +0000 (10:12 +0100)]
perf/aggregate: fix checking ENV{GIT_PERF_SUBSECTION}
The way we check ENV{GIT_PERF_SUBSECTION} could trigger
comparison between undef and "" that may be flagged by
use of strict & warnings. Let's fix that.
Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
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>
Stefan Beller [Thu, 4 Jan 2018 22:50:44 +0000 (14:50 -0800)]
diff: use HAS_MULTI_BITS instead of counting bits manually
This aligns the style to the previous patch.
Signed-off-by: Stefan Beller <sbeller@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Stefan Beller [Thu, 4 Jan 2018 22:50:43 +0000 (14:50 -0800)]
diff: properly error out when combining multiple pickaxe options
In
f506b8e8b5 (git log/diff: add -G<regexp> that greps in the patch text,
2010-08-23) we were hesitant to check if the user requests both -S and
-G at the same time. Now that the pickaxe family also offers --find-object,
which looks slightly more different than the former two, let's add a check
that those are not used at the same time.
Signed-off-by: Stefan Beller <sbeller@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Stefan Beller [Thu, 4 Jan 2018 22:50:42 +0000 (14:50 -0800)]
diffcore: add a pickaxe option to find a specific blob
Sometimes users are given a hash of an object and they want to
identify it further (ex.: Use verify-pack to find the largest blobs,
but what are these? or [1])
One might be tempted to extend git-describe to also work with blobs,
such that `git describe <blob-id>` gives a description as
'<commit-ish>:<path>'. This was implemented at [2]; as seen by the sheer
number of responses (>110), it turns out this is tricky to get right.
The hard part to get right is picking the correct 'commit-ish' as that
could be the commit that (re-)introduced the blob or the blob that
removed the blob; the blob could exist in different branches.
Junio hinted at a different approach of solving this problem, which this
patch implements. Teach the diff machinery another flag for restricting
the information to what is shown. For example:
$ ./git log --oneline --find-object=v2.0.0:Makefile
b2feb64309 Revert the whole "ask curl-config" topic for now
47fbfded53 i18n: only extract comments marked with "TRANSLATORS:"
we observe that the Makefile as shipped with 2.0 was appeared in
v1.9.2-471-g47fbfded53 and in
v2.0.0-rc1-5-gb2feb6430b. The
reason why these commits both occur prior to v2.0.0 are evil
merges that are not found using this new mechanism.
[1] https://stackoverflow.com/questions/223678/which-commit-has-this-blob
[2] https://public-inbox.org/git/
20171028004419.10139-1-sbeller@google.com/
Signed-off-by: Stefan Beller <sbeller@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Stefan Beller [Thu, 4 Jan 2018 22:50:41 +0000 (14:50 -0800)]
diff: introduce DIFF_PICKAXE_KINDS_MASK
Currently the check whether to perform pickaxing is done via checking
`diffopt->pickaxe`, which contains the command line argument that we
want to pickaxe for. Soon we'll introduce a new type of pickaxing, that
will not store anything in the `.pickaxe` field, so let's migrate the
check to be dependent on pickaxe_opts.
It is not enough to just replace the check for pickaxe by pickaxe_opts,
because flags might be set, but pickaxing was not requested ('-i').
To cope with that, introduce a mask to check only for the bits indicating
the modes of operation.
Signed-off-by: Stefan Beller <sbeller@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Stefan Beller [Thu, 4 Jan 2018 22:50:40 +0000 (14:50 -0800)]
diff: migrate diff_flags.pickaxe_ignore_case to a pickaxe_opts bit
Currently flags for pickaxing are found in different places. Unify the
flags into the `pickaxe_opts` field, which will contain any pickaxe related
flags.
Signed-off-by: Stefan Beller <sbeller@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Stefan Beller [Thu, 4 Jan 2018 22:50:39 +0000 (14:50 -0800)]
diff.h: make pickaxe_opts an unsigned bit field
This variable is used as a bit field[1], and as we are about to add more
fields, indicate its usage as a bit field by making it unsigned.
[1] containing the bits
#define DIFF_PICKAXE_ALL 1
#define DIFF_PICKAXE_REGEX 2
#define DIFF_PICKAXE_KIND_S 4
#define DIFF_PICKAXE_KIND_G 8
Signed-off-by: Stefan Beller <sbeller@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
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>
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>
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>
Ævar Arnfjörð Bjarmason [Fri, 29 Dec 2017 22:59:03 +0000 (22:59 +0000)]
perf: amend the grep tests to test grep.threads
Ever since
5b594f457a ("Threaded grep", 2010-01-25) the number of
threads git-grep uses under PTHREADS has been hardcoded to 8, but
there's no performance test to check whether this is an optimal
setting.
Amend the existing tests for the grep engines to support a mode where
this can be tested, e.g.:
GIT_PERF_GREP_THREADS='1 8 16' GIT_PERF_LARGE_REPO=~/g/linux ./run p782*
Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
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>
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>
Æ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>
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>
Jeff King [Tue, 2 Jan 2018 21:11:39 +0000 (16:11 -0500)]
clone: do not clean up directories we didn't create
Once upon a time, git-clone would refuse to write into a
directory that it did not itself create. The cleanup
routines for a failed clone could therefore just remove the
git and worktree dirs completely.
In
55892d2398 (Allow cloning to an existing empty directory,
2009-01-11), we learned to write into an existing directory.
Which means that doing:
mkdir foo
git clone will-fail foo
ends up deleting foo. This isn't a huge catastrophe, since
by definition foo must be empty. But it's somewhat
confusing; we should leave the filesystem as we found it.
Because we know that the only directory we'll write into is
an empty one, we can handle this case by just passing the
KEEP_TOPLEVEL flag to our recursive delete (if we could
write into populated directories, we'd have to keep track of
what we wrote and what we did not, which would be much
harder).
Note that we need to handle the work-tree and git-dir
separately, though, as only one might exist (and the new
tests in t5600 cover all cases).
Reported-by: Stephan Janssen <sjanssen@you-get.com>
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>