b0e0fc2 | Junio C Hamano | 22 March 2018, 21:24:10 UTC | Merge branch 'tg/split-index-fixes' into maint The split-index mode had a few corner case bugs fixed. * tg/split-index-fixes: travis: run tests with GIT_TEST_SPLIT_INDEX split-index: don't write cache tree with null oid entries read-cache: fix reading the shared index for other repos | 22 March 2018, 21:24:10 UTC |
7e44d80 | Junio C Hamano | 22 March 2018, 21:24:10 UTC | Merge branch 'mr/packed-ref-store-fix' into maint Crash fix for a corner case where an error codepath tried to unlock what it did not acquire lock on. * mr/packed-ref-store-fix: files_initial_transaction_commit(): only unlock if locked | 22 March 2018, 21:24:10 UTC |
721dce0 | Junio C Hamano | 22 March 2018, 21:24:09 UTC | Merge branch 'jt/http-redact-cookies' into maint The http tracing code, often used to debug connection issues, learned to redact potentially sensitive information from its output so that it can be more safely sharable. * jt/http-redact-cookies: http: support omitting data from traces http: support cookie redaction when tracing | 22 March 2018, 21:24:09 UTC |
b322219 | Junio C Hamano | 22 March 2018, 21:24:09 UTC | Merge branch 'nd/diff-flush-before-warning' into maint Avoid showing a warning message in the middle of a line of "git diff" output. * nd/diff-flush-before-warning: diff.c: flush stdout before printing rename warnings | 22 March 2018, 21:24:09 UTC |
573ce03 | Junio C Hamano | 22 March 2018, 21:24:08 UTC | Merge branch 'sg/travis-build-during-script-phase' into maint Build the executable in 'script' phase in Travis CI integration, to follow the established practice, rather than during 'before_script' phase. This allows the CI categorize the failures better ('failed' is project's fault, 'errored' is build environment's). * sg/travis-build-during-script-phase: travis-ci: build Git during the 'script' phase | 22 March 2018, 21:24:08 UTC |
38e79b1 | Junio C Hamano | 27 February 2018, 18:43:55 UTC | Merge branch 'ys/bisect-object-id-missing-conversion-fix' into maint Fix for a commented-out code to adjust it to a rather old API change. * ys/bisect-object-id-missing-conversion-fix: bisect: debug: convert struct object to object_id | 27 February 2018, 18:43:55 UTC |
14890e9 | Junio C Hamano | 27 February 2018, 18:43:54 UTC | Merge branch 'sb/submodule-update-reset-fix' into maint When resetting the working tree files recursively, the working tree of submodules are now also reset to match. * sb/submodule-update-reset-fix: submodule: submodule_move_head omits old argument in forced case unpack-trees: oneway_merge to update submodules t/lib-submodule-update.sh: fix test ignoring ignored files in submodules t/lib-submodule-update.sh: clarify test | 27 February 2018, 18:43:54 UTC |
c1ab3b8 | Junio C Hamano | 27 February 2018, 18:43:54 UTC | Merge branch 'ab/commit-m-with-fixup' into maint "git commit --fixup" did not allow "-m<message>" option to be used at the same time; allow it to annotate resulting commit with more text. * ab/commit-m-with-fixup: commit: add support for --fixup <commit> -m"<extra message>" commit doc: document that -c, -C, -F and --fixup with -m error | 27 February 2018, 18:43:54 UTC |
12accdc | Junio C Hamano | 27 February 2018, 18:39:34 UTC | Merge branch 'nd/ita-wt-renames-in-status' into maint "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 | 27 February 2018, 18:39:35 UTC |
ffa9524 | Junio C Hamano | 15 February 2018, 23:21:23 UTC | Git 2.16.2 Signed-off-by: Junio C Hamano <gitster@pobox.com> | 15 February 2018, 23:21:23 UTC |
c93150c | Junio C Hamano | 15 February 2018, 23:18:15 UTC | Merge branch 'ab/doc-cat-file-e-still-shows-errors' into maint Doc update. * ab/doc-cat-file-e-still-shows-errors: cat-file doc: document that -e will return some output | 15 February 2018, 23:18:15 UTC |
d4e528e | Junio C Hamano | 15 February 2018, 23:18:14 UTC | Merge branch 'as/read-tree-prefix-doc-fix' into maint Doc update. * as/read-tree-prefix-doc-fix: doc/read-tree: remove obsolete remark | 15 February 2018, 23:18:14 UTC |
2409e10 | Junio C Hamano | 15 February 2018, 23:18:13 UTC | Merge branch 'nd/add-i-ignore-submodules' into maint "git add -p" was taught to ignore local changes to submodules as they do not interfere with the partial addition of regular changes anyway. * nd/add-i-ignore-submodules: add--interactive: ignore submodule changes except HEAD | 15 February 2018, 23:18:13 UTC |
984c833 | Junio C Hamano | 15 February 2018, 23:18:13 UTC | Merge branch 'tg/stash-with-pathspec-fix' into maint "git stash -- <pathspec>" incorrectly blew away untracked files in the directory that matched the pathspec, which has been corrected. * tg/stash-with-pathspec-fix: stash: don't delete untracked files that match pathspec | 15 February 2018, 23:18:13 UTC |
1363914 | Junio C Hamano | 15 February 2018, 23:18:12 UTC | Merge branch 'jk/abort-clone-with-existing-dest' into maint "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 | 15 February 2018, 23:18:13 UTC |
ff19620 | Junio C Hamano | 15 February 2018, 23:18:12 UTC | Merge branch 'jc/merge-symlink-ours-theirs' into maint "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 | 15 February 2018, 23:18:12 UTC |
e17cec2 | Junio C Hamano | 15 February 2018, 23:18:11 UTC | Merge branch 'rs/lose-leak-pending' into maint 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() | 15 February 2018, 23:18:11 UTC |
04afcc2 | Junio C Hamano | 15 February 2018, 23:18:11 UTC | Merge branch 'jm/svn-pushmergeinfo-fix' into maint "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. | 15 February 2018, 23:18:11 UTC |
468dc22 | Junio C Hamano | 15 February 2018, 23:18:10 UTC | Merge branch 'dk/describe-all-output-fix' into maint 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 | 15 February 2018, 23:18:10 UTC |
af38dee | Junio C Hamano | 15 February 2018, 23:18:09 UTC | Merge branch 'ab/perf-grep-threads' into maint More perf tests for threaded grep * ab/perf-grep-threads: perf: amend the grep tests to test grep.threads | 15 February 2018, 23:18:09 UTC |
8279ed0 | Junio C Hamano | 22 January 2018, 05:14:25 UTC | Git 2.16.1 Signed-off-by: Junio C Hamano <gitster@pobox.com> | 22 January 2018, 05:14:25 UTC |
ea7b5de | Junio C Hamano | 22 January 2018, 05:12:37 UTC | 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 | 22 January 2018, 05:12:37 UTC |
b6947af | Eric Sunshine | 21 January 2018, 08:07:28 UTC | 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> | 22 January 2018, 05:12:17 UTC |
e26f7f1 | brian m. carlson | 19 January 2018, 04:18:25 UTC | 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> | 19 January 2018, 22:23:32 UTC |
81fcb69 | Mathias Rav | 18 January 2018, 13:38:41 UTC | files_initial_transaction_commit(): only unlock if locked Running git clone --single-branch --mirror -b TAGNAME previously triggered the following error message: fatal: multiple updates for ref 'refs/tags/TAGNAME' not allowed. This error condition is handled in files_initial_transaction_commit(). 42c7f7ff9 ("commit_packed_refs(): remove call to `packed_refs_unlock()`", 2017-06-23) introduced incorrect unlocking in the error path of this function, which changes the error message to fatal: BUG: packed_refs_unlock() called when not locked Move the call to packed_refs_unlock() above the "cleanup:" label since the unlocking should only be done in the last error path. Signed-off-by: Mathias Rav <m@git.strova.dk> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 19 January 2018, 22:16:56 UTC |
8ba18e6 | Jonathan Tan | 19 January 2018, 00:28:02 UTC | http: support omitting data from traces GIT_TRACE_CURL provides a way to debug what is being sent and received over HTTP, with automatic redaction of sensitive information. But it also logs data transmissions, which significantly increases the log file size, sometimes unnecessarily. Add an option "GIT_TRACE_CURL_NO_DATA" to allow the user to omit such data transmissions. Signed-off-by: Jonathan Tan <jonathantanmy@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 19 January 2018, 21:06:57 UTC |
8341178 | Jonathan Tan | 19 January 2018, 00:28:01 UTC | http: support cookie redaction when tracing When using GIT_TRACE_CURL, Git already redacts the "Authorization:" and "Proxy-Authorization:" HTTP headers. Extend this redaction to a user-specified list of cookies, specified through the "GIT_REDACT_COOKIES" environment variable. Signed-off-by: Jonathan Tan <jonathantanmy@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 19 January 2018, 21:06:50 UTC |
ae59a4e | Thomas Gummerer | 07 January 2018, 22:30:15 UTC | travis: run tests with GIT_TEST_SPLIT_INDEX Split index mode only has a few dedicated tests, but as the index is involved in nearly every git operation, this doesn't quite cover all the ways repositories with split index can break. To use split index mode throughout the test suite a GIT_TEST_SPLIT_INDEX environment variable can be set, which makes git split the index at random and thus excercises the functionality much more thoroughly. As this is not turned on by default, it is not executed nearly as often as the test suite is run, so occationally breakages slip through. Try to counteract that by running the test suite with GIT_TEST_SPLIT_INDEX mode turned on on travis. To avoid using too many cycles on travis only run split index mode in the linux-gcc target only. The Linux build was chosen over the Mac OS builds because it tends to be much faster to complete. The linux gcc build was chosen over the linux clang build because the linux clang build is the fastest build, so it can serve as an early indicator if something is broken and we want to avoid spending the extra cycles of running the test suite twice for that. Helped-by: Lars Schneider <larsxschneider@gmail.com> Helped-by: Junio C Hamano <gitster@pobox.com> Signed-off-by: Thomas Gummerer <t.gummerer@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 19 January 2018, 18:36:40 UTC |
4bddd98 | Thomas Gummerer | 07 January 2018, 22:30:14 UTC | split-index: don't write cache tree with null oid entries In a96d3cc3f6 ("cache-tree: reject entries with null sha1", 2017-04-21) we made sure that broken cache entries do not get propagated to new trees. Part of that was making sure not to re-use an existing cache tree that includes a null oid. It did so by dropping the cache tree in 'do_write_index()' if one of the entries contains a null oid. In split index mode however, there are two invocations to 'do_write_index()', one for the shared index and one for the split index. The cache tree is only written once, to the split index. As we only loop through the elements that are effectively being written by the current invocation, that may not include the entry with a null oid in the split index (when it is already written to the shared index), where we write the cache tree. Therefore in split index mode we may still end up writing the cache tree, even though there is an entry with a null oid in the index. Fix this by checking for null oids in prepare_to_write_split_index, where we loop the entries of the shared index as well as the entries for the split index. This fixes t7009 with GIT_TEST_SPLIT_INDEX. Also add a new test that's more specifically showing the problem. Signed-off-by: Thomas Gummerer <t.gummerer@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 19 January 2018, 18:36:39 UTC |
a125a22 | Thomas Gummerer | 07 January 2018, 22:30:13 UTC | read-cache: fix reading the shared index for other repos read_index_from() takes a path argument for the location of the index file. For reading the shared index in split index mode however it just ignores that path argument, and reads it from the gitdir of the current repository. This works as long as an index in the_repository is read. Once that changes, such as when we read the index of a submodule, or of a different working tree than the current one, the gitdir of the_repository will no longer contain the appropriate shared index, and git will fail to read it. For example t3007-ls-files-recurse-submodules.sh was broken with GIT_TEST_SPLIT_INDEX set in 188dce131f ("ls-files: use repository object", 2017-06-22), and t7814-grep-recurse-submodules.sh was also broken in a similar manner, probably by introducing struct repository there, although I didn't track down the exact commit for that. be489d02d2 ("revision.c: --indexed-objects add objects from all worktrees", 2017-08-23) breaks with split index mode in a similar manner, not erroring out when it can't read the index, but instead carrying on with pruning, without taking the index of the worktree into account. Fix this by passing an additional gitdir parameter to read_index_from, to indicate where it should look for and read the shared index from. read_cache_from() defaults to using the gitdir of the_repository. As it is mostly a convenience macro, having to pass get_git_dir() for every call seems overkill, and if necessary users can have more control by using read_index_from(). Helped-by: Brandon Williams <bmwill@google.com> Signed-off-by: Thomas Gummerer <t.gummerer@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 19 January 2018, 18:36:34 UTC |
2512f15 | Junio C Hamano | 17 January 2018, 21:06:51 UTC | Git 2.16 Signed-off-by: Junio C Hamano <gitster@pobox.com> | 17 January 2018, 21:06:51 UTC |
e0d5750 | Junio C Hamano | 16 January 2018, 22:49:58 UTC | 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 ... | 16 January 2018, 22:49:58 UTC |
4e056c9 | Nguyễn Thái Ngọc Duy | 16 January 2018, 09:23:49 UTC | diff.c: flush stdout before printing rename warnings The diff output is buffered in a FILE object and could still be partially buffered when we print these warnings (directly to fd 2). The output is messed up like this worktree.c | 138 +- worktree.h warning: inexact rename detection was skipped due to too many files. | 12 +- wrapper.c | 83 +- It gets worse if the warning is printed after color codes for the graph part are already printed. You'll get a warning in green or red. Flush stdout first, so we can get something like this instead: xdiff/xutils.c | 42 +- xdiff/xutils.h | 4 +- 1033 files changed, 150824 insertions(+), 69395 deletions(-) warning: inexact rename detection was skipped due to too many files. Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 16 January 2018, 22:34:20 UTC |
12434ef | Nguyễn Thái Ngọc Duy | 13 January 2018, 12:10:38 UTC | add--interactive: ignore submodule changes except HEAD For 'add -i' and 'add -p', the only action we can take on a dirty submodule entry is update the index with a new value from its HEAD. The content changes inside (from its own index, untracked files...) do not matter, at least until 'git add -i' learns about launching a new interactive add session inside a submodule. Ignore all other submodules changes except HEAD. This reduces the number of entries the user has to check through in 'git add -i', and the number of 'no' they have to answer to 'git add -p' when dirty submodules are present. Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 16 January 2018, 20:32:45 UTC |
c9741bb | Ralf Thielow | 02 January 2018, 09:14:40 UTC | 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> | 15 January 2018, 06:47:30 UTC |
31eaa14 | Ralf Thielow | 16 December 2017, 19:32:16 UTC | l10n: de.po: improve messages when a branch starts to track another ref Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com> | 15 January 2018, 06:47:30 UTC |
0c37383 | SZEDER Gábor | 12 January 2018, 10:47:36 UTC | RelNotes: minor typofix Signed-off-by: SZEDER Gábor <szeder.dev@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 12 January 2018, 18:40:42 UTC |
c6c75c9 | Junio C Hamano | 11 January 2018, 21:20:41 UTC | Git 2.16-rc2 Signed-off-by: Junio C Hamano <gitster@pobox.com> | 11 January 2018, 21:20:41 UTC |
ba82fda | Junio C Hamano | 11 January 2018, 21:16:37 UTC | Merge branch 'jh/object-filtering' Hotfix for a topic already in 'master'. * jh/object-filtering: oidset: don't return value from oidset_init | 11 January 2018, 21:16:37 UTC |
453f3fe | Junio C Hamano | 11 January 2018, 21:16:36 UTC | Merge branch 'tg/worktree-create-tracking' Doc hotfix. * tg/worktree-create-tracking: Documentation/git-worktree.txt: add missing ` | 11 January 2018, 21:16:36 UTC |
91ec08a | Junio C Hamano | 11 January 2018, 21:16:36 UTC | Merge branch 'js/test-with-ws-in-path' Hot fix to a test. * js/test-with-ws-in-path: t3900: add some more quotes | 11 January 2018, 21:16:36 UTC |
1b6d5e8 | Alexander Shopov | 11 January 2018, 20:59:37 UTC | l10n: bg.po: Updated Bulgarian translation (3288t) Signed-off-by: Alexander Shopov <ash@kambanaria.org> | 11 January 2018, 21:02:02 UTC |
50fdf7b | Ralf Thielow | 11 January 2018, 18:18:21 UTC | Documentation/git-worktree.txt: add missing ` Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 11 January 2018, 20:19:40 UTC |
9bd2ce5 | Ævar Arnfjörð Bjarmason | 10 January 2018, 12:55:53 UTC | cat-file doc: document that -e will return some output The -e option added in 7950571ad7 ("A few more options for git-cat-file", 2005-12-03) has always errored out with message on stderr saying that the provided object is malformed, like this: $ git cat-file -e malformed; echo $? fatal: Not a valid object name malformed 128 A reader of this documentation may be misled into thinking that if ! git cat-file -e "$object" [...] as opposed to: if ! git cat-file -e "$object" 2>/dev/null [...] is sufficient to implement a truly silent test that checks whether some arbitrary $object string was both valid, and pointed to an object that exists. Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 10 January 2018, 23:08:14 UTC |
36a6f49 | Beat Bolli | 10 January 2018, 09:58:32 UTC | 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> | 10 January 2018, 23:07:26 UTC |
650b103 | Junio C Hamano | 10 January 2018, 22:01:50 UTC | RelNotes update before -rc2 Signed-off-by: Junio C Hamano <gitster@pobox.com> | 10 January 2018, 22:01:50 UTC |
fac9106 | Junio C Hamano | 10 January 2018, 22:01:31 UTC | Merge branch 'js/perl-path-workaround-in-tests' * js/perl-path-workaround-in-tests: mingw: handle GITPERLLIB in t0021 in a Windows-compatible way | 10 January 2018, 22:01:31 UTC |
a466ef0 | Junio C Hamano | 10 January 2018, 22:01:25 UTC | 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 | 10 January 2018, 22:01:25 UTC |
4cc676c | Junio C Hamano | 10 January 2018, 22:01:25 UTC | 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 | 10 January 2018, 22:01:25 UTC |
bc4efaf | Junio C Hamano | 10 January 2018, 22:01:24 UTC | 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` | 10 January 2018, 22:01:24 UTC |
3306f65 | Johannes Schindelin | 06 January 2018, 22:01:22 UTC | 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> | 10 January 2018, 22:00:54 UTC |
0d08328 | Jiang Xin | 09 January 2018, 01:55:12 UTC | 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> | 10 January 2018, 03:31:55 UTC |
5809aa0 | Jiang Xin | 31 December 2017, 02:50:17 UTC | 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> | 10 January 2018, 03:31:32 UTC |
dfb5c4c | Jiang Xin | 10 January 2018, 03:30:04 UTC | 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) | 10 January 2018, 03:30:04 UTC |
45498f0 | Jiang Xin | 10 January 2018, 03:28:56 UTC | 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 | 10 January 2018, 03:28:56 UTC |
6366dd9 | Junio C Hamano | 09 January 2018, 22:32:57 UTC | Merge branch 'jk/doc-diff-options' Doc update. * jk/doc-diff-options: docs/diff-options: clarify scope of diff-filter types | 09 January 2018, 22:32:57 UTC |
4e51984 | Junio C Hamano | 09 January 2018, 22:32:56 UTC | 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 | 09 January 2018, 22:32:56 UTC |
14c84cd | Junio C Hamano | 09 January 2018, 22:32:55 UTC | 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 | 09 January 2018, 22:32:55 UTC |
d702d5c | Junio C Hamano | 09 January 2018, 22:32:55 UTC | 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 | 09 January 2018, 22:32:55 UTC |
e693224 | Junio C Hamano | 09 January 2018, 22:32:54 UTC | Merge branch 'bc/submitting-patches-in-asciidoc' Doc readability update. * bc/submitting-patches-in-asciidoc: doc/SubmittingPatches: improve text formatting | 09 January 2018, 22:32:54 UTC |
a19caa7 | Junio C Hamano | 09 January 2018, 22:32:54 UTC | 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 | 09 January 2018, 22:32:54 UTC |
a09a5e6 | Junio C Hamano | 09 January 2018, 22:32:53 UTC | 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 | 09 January 2018, 22:32:53 UTC |
2639382 | Junio C Hamano | 09 January 2018, 22:32:53 UTC | 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 | 09 January 2018, 22:32:53 UTC |
30221a3 | Andreas G. Schacker | 09 January 2018, 15:30:34 UTC | doc/read-tree: remove obsolete remark Earlier versions of `git read-tree` required the `--prefix` option value to end with a slash. This restriction was eventually lifted without a corresponding amendment to the documentation. Signed-off-by: Andreas G. Schacker <andreas.schacker@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 09 January 2018, 19:37:09 UTC |
9d4b85b | Peter Krefting | 09 January 2018, 19:10:14 UTC | l10n: sv.po: Update Swedish translation (3288t0f0u) Signed-off-by: Peter Krefting <peter@softwolves.pp.se> | 09 January 2018, 19:10:14 UTC |
02a5f25 | Junio C Hamano | 09 January 2018, 19:07:03 UTC | 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 | 09 January 2018, 19:07:03 UTC |
76756d6 | Johannes Schindelin | 09 January 2018, 14:33:04 UTC | 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> | 09 January 2018, 19:02:40 UTC |
2cd9179 | Johannes Schindelin | 09 January 2018, 14:33:01 UTC | 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> | 09 January 2018, 19:02:40 UTC |
2365e5b | Johannes Schindelin | 09 January 2018, 14:32:58 UTC | 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> | 09 January 2018, 19:02:40 UTC |
6d02c1e | Johannes Schindelin | 09 January 2018, 14:32:54 UTC | 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> | 09 January 2018, 19:02:40 UTC |
f0a6068 | Yasushi SHOJI | 09 January 2018, 11:03:56 UTC | bisect: debug: convert struct object to object_id The commit f2fd0760 ("Convert struct object to object_id", 2015-11-10) converted struct object to object_id but forgot to adjust a few callers in a debug function show_list(), which is ifdef'ed to noop, in bisect.c. Signed-off-by: Yasushi SHOJI <Yasushi.SHOJI@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 09 January 2018, 18:55:32 UTC |
5b1c54a | Junio C Hamano | 09 January 2018, 18:41:37 UTC | 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 | 09 January 2018, 18:41:37 UTC |
f309e8e | Junio C Hamano | 09 January 2018, 18:05:51 UTC | 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> | 09 January 2018, 18:39:30 UTC |
846bb11 | Dimitriy Ryazantcev | 09 January 2018, 10:21:52 UTC | l10n: ru.po: update Russian translation Signed-off-by: Dimitriy Ryazantcev <dimitriy.ryazantcev@gmail.com> | 09 January 2018, 11:22:24 UTC |
4b0d6bd | Changwoo Ryu | 09 January 2018, 02:32:47 UTC | l10n: TEAMS: Add ko team members Add Gwan-gyeong Mun and Sihyeon Jang. Signed-off-by: Changwoo Ryu <cwryu@debian.org> | 09 January 2018, 02:42:03 UTC |
77482d0 | Jiang Xin | 09 January 2018, 01:47:11 UTC | 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 | 09 January 2018, 01:47:11 UTC |
03e7833 | Thomas Gummerer | 07 January 2018, 23:04:04 UTC | 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> | 08 January 2018, 23:24:35 UTC |
3c93b82 | SZEDER Gábor | 08 January 2018, 17:22:14 UTC | travis-ci: build Git during the 'script' phase Ever since we started building and testing Git on Travis CI (522354d70 (Add Travis CI support, 2015-11-27)), we build Git in the 'before_script' phase and run the test suite in the 'script' phase (except in the later introduced 32 bit Linux and Windows build jobs, where we build in the 'script' phase'). Contrarily, the Travis CI practice is to build and test in the 'script' phase; indeed Travis CI's default build command for the 'script' phase of C/C++ projects is: ./configure && make && make test The reason why Travis CI does it this way and why it's a better approach than ours lies in how unsuccessful build jobs are categorized. After something went wrong in a build job, its state can be: - 'failed', if a command in the 'script' phase returned an error. This is indicated by a red 'X' on the Travis CI web interface. - 'errored', if a command in the 'before_install', 'install', or 'before_script' phase returned an error, or the build job exceeded the time limit. This is shown as a red '!' on the web interface. This makes it easier, both for humans looking at the Travis CI web interface and for automated tools querying the Travis CI API, to decide when an unsuccessful build is our responsibility requiring human attention, i.e. when a build job 'failed' because of a compiler error or a test failure, and when it's caused by something beyond our control and might be fixed by restarting the build job, e.g. when a build job 'errored' because a dependency couldn't be installed due to a temporary network error or because the OSX build job exceeded its time limit. The drawback of building Git in the 'before_script' phase is that one has to check the trace log of all 'errored' build jobs, too, to see what caused the error, as it might have been caused by a compiler error. This requires additional clicks and page loads on the web interface and additional complexity and API requests in automated tools. Therefore, move building Git from the 'before_script' phase to the 'script' phase, updating the script's name accordingly as well. 'ci/run-builds.sh' now becomes basically empty, remove it. Several of our build job configurations override our default 'before_script' to do nothing; with this change our default 'before_script' won't do anything, either, so remove those overriding directives as well. Signed-off-by: SZEDER Gábor <szeder.dev@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 08 January 2018, 22:07:41 UTC |
bba067d | Thomas Gummerer | 06 January 2018, 00:24:20 UTC | stash: don't delete untracked files that match pathspec Currently when 'git stash push -- <pathspec>' is used, untracked files that match the pathspec will be deleted, even though they do not end up in a stash anywhere. This is because the original commit introducing the pathspec feature in git stash push (df6bba0937 ("stash: teach 'push' (and 'create_stash') to honor pathspec", 2017-02-28)) used the sequence of 'git reset <pathspec> && git ls-files --modified <pathspec> | git checkout-index && git clean <pathspec>'. The intention was to emulate what 'git reset --hard -- <pathspec>' would do. The call to 'git clean' was supposed to clean up the files that were unstaged by 'git reset'. This would work fine if the pathspec doesn't match any files that were untracked before 'git stash push -- <pathspec>'. However if <pathspec> matches a file that was untracked before invoking the 'stash' command, all untracked files matching the pathspec would inadvertently be deleted as well, even though they wouldn't end up in the stash, and are therefore lost. This behaviour was never what was intended, only blobs that also end up in the stash should be reset to their state in HEAD, previously untracked files should be left alone. To achieve this, first match what's in the index and what's in the working tree by adding all changes to the index, ask diff-index what changed between HEAD and the current index, and then apply that patch in reverse to get rid of the changes, which includes removal of added files and resurrection of removed files. Reported-by: Reid Price <reid.price@gmail.com> Helped-by: Junio C Hamano <gitster@pobox.com> Signed-off-by: Thomas Gummerer <t.gummerer@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 08 January 2018, 21:02:25 UTC |
4a7e1b2 | Changwoo Ryu | 08 January 2018, 01:25:27 UTC | 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> | 08 January 2018, 08:59:35 UTC |
daa8563 | Jiang Xin | 08 January 2018, 02:59:24 UTC | 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 | 08 January 2018, 02:59:24 UTC |
9c315b9 | Jiang Xin | 08 January 2018, 01:17:24 UTC | 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 | 08 January 2018, 01:17:24 UTC |
2acb3d4 | Jean-Noel Avila | 07 January 2018, 17:57:48 UTC | l10n: fr.po 2.16 round 2 Signed-off-by: Jean-Noel Avila <jn.avila@free.fr> | 07 January 2018, 17:57:48 UTC |
521437f | Christopher Díaz Riveros | 07 January 2018, 17:15:35 UTC | l10n: es.po: Spanish translation 2.16.0 round 2 Signed-off-by: Christopher Díaz Riveros <chrisadr@gentoo.org> | 07 January 2018, 17:15:35 UTC |
fe73f3e | Tran Ngoc Quan | 07 January 2018, 01:20:27 UTC | l10n: vi.po(3288t): Updated Vietnamese translation for v2.16.0 round 2 Signed-off-by: Tran Ngoc Quan <vnwildman@gmail.com> | 07 January 2018, 01:20:27 UTC |
005c62f | Jiang Xin | 06 January 2018, 23:50:31 UTC | 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> | 06 January 2018, 23:50:31 UTC |
7398243 | Jiang Xin | 06 January 2018, 23:49:43 UTC | 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 | 06 January 2018, 23:49:43 UTC |
48f2a74 | Jiang Xin | 06 January 2018, 02:26:30 UTC | 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 | 06 January 2018, 02:26:30 UTC |
4a6b2cb | Jiang Xin | 06 January 2018, 02:24:52 UTC | 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 | 06 January 2018, 02:24:52 UTC |
36438dc | Junio C Hamano | 05 January 2018, 21:45:17 UTC | Git 2.16-rc1 Signed-off-by: Junio C Hamano <gitster@pobox.com> | 05 January 2018, 21:45:17 UTC |
8c8ddbd | Junio C Hamano | 05 January 2018, 21:28:11 UTC | 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 | 05 January 2018, 21:28:12 UTC |
bc27a2e | Junio C Hamano | 05 January 2018, 21:28:11 UTC | Merge branch 'jh/memihash-opt' Squelch compiler warning. * jh/memihash-opt: t/helper/test-lazy-name-hash: fix compilation | 05 January 2018, 21:28:11 UTC |
e82bbcb | Junio C Hamano | 05 January 2018, 21:28:11 UTC | 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 | 05 January 2018, 21:28:11 UTC |
0956eaa | Junio C Hamano | 05 January 2018, 21:28:10 UTC | 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 | 05 January 2018, 21:28:10 UTC |
a778ba1 | Junio C Hamano | 05 January 2018, 21:28:10 UTC | Merge branch 'ld/p4-multiple-shelves' "git p4" update. * ld/p4-multiple-shelves: git-p4: update multiple shelved change lists | 05 January 2018, 21:28:10 UTC |
a741e28 | Junio C Hamano | 05 January 2018, 21:28:10 UTC | 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 | 05 January 2018, 21:28:10 UTC |
843d94b | Junio C Hamano | 05 January 2018, 21:28:09 UTC | 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 | 05 January 2018, 21:28:09 UTC |
fa62d03 | Junio C Hamano | 05 January 2018, 21:28:09 UTC | 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 | 05 January 2018, 21:28:09 UTC |
07b747d | Junio C Hamano | 05 January 2018, 21:28:09 UTC | 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 | 05 January 2018, 21:28:09 UTC |
7dcc1f4 | Stefan Beller | 05 January 2018, 20:03:04 UTC | submodule: submodule_move_head omits old argument in forced case When using hard reset or forced checkout with the option to recurse into submodules, the submodules need to be reset, too. It turns out that we need to omit the duplicate old argument to read-tree in all forced cases to omit the 2 way merge and use the more assertive behavior of reading the specific new tree into the index and updating the working tree. Signed-off-by: Stefan Beller <sbeller@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 05 January 2018, 20:35:35 UTC |