Taylor Blau [Wed, 8 Jul 2020 21:10:53 +0000 (17:10 -0400)]
commit.c: don't persist substituted parents when unshallowing
Since
37b9dcabfc (shallow.c: use '{commit,rollback}_shallow_file',
2020-04-22), Git knows how to reset stat-validity checks for the
$GIT_DIR/shallow file, allowing it to change between a shallow and
non-shallow state in the same process (e.g., in the case of 'git fetch
--unshallow').
However, when $GIT_DIR/shallow changes, Git does not alter or remove any
grafts (nor substituted parents) in memory.
This comes up in a "git fetch --unshallow" with fetch.writeCommitGraph
set to true. Ordinarily in a shallow repository (and before
37b9dcabfc,
even in this case), commit_graph_compatible() would return false,
indicating that the repository should not be used to write a
commit-graphs (since commit-graph files cannot represent a shallow
history). But since
37b9dcabfc, in an --unshallow operation that check
succeeds.
Thus even though the repository isn't shallow any longer (that is, we
have all of the objects), the in-core representation of those objects
still has munged parents at the shallow boundaries. When the
commit-graph write proceeds, we use the incorrect parentage, producing
wrong results.
There are two ways for a user to work around this: either (1) set
'fetch.writeCommitGraph' to 'false', or (2) drop the commit-graph after
unshallowing.
One way to fix this would be to reset the parsed object pool entirely
(flushing the cache and thus preventing subsequent reads from modifying
their parents) after unshallowing. That would produce a problem when
callers have a now-stale reference to the old pool, and so this patch
implements a different approach. Instead, attach a new bit to the pool,
'substituted_parent', which indicates if the repository *ever* stored a
commit which had its parents modified (i.e., the shallow boundary
prior to unshallowing).
This bit needs to be sticky because all reads subsequent to modifying a
commit's parents are unreliable when unshallowing. Modify the check in
'commit_graph_compatible' to take this bit into account, and correctly
avoid generating commit-graphs in this case, thus solving the bug.
Helped-by: Derrick Stolee <dstolee@microsoft.com>
Helped-by: Jonathan Nieder <jrnieder@gmail.com>
Reported-by: Jay Conrod <jayconrod@google.com>
Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Taylor Blau <me@ttaylorr.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Taylor Blau [Thu, 23 Apr 2020 00:25:45 +0000 (18:25 -0600)]
shallow.c: use '{commit,rollback}_shallow_file'
In
bd0b42aed3 (fetch-pack: do not take shallow lock unnecessarily,
2019-01-10), the author noted that 'is_repository_shallow' produces
visible side-effect(s) by setting 'is_shallow' and 'shallow_stat'.
This is a problem for e.g., fetching with '--update-shallow' in a
shallow repository with 'fetch.writeCommitGraph' enabled, since the
update to '.git/shallow' will cause Git to think that the repository
isn't shallow when it is, thereby circumventing the commit-graph
compatibility check.
This causes problems in shallow repositories with at least shallow refs
that have at least one ancestor (since the client won't have those
objects, and therefore can't take the reachability closure over commits
when writing a commit-graph).
Address this by introducing thin wrappers over 'commit_lock_file' and
'rollback_lock_file' for use specifically when the lock is held over
'.git/shallow'. These wrappers (appropriately called
'commit_shallow_file' and 'rollback_shallow_file') call into their
respective functions in 'lockfile.h', but additionally reset validity
checks used by the shallow machinery.
Replace each instance of 'commit_lock_file' and 'rollback_lock_file'
with 'commit_shallow_file' and 'rollback_shallow_file' when the lock
being held is over the '.git/shallow' file.
As a result, 'prune_shallow' can now only be called once (since
'check_shallow_file_for_update' will die after calling
'reset_repository_shallow'). But, this is OK since we only call
'prune_shallow' at most once per process.
Helped-by: Jonathan Tan <jonathantanmy@google.com>
Helped-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Taylor Blau <me@ttaylorr.com>
Reviewed-by: Jonathan Tan <jonathantanmy@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Taylor Blau [Fri, 24 Apr 2020 17:11:39 +0000 (11:11 -0600)]
t5537: use test_write_lines and indented heredocs for readability
A number of spots in t5537 use the non-indented heredoc '<<EOF' when
they would benefit from instead using '<<-EOF' or simply
test_write_lines.
In preparation for adding new tests in a good style and being consistent
with the surrounding code, update the existing tests to improve their
readability.
Suggested-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Taylor Blau <me@ttaylorr.com>
Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Sun, 22 Mar 2020 23:50:46 +0000 (16:50 -0700)]
Git 2.26
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Sat, 21 Mar 2020 20:48:54 +0000 (13:48 -0700)]
Merge branch 'en/rebase-backend'
Test fix.
* en/rebase-backend:
t3419: prevent failure when run with EXPENSIVE
Junio C Hamano [Sat, 21 Mar 2020 19:12:28 +0000 (12:12 -0700)]
Merge tag 'l10n-2.26.0-rnd2.1' of git://github.com/git-l10n/git-po.git
l10n-2.26.0-rnd2.1
* tag 'l10n-2.26.0-rnd2.1' of https://github.com/git-l10n/git-po: (28 commits)
l10n: tr.po: change file mode to 644
l10n: de.po: Update German translation for Git 2.26.0
l10n: de.po: add missing space
l10n: tr: Fix a couple of ambiguities
l10n: Update Catalan translation
l10n: sv.po: Update Swedish translation (4839t0f0u)
l10n: zh_CN: Revise v2.26.0 translation
l10n: zh_CN: for git v2.26.0 l10n round 1 and 2
l10n: vi(4839t): Updated Vietnamese translation for v2.26.0
l10n: vi: fix translation + grammar
l10n: zh_TW.po: v2.26.0 round 2 (0 untranslated)
l10n: zh_TW.po: v2.26.0 round 1 (11 untranslated)
l10n: it.po: update the Italian translation for Git 2.26.0 round 2
l10n: es: 2.26.0 round#2
l10n: bg.po: Updated Bulgarian translation (4839t)
l10n: tr: v2.26.0 round 2
l10n: fr : v2.26.0 rnd 2
l10n: git.pot: v2.26.0 round 2 (7 new, 2 removed)
l10n: tr: Add glossary for Turkish translations
l10n: sv.po: Update Swedish translation (4835t0f0u)
...
Jiang Xin [Sat, 21 Mar 2020 10:26:56 +0000 (18:26 +0800)]
l10n: tr.po: change file mode to 644
Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
brian m. carlson [Fri, 20 Mar 2020 21:52:41 +0000 (21:52 +0000)]
t3419: prevent failure when run with EXPENSIVE
This test runs a function which itself runs several assertions. The
last of these assertions cleans up the .git/rebase-apply directory,
since when run with EXPENSIVE set, the function is invoked a second time
to run the same tests with a larger data set.
However, as of
2ac0d6273f ("rebase: change the default backend from "am"
to "merge"", 2020-02-15), the default backend of rebase has changed, and
cleaning up the rebase-apply directory has no effect: it no longer
exists, since we're using rebase-merge instead.
Since we don't really care which rebase backend is in use, let's just
use the command "git rebase --quit", which will do the right thing
regardless.
Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Matthias Rüster [Sat, 14 Mar 2020 21:10:16 +0000 (22:10 +0100)]
l10n: de.po: Update German translation for Git 2.26.0
Signed-off-by: Matthias Rüster <matthias.ruester@gmail.com>
Reviewed-by: Ralf Thielow <ralf.thielow@gmail.com>
Reviewed-by: Phillip Szelat <phillip.szelat@gmail.com>
Ralf Thielow [Tue, 21 Jan 2020 16:30:48 +0000 (17:30 +0100)]
l10n: de.po: add missing space
Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>
Junio C Hamano [Thu, 19 Mar 2020 23:06:51 +0000 (16:06 -0700)]
Merge https://github.com/prati0100/git-gui
* 'master' of https://github.com/prati0100/git-gui:
git-gui: create a new namespace for chord script evaluation
git-gui: reduce Tcl version requirement from 8.6 to 8.5
git-gui--askpass: coerce answers to UTF-8 on Windows
git-gui: fix error popup when doing blame -> "Show History Context"
git-gui: add missing close bracket
git-gui: update German translation
git-gui: extend translation glossary template with more terms
git-gui: update pot template and German translation to current source code
Emir Sarı [Thu, 19 Mar 2020 22:36:24 +0000 (01:36 +0300)]
l10n: tr: Fix a couple of ambiguities
Signed-off-by: Emir Sarı <bitigchi@me.com>
Pratyush Yadav [Thu, 19 Mar 2020 15:59:19 +0000 (21:29 +0530)]
Merge branch 'py/remove-tcloo'
Reduce the Tcl version requirement to 8.5 to allow git-gui to run on
MacOS distributions like High Sierra. While here, fix a potential
variable name collision.
* py/remove-tcloo:
git-gui: create a new namespace for chord script evaluation
git-gui: reduce Tcl version requirement from 8.6 to 8.5
Elijah Newren [Wed, 18 Mar 2020 21:18:26 +0000 (21:18 +0000)]
RelNotes/2.26.0: fix various typos
Signed-off-by: Elijah Newren <newren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jordi Mas [Wed, 18 Mar 2020 19:24:20 +0000 (20:24 +0100)]
l10n: Update Catalan translation
Signed-off-by: Jordi Mas <jmas@softcatala.org>
Junio C Hamano [Tue, 17 Mar 2020 22:16:14 +0000 (15:16 -0700)]
Sync with Git 2.25.2
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Tue, 17 Mar 2020 21:54:02 +0000 (14:54 -0700)]
Git 2.25.2
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Beat Bolli [Tue, 17 Mar 2020 15:36:05 +0000 (16:36 +0100)]
unicode: update the width tables to Unicode 13.0
Now that Unicode 13.0 has been announced[0], update the character
width tables to the new version.
[0] https://home.unicode.org/announcing-the-unicode-standard-version-13-0/
Signed-off-by: Beat Bolli <dev+git@drbeat.li>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Tue, 17 Mar 2020 22:02:26 +0000 (15:02 -0700)]
Merge branch 'js/ci-windows-update' into maint
Updates to the CI settings.
* js/ci-windows-update:
Azure Pipeline: switch to the latest agent pools
ci: prevent `perforce` from being quarantined
t/lib-httpd: avoid using macOS' sed
Junio C Hamano [Tue, 17 Mar 2020 22:02:26 +0000 (15:02 -0700)]
Merge branch 'jk/run-command-formatfix' into maint
Code style cleanup.
* jk/run-command-formatfix:
run-command.h: fix mis-indented struct member
Junio C Hamano [Tue, 17 Mar 2020 22:02:26 +0000 (15:02 -0700)]
Merge branch 'jk/doc-credential-helper' into maint
Docfix.
* jk/doc-credential-helper:
doc: move credential helper info into gitcredentials(7)
Junio C Hamano [Tue, 17 Mar 2020 22:02:25 +0000 (15:02 -0700)]
Merge branch 'js/mingw-open-in-gdb' into maint
Dev support.
* js/mingw-open-in-gdb:
mingw: add a helper function to attach GDB to the current process
Junio C Hamano [Tue, 17 Mar 2020 22:02:25 +0000 (15:02 -0700)]
Merge branch 'js/test-unc-fetch' into maint
Test updates.
* js/test-unc-fetch:
t5580: test cloning without file://, test fetching via UNC paths
Junio C Hamano [Tue, 17 Mar 2020 22:02:25 +0000 (15:02 -0700)]
Merge branch 'js/test-write-junit-xml-fix' into maint
Testfix.
* js/test-write-junit-xml-fix:
tests: fix --write-junit-xml with subshells
Junio C Hamano [Tue, 17 Mar 2020 22:02:25 +0000 (15:02 -0700)]
Merge branch 'en/simplify-check-updates-in-unpack-trees' into maint
Code simplification.
* en/simplify-check-updates-in-unpack-trees:
unpack-trees: exit check_updates() early if updates are not wanted
Junio C Hamano [Tue, 17 Mar 2020 22:02:24 +0000 (15:02 -0700)]
Merge branch 'jc/doc-single-h-is-for-help' into maint
Both "git ls-remote -h" and "git grep -h" give short usage help,
like any other Git subcommand, but it is not unreasonable to expect
that the former would behave the same as "git ls-remote --head"
(there is no other sensible behaviour for the latter). The
documentation has been updated in an attempt to clarify this.
* jc/doc-single-h-is-for-help:
Documentation: clarify that `-h` alone stands for `help`
Junio C Hamano [Tue, 17 Mar 2020 22:02:24 +0000 (15:02 -0700)]
Merge branch 'hd/show-one-mergetag-fix' into maint
"git show" and others gave an object name in raw format in its
error output, which has been corrected to give it in hex.
* hd/show-one-mergetag-fix:
show_one_mergetag: print non-parent in hex form.
Junio C Hamano [Tue, 17 Mar 2020 22:02:23 +0000 (15:02 -0700)]
Merge branch 'am/mingw-poll-fix' into maint
MinGW's poll() emulation has been improved.
* am/mingw-poll-fix:
mingw: workaround for hangs when sending STDIN
Junio C Hamano [Tue, 17 Mar 2020 22:02:23 +0000 (15:02 -0700)]
Merge branch 'hi/gpg-use-check-signature' into maint
"git merge signed-tag" while lacking the public key started to say
"No signature", which was utterly wrong. This regression has been
reverted.
* hi/gpg-use-check-signature:
Revert "gpg-interface: prefer check_signature() for GPG verification"
Junio C Hamano [Tue, 17 Mar 2020 22:02:23 +0000 (15:02 -0700)]
Merge branch 'ds/partial-clone-fixes' into maint
Fix for a bug revealed by a recent change to make the protocol v2
the default.
* ds/partial-clone-fixes:
partial-clone: avoid fetching when looking for objects
partial-clone: demonstrate bugs in partial fetch
Junio C Hamano [Tue, 17 Mar 2020 22:02:23 +0000 (15:02 -0700)]
Merge branch 'en/t3433-rebase-stat-dirty-failure' into maint
The merge-recursive machinery failed to refresh the cache entry for
a merge result in a couple of places, resulting in an unnecessary
merge failure, which has been fixed.
* en/t3433-rebase-stat-dirty-failure:
merge-recursive: fix the refresh logic in update_file_flags
t3433: new rebase testcase documenting a stat-dirty-like failure
Junio C Hamano [Tue, 17 Mar 2020 22:02:23 +0000 (15:02 -0700)]
Merge branch 'en/check-ignore' into maint
"git check-ignore" did not work when the given path is explicitly
marked as not ignored with a negative entry in the .gitignore file.
* en/check-ignore:
check-ignore: fix documentation and implementation to match
Junio C Hamano [Tue, 17 Mar 2020 22:02:22 +0000 (15:02 -0700)]
Merge branch 'jk/push-option-doc-markup-fix' into maint
Doc markup fix.
* jk/push-option-doc-markup-fix:
doc/config/push: use longer "--" line for preformatted example
Junio C Hamano [Tue, 17 Mar 2020 22:02:22 +0000 (15:02 -0700)]
Merge branch 'jk/doc-diff-parallel' into maint
Update to doc-diff.
* jk/doc-diff-parallel:
doc-diff: use single-colon rule in rendering Makefile
Junio C Hamano [Tue, 17 Mar 2020 22:02:22 +0000 (15:02 -0700)]
Merge branch 'jh/notes-fanout-fix' into maint
The code to automatically shrink the fan-out in the notes tree had
an off-by-one bug, which has been killed.
* jh/notes-fanout-fix:
notes.c: fix off-by-one error when decreasing notes fanout
t3305: check notes fanout more carefully and robustly
Junio C Hamano [Tue, 17 Mar 2020 22:02:21 +0000 (15:02 -0700)]
Merge branch 'jk/index-pack-dupfix' into maint
The index-pack code now diagnoses a bad input packstream that
records the same object twice when it is used as delta base; the
code used to declare a software bug when encountering such an
input, but it is an input error.
* jk/index-pack-dupfix:
index-pack: downgrade twice-resolved REF_DELTA to die()
Junio C Hamano [Tue, 17 Mar 2020 22:02:21 +0000 (15:02 -0700)]
Merge branch 'js/rebase-i-with-colliding-hash' into maint
"git rebase -i" identifies existing commits in its todo file with
their abbreviated object name, which could become ambigous as it
goes to create new commits, and has a mechanism to avoid ambiguity
in the main part of its execution. A few other cases however were
not covered by the protection against ambiguity, which has been
corrected.
* js/rebase-i-with-colliding-hash:
rebase -i: also avoid SHA-1 collisions with missingCommitsCheck
rebase -i: re-fix short SHA-1 collision
parse_insn_line(): improve error message when parsing failed
Junio C Hamano [Tue, 17 Mar 2020 22:02:21 +0000 (15:02 -0700)]
Merge branch 'jk/clang-sanitizer-fixes' into maint
C pedantry ;-) fix.
* jk/clang-sanitizer-fixes:
obstack: avoid computing offsets from NULL pointer
xdiff: avoid computing non-zero offset from NULL pointer
avoid computing zero offsets from NULL pointer
merge-recursive: use subtraction to flip stage
merge-recursive: silence -Wxor-used-as-pow warning
Junio C Hamano [Tue, 17 Mar 2020 22:02:21 +0000 (15:02 -0700)]
Merge branch 'dt/submodule-rm-with-stale-cache' into maint
Running "git rm" on a submodule failed unnecessarily when
.gitmodules is only cache-dirty, which has been corrected.
* dt/submodule-rm-with-stale-cache:
git rm submodule: succeed if .gitmodules index stat info is zero
Junio C Hamano [Tue, 17 Mar 2020 22:02:21 +0000 (15:02 -0700)]
Merge branch 'pb/recurse-submodule-in-worktree-fix' into maint
The "--recurse-submodules" option of various subcommands did not
work well when run in an alternate worktree, which has been
corrected.
* pb/recurse-submodule-in-worktree-fix:
submodule.c: use get_git_dir() instead of get_git_common_dir()
t2405: clarify test descriptions and simplify test
t2405: use git -C and test_commit -C instead of subshells
t7410: rename to t2405-worktree-submodule.sh
Junio C Hamano [Tue, 17 Mar 2020 22:02:20 +0000 (15:02 -0700)]
Merge branch 'es/outside-repo-errmsg-hints' into maint
An earlier update to show the location of working tree in the error
message did not consider the possibility that a git command may be
run in a bare repository, which has been corrected.
* es/outside-repo-errmsg-hints:
prefix_path: show gitdir if worktree unavailable
prefix_path: show gitdir when arg is outside repo
Junio C Hamano [Tue, 17 Mar 2020 22:02:20 +0000 (15:02 -0700)]
Merge branch 'js/builtin-add-i-cmds' into maint
Minor bugfixes to "git add -i" that has recently been rewritten in C.
* js/builtin-add-i-cmds:
built-in add -i: accept open-ended ranges again
built-in add -i: do not try to `patch`/`diff` an empty list of files
Peter Krefting [Tue, 17 Mar 2020 17:33:22 +0000 (18:33 +0100)]
l10n: sv.po: Update Swedish translation (4839t0f0u)
Signed-off-by: Peter Krefting <peter@softwolves.pp.se>
Pratyush Yadav [Sat, 14 Mar 2020 21:38:36 +0000 (03:08 +0530)]
git-gui: create a new namespace for chord script evaluation
Evaluating the script in the same namespace as the chord itself creates
potential for variable name collision. And in that case the script would
unknowingly use the chord's variables.
For example, say the script has a variable called 'is_completed', which
also exists in the chord's namespace. The script then calls 'eval' and
sets 'is_completed' to 1 thinking it is setting its own variable,
completely unaware of how the chord works behind the scenes. This leads
to the chord never actually executing because it sees 'is_completed' as
true and thinks it has already completed.
Avoid the potential collision by creating a separate namespace for the
script that is a child of the chord's namespace.
Signed-off-by: Pratyush Yadav <me@yadavpratyush.com>
Pratyush Yadav [Mon, 17 Feb 2020 15:39:29 +0000 (21:09 +0530)]
git-gui: reduce Tcl version requirement from 8.6 to 8.5
On some MacOS distributions like High Sierra, Tcl 8.5 is shipped by
default. This makes git-gui error out at startup because of the version
mismatch.
The only part that requires Tcl 8.6 is SimpleChord, which depends on
TclOO. So, don't use it and use our homegrown class.tcl instead.
This means some slight syntax changes. Since class.tcl doesn't have an
"unknown" method like TclOO does, we can't just call '$note', but have
to use '$note activate' instead. The constructor now needs a proper
namespace qualifier. Update the documentation to reflect the new syntax.
As of now, the only part of git-gui that needs Tcl 8.5 is a call to
'apply' in lib/index.tcl::lambda. Keep using it until someone shows up
shouting that their OS ships with 8.4 only. Then we would have to look
into implementing it in pure Tcl.
Signed-off-by: Pratyush Yadav <me@yadavpratyush.com>
Fangyi Zhou [Wed, 11 Mar 2020 11:55:43 +0000 (11:55 +0000)]
l10n: zh_CN: Revise v2.26.0 translation
Signed-off-by: Fangyi Zhou <me@fangyi.io>
Reviewed-by: 依云 <lilydjwg@gmail.com>
Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
Jiang Xin [Mon, 30 Dec 2019 00:56:49 +0000 (08:56 +0800)]
l10n: zh_CN: for git v2.26.0 l10n round 1 and 2
Translate 79 new messages (4839t0f0u) for git 2.26.0.
Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
Junio C Hamano [Mon, 16 Mar 2020 19:46:32 +0000 (12:46 -0700)]
Git 2.26-rc2
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Mon, 16 Mar 2020 19:43:30 +0000 (12:43 -0700)]
Merge branch 'en/test-cleanup'
Test fixes.
* en/test-cleanup:
t6022, t6046: fix flaky files-are-updated checks
Junio C Hamano [Mon, 16 Mar 2020 19:43:29 +0000 (12:43 -0700)]
Merge branch 'es/outside-repo-errmsg-hints'
An earlier update to show the location of working tree in the error
message did not consider the possibility that a git command may be
run in a bare repository, which has been corrected.
* es/outside-repo-errmsg-hints:
prefix_path: show gitdir if worktree unavailable
Tran Ngoc Quan [Mon, 16 Mar 2020 01:55:40 +0000 (08:55 +0700)]
l10n: vi(4839t): Updated Vietnamese translation for v2.26.0
Signed-off-by: Tran Ngoc Quan <vnwildman@gmail.com>
Đoàn Trần Công Danh [Mon, 13 Jan 2020 15:48:39 +0000 (22:48 +0700)]
l10n: vi: fix translation + grammar
- context should be translated to ngữ cảnh instead of nội dung
- add missing accents
- switch adjective and secondary objects position:
* The formatted English text will be "To remove '+/-' lines",
it should be translated to "Để bỏ dòng bắt đầu với '+/-'
Signed-off-by: Đoàn Trần Công Danh <congdanhqx@gmail.com>
Emily Shaffer [Tue, 3 Mar 2020 04:05:06 +0000 (20:05 -0800)]
prefix_path: show gitdir if worktree unavailable
If there is no worktree at present, we can still hint the user about
Git's current directory by showing them the absolute path to the Git
directory. Even though the Git directory doesn't make it as easy to
locate the worktree in question, it can still help a user figure out
what's going on while developing a script.
This fixes a segmentation fault introduced in
e0020b2f
("prefix_path: show gitdir when arg is outside repo", 2020-02-14).
Signed-off-by: Emily Shaffer <emilyshaffer@google.com>
[jc: added minimum tests, with help from Szeder Gábor]
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Yi-Jyun [Fri, 13 Mar 2020 17:12:19 +0000 (01:12 +0800)]
l10n: zh_TW.po: v2.26.0 round 2 (0 untranslated)
Revision 2.
Signed-off-by: Yi-Jyun Pan <pan93412@gmail.com>
Yi-Jyun [Mon, 9 Mar 2020 17:33:00 +0000 (01:33 +0800)]
l10n: zh_TW.po: v2.26.0 round 1 (11 untranslated)
Signed-off-by: Yi-Jyun Pan <pan93412@gmail.com>
Pratyush Yadav [Sat, 14 Mar 2020 17:22:43 +0000 (22:52 +0530)]
Merge branch 'js/askpass-coerce-utf8'
Askpass can now send non-ASCII to Git on Windows.
* js/askpass-coerce-utf8:
git-gui--askpass: coerce answers to UTF-8 on Windows
Luke Bonanomi [Thu, 12 Mar 2020 21:31:50 +0000 (21:31 +0000)]
git-gui--askpass: coerce answers to UTF-8 on Windows
This addresses the issue where Git for Windows asks the user for a
password, no credential helper is available, and then Git fails to pick
up non-ASCII characters from the Git GUI helper.
This can be verified e.g. via
echo host=http://abc.com |
git -c credential.helper= credential fill
and then pasting some umlauts.
The underlying reason is that Git for Windows tries to communicate using
the UTF-8 encoding no matter what the actual current code page is. So
let's indulge Git for Windows and do use that encoding.
This fixes https://github.com/git-for-windows/git/issues/2215
Signed-off-by: Luke Bonanomi <lbonanomi@gmail.com>
Helped-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Pratyush Yadav <me@yadavpratyush.com>
Pratyush Yadav [Sat, 14 Mar 2020 17:11:45 +0000 (22:41 +0530)]
Merge branch 'py/blame-status-error'
Fixes an error popup in blame because of a missing closing bracket.
* py/blame-status-error:
git-gui: fix error popup when doing blame -> "Show History Context"
Elijah Newren [Fri, 13 Mar 2020 20:03:02 +0000 (20:03 +0000)]
t6022, t6046: fix flaky files-are-updated checks
Several tests wanted to verify that files were actually modified by a
merge, which it would do by checking that the mtime was updated. In
order to avoid problems with the merge completing so fast that the mtime
at the beginning and end of the operation was the same, these tests
would first set the mtime of a file to something "old". This "old"
value was usually determined as current system clock minus one second,
truncated to the nearest integer. Unfortunately, it appears the system
clock and filesystem clock are different and comparing across the two
runs into race problems resulting in flaky tests.
From https://stackoverflow.com/questions/
14392975/timestamp-accuracy-on-ext4-sub-millsecond:
date will call the gettimeofday system call which will always return
the most accurate time available based on the cached kernel time,
adjusted by the CPU cycle time if available to give nanosecond
resolution. The timestamps stored in the file system however, are
only based on the cached kernel time. ie The time calculated at the
last timer interrupt.
and from https://apenwarr.ca/log/
20181113:
Does mtime get set to >= the current time?
No, this depends on clock granularity. For example, gettimeofday()
can return times in microseconds on my system, but ext4 rounds
timestamps down to the previous ~10ms (but not exactly 10ms)
increment, with the surprising result that a newly-created file is
almost always created in the past:
$ python -c "
import os, time
t0 = time.time()
open('testfile', 'w').close()
print os.stat('testfile').st_mtime - t0
"
-0.
00234484672546
So, instead of trying to compare across what are effectively two
different clocks, just avoid using the system clock. Any new updates to
files have to give an mtime at least as big as what is already in the
file, so we could define "old" as one second before the mtime found in
the file before the merge starts. But, to avoid problems with leap
seconds, ntp updates, filesystems that only provide two second
resolution, and other such weirdness, let's just pick an hour before the
mtime found in the file before the merge starts.
Also, clarify in one test where we check the mtime of different files
that it really was intentional. I totally forgot the reasons for that
and assumed it was a bug when asked.
Reported-by: SZEDER Gábor <szeder.dev@gmail.com>
Signed-off-by: Elijah Newren <newren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Thu, 12 Mar 2020 21:36:00 +0000 (14:36 -0700)]
Hopefully the final batch before -rc2
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Thu, 12 Mar 2020 21:28:01 +0000 (14:28 -0700)]
Merge branch 'en/rebase-backend'
Band-aid fixes for two fallouts from switching the default "rebase"
backend.
* en/rebase-backend:
git-rebase.txt: highlight backend differences with commit rewording
sequencer: clear state upon dropping a become-empty commit
i18n: unmark a message in rebase.c
Jiang Xin [Thu, 12 Mar 2020 10:41:56 +0000 (18:41 +0800)]
Merge branch of github.com:ChrisADR/git-po into master
* 'next' of github.com:ChrisADR/git-po:
l10n: es: 2.26.0 round#2
Alessandro Menti [Thu, 12 Mar 2020 06:52:58 +0000 (07:52 +0100)]
l10n: it.po: update the Italian translation for Git 2.26.0 round 2
Signed-off-by: Alessandro Menti <alessandro.menti@alessandromenti.it>
Christopher Diaz Riveros [Thu, 12 Mar 2020 04:19:58 +0000 (23:19 -0500)]
l10n: es: 2.26.0 round#2
Signed-off-by: Christopher Diaz Riveros <chrisadr@gentoo.org>
Jiang Xin [Thu, 12 Mar 2020 02:17:22 +0000 (10:17 +0800)]
Merge branch of github.com:alshopov/git-po into master
* 'git-l10n_git-po_master' of github.com:alshopov/git-po:
l10n: bg.po: Updated Bulgarian translation (4839t)
Jiang Xin [Thu, 12 Mar 2020 02:15:49 +0000 (10:15 +0800)]
Merge branch of github.com:bitigchi/git-po into master
* 'tr_translations_2.26.1' of github.com:bitigchi/git-po:
l10n: tr: v2.26.0 round 2
Alexander Shopov [Wed, 11 Mar 2020 23:04:37 +0000 (00:04 +0100)]
l10n: bg.po: Updated Bulgarian translation (4839t)
Signed-off-by: Alexander Shopov <ash@kambanaria.org>
Emir Sarı [Wed, 11 Mar 2020 21:09:51 +0000 (00:09 +0300)]
l10n: tr: v2.26.0 round 2
Signed-off-by: Emir Sarı <bitigchi@me.com>
Jean-Noël Avila [Wed, 11 Mar 2020 20:19:25 +0000 (21:19 +0100)]
l10n: fr : v2.26.0 rnd 2
Signed-off-by: Jean-Noël Avila <jn.avila@free.fr>
Elijah Newren [Wed, 11 Mar 2020 15:30:23 +0000 (15:30 +0000)]
git-rebase.txt: highlight backend differences with commit rewording
As noted by Junio:
Back when "git am" was written, it was not considered a bug that the
"git am --resolved" option did not offer the user a chance to update
the log message to match the adjustment of the code the user made,
but honestly, I'd have to say that it is a bug in "git am" in that
over time it wasn't adjusted to the new world order where we
encourage users to describe what they did when the automation
hiccuped by opening an editor. These days, even when automation
worked well (e.g. a clean auto-merge with "git merge"), we open an
editor. The world has changed, and so should the expectations.
Junio also suggested providing a workaround such as allowing --no-edit
together with git rebase --continue, but that should probably be done in
a patch after the git-2.26.0 release. For now, just document the known
difference in the Behavioral Differences section.
Signed-off-by: Elijah Newren <newren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Elijah Newren [Wed, 11 Mar 2020 15:30:22 +0000 (15:30 +0000)]
sequencer: clear state upon dropping a become-empty commit
In commit
e98c4269c8 ("rebase (interactive-backend): fix handling of
commits that become empty", 2020-02-15), the merge backend was changed
to drop commits that did not start empty but became so after being
applied (because their changes were a subset of what was already
upstream). This new code path did not need to go through the process of
creating a commit, since we were dropping the commit instead.
Unfortunately, this also means we bypassed the clearing of the
CHERRY_PICK_HEAD and MERGE_MSG files, which if there were no further
commits to cherry-pick would mean that the rebase would end but assume
there was still an operation in progress. Ensure that we clear such
state files when we decide to drop the commit.
Signed-off-by: Elijah Newren <newren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jiang Xin [Wed, 11 Mar 2020 06:55:27 +0000 (14:55 +0800)]
i18n: unmark a message in rebase.c
Commit
v2.25.0-4-ge98c4269c8 (rebase (interactive-backend): fix handling
of commits that become empty, 2020-02-15) marked "{drop,keep,ask}" for
translation, but this message should not be changed.
Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Wed, 11 Mar 2020 17:58:16 +0000 (10:58 -0700)]
Merge branch 'ds/sparse-add'
Test fix.
* ds/sparse-add:
t1091: don't grep for `strerror()` string
Junio C Hamano [Wed, 11 Mar 2020 17:58:16 +0000 (10:58 -0700)]
Merge branch 'dr/push-remote-ref-update'
Code clean-up.
* dr/push-remote-ref-update:
remote: drop "explicit" parameter from remote_ref_for_branch()
Junio C Hamano [Wed, 11 Mar 2020 17:58:16 +0000 (10:58 -0700)]
Merge branch 'jc/doc-single-h-is-for-help'
Both "git ls-remote -h" and "git grep -h" give short usage help,
like any other Git subcommand, but it is not unreasonable to expect
that the former would behave the same as "git ls-remote --head"
(there is no other sensible behaviour for the latter). The
documentation has been updated in an attempt to clarify this.
* jc/doc-single-h-is-for-help:
Documentation: clarify that `-h` alone stands for `help`
Jiang Xin [Wed, 11 Mar 2020 06:59:57 +0000 (14:59 +0800)]
l10n: git.pot: v2.26.0 round 2 (7 new, 2 removed)
Generate po/git.pot from v2.26.0-rc1 for git v2.26.0 l10n round 2.
Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
Jiang Xin [Wed, 11 Mar 2020 06:59:05 +0000 (14:59 +0800)]
Merge branch 'master' of github.com:git/git into git-po-master
* 'master' of github.com:git/git: (27 commits)
Git 2.26-rc1
remote-curl: show progress for fetches over dumb HTTP
show_one_mergetag: print non-parent in hex form.
config.mak.dev: re-enable -Wformat-zero-length
rebase-interactive.c: silence format-zero-length warnings
mingw: workaround for hangs when sending STDIN
t6020: new test with interleaved lexicographic ordering of directories
t6022, t6046: test expected behavior instead of testing a proxy for it
t3035: prefer test_must_fail to bash negation for git commands
t6020, t6022, t6035: update merge tests to use test helper functions
t602[1236], t6034: modernize test formatting
merge-recursive: apply collision handling unification to recursive case
completion: add diff --color-moved[-ws]
t1050: replace test -f with test_path_is_file
am: support --show-current-patch=diff to retrieve .git/rebase-apply/patch
am: support --show-current-patch=raw as a synonym for--show-current-patch
am: convert "resume" variable to a struct
parse-options: convert "command mode" to a flag
parse-options: add testcases for OPT_CMDMODE()
stash push: support the --pathspec-from-file option
...
Emir Sarı [Tue, 10 Mar 2020 20:31:48 +0000 (23:31 +0300)]
l10n: tr: Add glossary for Turkish translations
Signed-off-by: Emir Sarı <bitigchi@me.com>
Jiang Xin [Tue, 10 Mar 2020 06:28:22 +0000 (14:28 +0800)]
Merge branch 'master' of github.com:nafmo/git-l10n-sv
* 'master' of github.com:nafmo/git-l10n-sv:
l10n: sv.po: Update Swedish translation (4835t0f0u)
Jiang Xin [Tue, 10 Mar 2020 06:26:58 +0000 (14:26 +0800)]
Merge branch 'fr_2.26.0' of github.com:jnavila/git
* 'fr_2.26.0' of github.com:jnavila/git:
l10n: fr v2.26.0 rnd1
Peter Krefting [Mon, 9 Mar 2020 19:57:46 +0000 (20:57 +0100)]
l10n: sv.po: Update Swedish translation (4835t0f0u)
Signed-off-by: Peter Krefting <peter@softwolves.pp.se>
Emir Sarı [Mon, 9 Mar 2020 18:41:28 +0000 (21:41 +0300)]
l10n: tr: Add Turkish translations
Signed-off-by: Emir Sarı <bitigchi@me.com>
Emir Sarı [Mon, 9 Mar 2020 18:39:08 +0000 (21:39 +0300)]
l10n: tr: Add Turkish translation team info
Signed-off-by: Emir Sarı <bitigchi@me.com>
Junio C Hamano [Mon, 9 Mar 2020 18:20:59 +0000 (11:20 -0700)]
Git 2.26-rc1
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Mon, 9 Mar 2020 18:21:21 +0000 (11:21 -0700)]
Merge branch 'rs/show-progress-in-dumb-http-fetch'
"git fetch" over HTTP walker protocol did not show any progress
output. We inherently do not know how much work remains, but still
we can show something not to bore users.
* rs/show-progress-in-dumb-http-fetch:
remote-curl: show progress for fetches over dumb HTTP
Junio C Hamano [Mon, 9 Mar 2020 18:21:21 +0000 (11:21 -0700)]
Merge branch 'hd/show-one-mergetag-fix'
"git show" and others gave an object name in raw format in its
error output, which has been corrected to give it in hex.
* hd/show-one-mergetag-fix:
show_one_mergetag: print non-parent in hex form.
Junio C Hamano [Mon, 9 Mar 2020 18:21:21 +0000 (11:21 -0700)]
Merge branch 'rt/format-zero-length-fix'
Recently we inadvertently added a few instances of using 0-width
format string to functions that we mark as printf-like without any
developers noticing. The root cause was that the compiler warning
that is triggered by this is almost always useless and we disabled
the warning in our developer builds, but not for general public.
The new instances have been corrected, and the warning has been
resurrected in the developer builds.
* rt/format-zero-length-fix:
config.mak.dev: re-enable -Wformat-zero-length
rebase-interactive.c: silence format-zero-length warnings
Junio C Hamano [Mon, 9 Mar 2020 18:21:20 +0000 (11:21 -0700)]
Merge branch 'am/mingw-poll-fix'
MinGW's poll() emulation has been improved.
* am/mingw-poll-fix:
mingw: workaround for hangs when sending STDIN
Junio C Hamano [Mon, 9 Mar 2020 18:21:20 +0000 (11:21 -0700)]
Merge branch 'en/test-cleanup'
Test cleanup.
* en/test-cleanup:
t6020: new test with interleaved lexicographic ordering of directories
t6022, t6046: test expected behavior instead of testing a proxy for it
t3035: prefer test_must_fail to bash negation for git commands
t6020, t6022, t6035: update merge tests to use test helper functions
t602[1236], t6034: modernize test formatting
Junio C Hamano [Mon, 9 Mar 2020 18:21:20 +0000 (11:21 -0700)]
Merge branch 'en/merge-path-collision'
Handling of conflicting renames in merge-recursive have further
been made consistent with how existing codepaths try to mimic what
is done to add/add conflicts.
* en/merge-path-collision:
merge-recursive: apply collision handling unification to recursive case
Junio C Hamano [Mon, 9 Mar 2020 18:21:20 +0000 (11:21 -0700)]
Merge branch 'kk/complete-diff-color-moved'
Completion update.
* kk/complete-diff-color-moved:
completion: add diff --color-moved[-ws]
Junio C Hamano [Mon, 9 Mar 2020 18:21:19 +0000 (11:21 -0700)]
Merge branch 'rj/t1050-use-test-path-is-file'
Code cleanup.
* rj/t1050-use-test-path-is-file:
t1050: replace test -f with test_path_is_file
Junio C Hamano [Mon, 9 Mar 2020 18:21:19 +0000 (11:21 -0700)]
Merge branch 'pb/am-show-current-patch'
"git am --short-current-patch" is a way to show the piece of e-mail
for the stopped step, which is not suitable to directly feed "git
apply" (it is designed to be a good "git am" input). It learned a
new option to show only the patch part.
* pb/am-show-current-patch:
am: support --show-current-patch=diff to retrieve .git/rebase-apply/patch
am: support --show-current-patch=raw as a synonym for--show-current-patch
am: convert "resume" variable to a struct
parse-options: convert "command mode" to a flag
parse-options: add testcases for OPT_CMDMODE()
Junio C Hamano [Mon, 9 Mar 2020 18:21:19 +0000 (11:21 -0700)]
Merge branch 'am/pathspec-f-f-more'
"git rm" and "git stash" learns the new "--pathspec-from-file"
option.
* am/pathspec-f-f-more:
stash push: support the --pathspec-from-file option
stash: eliminate crude option parsing
doc: stash: synchronize <pathspec> description
doc: stash: document more options
doc: stash: split options from description (2)
doc: stash: split options from description (1)
rm: support the --pathspec-from-file option
doc: rm: synchronize <pathspec> description
Martin Ågren [Sun, 8 Mar 2020 08:46:27 +0000 (09:46 +0100)]
t1091: don't grep for `strerror()` string
We grep for "File exists" in stderr of the failing `git sparse-checkout`
to make sure that it failed for the right reason. We expect the string
to show up there since we call `strerror(errno)` in
`unable_to_lock_message()` in lockfile.c.
On the NonStop platform, this fails because the error string is "File
already exists", which doesn't match our grepping.
See
9042140097 ("test-dir-iterator: do not assume errno values",
2019-07-30) for a somewhat similar fix. There, we patched a test helper,
which meant we had access to `errno` and could investigate it better in
the test helper instead of just outputting the numerical value and
evaluating it in the test script. The current situation is different,
since (short of modifying the lockfile machinery, e.g., to be more
verbose) we don't have more than the output from `strerror()` available.
Except we do: We prefix `strerror(errno)` with `_("Unable to create
'%s.lock': ")`. Let's grep for that part instead. It verifies that we
were indeed unable to create the lock file. (If that fails for some
other reason than the file existing, we really really should expect
other tests to fail as well.)
An alternative fix would be to loosen the expression a bit and grep for
"File.* exists" instead. There would be no guarantee that some other
implementation couldn't come up with another error string, That is, that
could be the first move in an endless game of whack-a-mole. Of course,
it could also take us from "99" to "100" percent of the platforms and
we'd never have this problem again. But since we have another way of
addressing this, let's not even try the "loosen it up a bit" strategy.
Reported-by: Randall S. Becker <rsbecker@nexbridge.com>
Signed-off-by: Martin Ågren <martin.agren@gmail.com>
Acked-by: Derrick Stolee <dstolee@microsoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jean-Noël Avila [Sat, 7 Mar 2020 21:35:29 +0000 (22:35 +0100)]
l10n: fr v2.26.0 rnd1
Signed-off-by: Jean-Noël Avila <jn.avila@free.fr>
Jiang Xin [Sun, 8 Mar 2020 15:44:13 +0000 (23:44 +0800)]
Merge branch of github.com:alshopov/git-po into master
* 'git-l10n_git-po_master' of github.com:alshopov/git-po:
l10n: bg.po: Updated Bulgarian translation (4835t)
Alessandro Menti [Sat, 7 Mar 2020 08:57:36 +0000 (09:57 +0100)]
l10n: it.po: update the Italian translation for Git 2.26.0 round 1
Signed-off-by: Alessandro Menti <alessandro.menti@alessandromenti.it>
Alexander Shopov [Sun, 1 Mar 2020 17:18:57 +0000 (18:18 +0100)]
l10n: bg.po: Updated Bulgarian translation (4835t)
Signed-off-by: Alexander Shopov <ash@kambanaria.org>
Jiang Xin [Fri, 6 Mar 2020 06:27:08 +0000 (14:27 +0800)]
l10n: git.pot: v2.26.0 round 1 (73 new, 38 removed)
Generate po/git.pot from v2.26.0-rc0 for git v2.26.0 l10n round 1.
Signed-off-by: Jiang Xin <worldhello.net@gmail.com>