Commit Graph

54139 Commits

Author SHA1 Message Date
Thomas Gummerer
091e04bc8c checkout: introduce --{,no-}overlay option
Currently 'git checkout' is defined as an overlay operation, which
means that if in 'git checkout <tree-ish> -- [<pathspec>]' we have an
entry in the index that matches <pathspec>, but that doesn't exist in
<tree-ish>, that entry will not be removed from the index or the
working tree.

Introduce a new --{,no-}overlay option, which allows using 'git
checkout' in non-overlay mode, thus removing files from the working
tree if they do not exist in <tree-ish> but match <pathspec>.

Note that 'git checkout -p <tree-ish> -- [<pathspec>]' already works
this way, so no changes are needed for the patch mode.  We disallow
'git checkout --overlay -p' to avoid confusing users who would expect
to be able to force overlay mode in 'git checkout -p' this way.

Untracked files are not affected by this change, so 'git checkout
--no-overlay HEAD -- untracked' will not remove untracked from the
working tree.  This is so e.g. 'git checkout --no-overlay HEAD -- dir/'
doesn't delete all untracked files in dir/, but rather just resets the
state of files that are known to git.

Suggested-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>
2019-01-08 14:49:28 -08:00
Thomas Gummerer
b7033e73b7 checkout: factor out mark_cache_entry_for_checkout function
Factor out the code that marks a cache entry as matched for checkout
into a separate function.  We are going to introduce a new mode in
'git checkout' in a subsequent commit, that is going to have a
slightly different logic.  This would make this code unnecessarily
complex.

Moving that complexity into separate functions will make the code in
the subsequent step easier to follow.

Signed-off-by: Thomas Gummerer <t.gummerer@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2019-01-02 15:28:05 -08:00
Thomas Gummerer
5160fa0562 checkout: clarify comment
The key point for the if statement is that read_tree_some did not
update the entry, because either it doesn't exist in tree-ish or
doesn't match the pathspec.  Clarify that.

Suggested-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Thomas Gummerer <t.gummerer@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2019-01-02 15:28:05 -08:00
Thomas Gummerer
6fdc205722 read-cache: add invalidate parameter to remove_marked_cache_entries
When marking cache entries for removal, and later removing them all at
once using 'remove_marked_cache_entries()', cache entries currently
have to be invalidated manually in the cache tree and in the untracked
cache.

Add an invalidate flag to the function.  With the flag set, the
function will take care of invalidating the path in the cache tree and
in the untracked cache.

Note that the current callsites already do the invalidation properly
in other places, so we're just passing 0 from there to keep the status
quo.

This will be useful in a subsequent commit.

Signed-off-by: Thomas Gummerer <t.gummerer@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2019-01-02 15:28:05 -08:00
Thomas Gummerer
536ec1839d entry: support CE_WT_REMOVE flag in checkout_entry
'checkout_entry()' currently only supports creating new entries in the
working tree, but not deleting them.  Add the ability to remove
entries at the same time if the entry is marked with the CE_WT_REMOVE
flag.

Currently this doesn't have any effect, as the CE_WT_REMOVE flag is
only used in unpack-tree, however we will make use of this in a
subsequent step in the series.

Signed-off-by: Thomas Gummerer <t.gummerer@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2019-01-02 15:28:05 -08:00
Thomas Gummerer
b702dd12d5 entry: factor out unlink_entry function
Factor out the 'unlink_entry()' function from unpack-trees.c to
entry.c.  It will be used in other places as well in subsequent
steps.

As it's no longer a static function, also move the documentation to
the header file to make it more discoverable.

Signed-off-by: Thomas Gummerer <t.gummerer@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2019-01-02 15:28:05 -08:00
Thomas Gummerer
a0cc58450a move worktree tests to t24*
The 'git worktree' command used to be just another mode in 'git
checkout', namely 'git checkout --to'.  When the tests for the latter
were retrofitted for the former, the test name was adjusted, but the
test number was kept, even though the test is testing a different
command now.  t/README states: "Second digit tells the particular
command we are testing.", so 'git worktree' should have a separate
number just for itself.

Move the worktree tests to t24* to adhere to that guideline. We're
going to make use of the free'd up numbers in a subsequent commit.

Signed-off-by: Thomas Gummerer <t.gummerer@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2019-01-02 15:28:04 -08:00
Junio C Hamano
5d826e9729 Git 2.20
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2018-12-09 13:16:21 +09:00
Junio C Hamano
b5796d9a32 l10n-2.20.0-rnd3
-----BEGIN PGP SIGNATURE-----
 
 iQJNBAABCAA3FiEET/4dIHc7EQTOoGRdx6TpG3VEeigFAlwMkTcZHHdvcmxkaGVs
 bG8ubmV0QGdtYWlsLmNvbQAKCRDHpOkbdUR6KOFEEACx1aphiOMHQ2QqbzxNx3FG
 TID9PiW7p4GsADXHkcjvJujzGs/xyUTaiqznQ93XE8NXCHvehL4A7Gi7Mgg09+PJ
 fbxgJDedaUeIv7rpM5a4vE3iowEF9L2tJzEnzlldTqgoKMnjAXqOYPVkHl+M5jka
 Twl3n3sfCxMQ4hLUBeX3SaKf1BeeYuwbdOO7XWrMKZu3qDBQRmz3PKKfCqMmDEVQ
 76Sr0MnMuQcm5qD0sBTbGI96BrX1UJcrCf2LnE2CZXYimKQ9kU8jIivVvv22WmtK
 RiLhQ0wQY6cQFzr2XEFyMH9lqBplxWGn3abC7nXyuJD0t14DyCDGvp9op0wyYfSK
 2yAPefDZ5emaoJZ4POowsBjVqjAx1rQKUx81fUe5BGdYG4VvTrECnmrRZMlh4F+0
 dvfGVq4OcY8wfTaLRBXTrA4IcpjGCr8Qe2dSAAhKSjqtZtkZiQPP9S/1/36T6aG2
 7wxsmVkknY3fufBEGE7NDazQEg6I+hBpLHvfgJG+Gv7fzsFpC87BWde5BQFtkqq5
 x3WsNdvJdV2x8/SNUMCOMQo2BV3SyExguTm1QEEgEc5rlxPl1o/g+Ws6JSo80zu1
 /ddKWOMBn6t0FviSCdGvHVA49OdDf4NjXEd/mzfDxTgLdf60o2D1jSSve8HmQpvg
 e7Ey8HXd/B3uu9cLgRT9ug==
 =alqZ
 -----END PGP SIGNATURE-----

Merge tag 'l10n-2.20.0-rnd3' of https://github.com/git-l10n/git-po

l10n-2.20.0-rnd3

* tag 'l10n-2.20.0-rnd3' of https://github.com/git-l10n/git-po: (22 commits)
  l10n: de.po: fix two messages
  l10n: zh_CN: for git v2.20.0 l10n round 1 to 3
  l10n: update German translation
  l10n: bg.po: Updated Bulgarian translation (4187t)
  l10n: sv.po: Update Swedish translation (4187t0f0u)
  l10n: fr.po v2.20.0 round 3
  l10n: vi(4187t): Updated Vietnamese translation for v2.20.0 rd3
  l10n: es.po v2.20.0 round 3
  l10n: git.pot: v2.20.0 round 3 (5 new, 3 removed)
  l10n: vi(4185t): Updated Vietnamese translation for v2.20.0
  l10n: es.po v2.20.0 round 1
  l10n: bg.po: Updated Bulgarian translation (4185t)
  l10n: git.pot: v2.20.0 round 2 (2 new, 2 removed)
  l10n: bg.po: Updated Bulgarian translation (4185t)
  l10n: sv.po: Update Swedish translation (4185t0f0u)
  l10n: fr.po v2.20 rnd 1
  l10n: Update Catalan translation
  l10n: git.pot: v2.20.0 round 1 (254 new, 27 removed)
  l10n: Update Catalan translation
  l10n: vi.po: fix typo in pack-objects
  ...
2018-12-09 13:11:36 +09:00
Ralf Thielow
0688c551a3 l10n: de.po: fix two messages
Reported-by: Phillip Szelat <phillip.szelat@gmail.com>
Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>
2018-12-07 19:43:07 +01:00
Jiang Xin
4c27fcb576 l10n: zh_CN: for git v2.20.0 l10n round 1 to 3
Translate 257 new messages (4187t0f0u) for git 2.20.0.

Reviewed-by: Zhou Fangyi <fangyi.zhou@yuriko.moe>
Reviewed-by: 依云 <lilydjwg@gmail.com>
Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
2018-12-06 16:00:29 +08:00
Ralf Thielow
cf4c0c2505 l10n: update German translation
Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>
2018-12-06 07:44:41 +01:00
Junio C Hamano
965798d1f2 Merge branch 'es/format-patch-range-diff-fix-fix'
* es/format-patch-range-diff-fix-fix:
  range-diff: always pass at least minimal diff options
2018-12-04 12:49:50 +09:00
Junio C Hamano
5335669531 Merge branch 'en/rebase-consistency'
* en/rebase-consistency:
  rebase docs: fix incorrect format of the section Behavioral Differences
2018-12-04 12:49:39 +09:00
Johannes Sixt
6fcbad87d4 rebase docs: fix incorrect format of the section Behavioral Differences
The text body of section Behavioral Differences is typeset as code,
but should be regular text. Remove the indentation to achieve that.

While here, prettify the language:

- use "the x backend" instead of "x-based rebase";
- use present tense instead of future tense;

and use subsections instead of a list.

Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2018-12-04 11:50:52 +09:00
Martin Ågren
7e75a63d74 RelNotes 2.20: drop spurious double quote
We have three double-quote characters, which is one too many or too few.
Dropping the last one seems to match the original intention best.

Signed-off-by: Martin Ågren <martin.agren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2018-12-04 11:26:40 +09:00
Martin Ågren
7a49e44465 RelNotes 2.20: clarify sentence
I had to read this sentence a few times to understand it. Let's try to
clarify it.

Signed-off-by: Martin Ågren <martin.agren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2018-12-04 11:26:38 +09:00
Martin Ågren
00ac55c7bd RelNotes 2.20: move some items between sections
Some items that should be in "Performance, Internal Implementation,
Development Support etc." have ended up in "UI, Workflows & Features"
and "Fixes since v2.19". Move them, and do s/uses/use/ while at it.

Signed-off-by: Martin Ågren <martin.agren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2018-12-04 11:26:36 +09:00
Martin Ågren
ac0edf1f46 range-diff: always pass at least minimal diff options
Commit d8981c3f88 ("format-patch: do not let its diff-options affect
--range-diff", 2018-11-30) taught `show_range_diff()` to accept a
NULL-pointer as an indication that it should use its own "reasonable
default". That fixed a regression from a5170794 ("Merge branch
'ab/range-diff-no-patch'", 2018-11-18), but unfortunately it introduced
a regression of its own.

In particular, it means we forget the `file` member of the diff options,
so rather than placing a range-diff in the cover-letter, we write it to
stdout. In order to fix this, rewrite the two callers adjusted by
d8981c3f88 to instead create a "dummy" set of diff options where they
only fill in the fields we absolutely require, such as output file and
color.

Modify and extend the existing tests to try and verify that the right
contents end up in the right place.

Don't revert `show_range_diff()`, i.e., let it keep accepting NULL.
Rather than removing what is dead code and figuring out it isn't
actually dead and we've broken 2.20, just leave it for now.

[es: retain diff coloring when going to stdout]

Signed-off-by: Martin Ågren <martin.agren@gmail.com>
Signed-off-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2018-12-04 10:36:14 +09:00
Jiang Xin
609713eb66 Merge branch 'master' of git://github.com/alshopov/git-po 2018-12-03 12:49:45 +08:00
Alexander Shopov
9290395fe9 l10n: bg.po: Updated Bulgarian translation (4187t)
Signed-off-by: Alexander Shopov <ash@kambanaria.org>
2018-12-02 16:09:21 +01:00
Peter Krefting
7345044379 l10n: sv.po: Update Swedish translation (4187t0f0u)
Signed-off-by: Peter Krefting <peter@softwolves.pp.se>
2018-12-02 15:43:34 +01:00
Jiang Xin
a8f5329e04 Merge branch 'fr_2.20_round3' of git://github.com/jnavila/git 2018-12-02 22:36:36 +08:00
Jean-Noël Avila
5386321271 l10n: fr.po v2.20.0 round 3
Signed-off-by: Jean-Noël Avila <jn.avila@free.fr>
2018-12-02 11:03:23 +01:00
Jiang Xin
cd1eab5882 Merge branch 'master' of https://github.com/vnwildman/git 2018-12-02 17:57:24 +08:00
Tran Ngoc Quan
8173e9c772 l10n: vi(4187t): Updated Vietnamese translation for v2.20.0 rd3
Signed-off-by: Tran Ngoc Quan <vnwildman@gmail.com>
2018-12-02 14:15:00 +07:00
Christopher Diaz Riveros
7c6767be71 l10n: es.po v2.20.0 round 3
Signed-off-by: Christopher Diaz Riveros <chrisadr@gentoo.org>
2018-12-01 23:17:55 -05:00
Jiang Xin
578d8ea381 l10n: git.pot: v2.20.0 round 3 (5 new, 3 removed)
Generate po/git.pot from v2.20.0-rc2 for git v2.20.0 l10n round 3.

Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
2018-12-02 10:56:26 +08:00
Jiang Xin
924a01f237 Merge branch 'master' of git://github.com/git-l10n/git-po 2018-12-02 10:55:14 +08:00
Jiang Xin
26a567e4c3 Merge branch 'master' of https://github.com/vnwildman/git 2018-12-02 10:25:09 +08:00
Tran Ngoc Quan
84368b62b0 l10n: vi(4185t): Updated Vietnamese translation for v2.20.0
Signed-off-by: Tran Ngoc Quan <vnwildman@gmail.com>
2018-12-02 09:00:09 +07:00
Christopher Diaz Riveros
0960a4beff l10n: es.po v2.20.0 round 1
Signed-off-by: Christopher Diaz Riveros <chrisadr@gentoo.org>
2018-12-01 14:09:28 -05:00
Junio C Hamano
8a0ba68f6d Git 2.20-rc2
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2018-12-01 21:44:56 +09:00
Junio C Hamano
15cc2da0b5 Merge branch 'gh/diff-raw-has-no-ellipses'
"git diff --raw" lost ellipses to adjust the output columns for
some time now, but the documentation still showed them.

* gh/diff-raw-has-no-ellipses:
  doc: update diff-format.txt for removed ellipses in --raw
2018-12-01 21:41:45 +09:00
Junio C Hamano
c0e286a3d2 Merge branch 'ss/msvc-strcasecmp'
MSVC update.

* ss/msvc-strcasecmp:
  msvc: directly use MS version (_stricmp) of strcasecmp
2018-12-01 21:41:45 +09:00
Junio C Hamano
6233704936 Merge branch 'sg/test-BUG'
test framework has been updated to make a bug in the test script
(as opposed to bugs in Git that are discovered by running the
tests) stand out more prominently.

* sg/test-BUG:
  tests: send "bug in the test script" errors to the script's stderr
2018-12-01 21:41:44 +09:00
Junio C Hamano
152cb0cdc3 Merge branch 'sg/test-cmp-rev'
Test framework update.

* sg/test-cmp-rev:
  test-lib-functions: make 'test_cmp_rev' more informative on failure
2018-12-01 21:41:44 +09:00
Junio C Hamano
2c23f0b67e Merge branch 'ab/push-example-in-doc'
An error message that sugggests how to give correct arguments to
"git push" has been updated.

* ab/push-example-in-doc:
  push: change needlessly ambiguous example in error
2018-12-01 21:41:44 +09:00
Junio C Hamano
544d114eb2 Merge branch 'rt/rebase-in-c-message-fix'
* rt/rebase-in-c-message-fix:
  builtin/rebase.c: remove superfluous space in messages
2018-12-01 21:41:44 +09:00
Junio C Hamano
97b6d63717 Merge branch 'sg/daemon-test-signal-fix'
Test fix.

* sg/daemon-test-signal-fix:
  t/lib-git-daemon: fix signal checking
2018-12-01 21:41:43 +09:00
Junio C Hamano
1efd0e8437 Merge branch 'ma/reset-doc-rendering-fix'
Doc updates.

* ma/reset-doc-rendering-fix:
  git-reset.txt: render literal examples as monospace
  git-reset.txt: render tables correctly under Asciidoctor
2018-12-01 21:41:43 +09:00
Junio C Hamano
671e629d6e Merge branch 'ab/replace-graft-with-replace-advice'
The advice message to tell the user to migrate an existing graft
file to the replace system when a graft file was read was shown
even when "git replace --convert-graft-file" command, which is the
way the message suggests to use, was running, which made little
sense.

* ab/replace-graft-with-replace-advice:
  advice: don't pointlessly suggest --convert-graft-file
2018-12-01 21:41:42 +09:00
Junio C Hamano
881d72eff8 Merge branch 'js/rebase-stat-unrelated-fix'
"git rebase --stat" to transplant a piece of history onto a totally
unrelated history were not working before and silently showed wrong
result.  With the recent reimplementation in C, it started to instead
die with an error message, as the original logic was not prepared
to cope with this case.  This has now been fixed.

* js/rebase-stat-unrelated-fix:
  rebase --stat: fix when rebasing to an unrelated history
2018-12-01 21:41:42 +09:00
Junio C Hamano
945f6bd1ce Merge branch 'js/rebase-reflog-action-fix'
"git rebase" reimplemented recently in C accidentally changed the
way reflog entries are recorded (earlier "rebase -i" identified the
entries it leaves with "rebase -i", but the new version always
marks them with "rebase").  This has been corrected.

* js/rebase-reflog-action-fix:
  rebase: fix GIT_REFLOG_ACTION regression
2018-12-01 21:41:42 +09:00
Junio C Hamano
d32fa3c6f7 Merge branch 'jc/format-patch-range-diff-fix'
"git format-patch --range-diff" by mistake passed the diff options
used to generate the primary output of the command to the
range-diff machinery, which caused the range-diff in the cover
letter to include fairly useless "--stat" output.  This has been
corrected by forcing a non-customizable default formatting options
on the range-diff machinery when driven by format-patch.

* jc/format-patch-range-diff-fix:
  format-patch: do not let its diff-options affect --range-diff
2018-12-01 21:41:42 +09:00
Ralf Thielow
eff199a6c0 builtin/rebase.c: remove superfluous space in messages
The whitespace breakages in these messages were introduced while
reimplementing the subcommand in C.  Match these messages to those
in the original scripted version.

Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>
Acked-by: Johannes Schindelin <Johannes.Schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2018-12-01 20:53:05 +09:00
Alexander Shopov
d0a6644845 l10n: bg.po: Updated Bulgarian translation (4185t)
Signed-off-by: Alexander Shopov <ash@kambanaria.org>
2018-12-01 11:48:08 +01:00
Jiang Xin
36dd6933bd l10n: git.pot: v2.20.0 round 2 (2 new, 2 removed)
Generate po/git.pot from v2.20.0-rc1-10-g7068cbc4ab for git v2.20.0 l10n
round 2.

Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
2018-12-01 16:15:51 +08:00
Jiang Xin
5d14a9d7c0 Merge branch 'master' of git://github.com/git-l10n/git-po 2018-12-01 16:14:16 +08:00
Jiang Xin
5362f4d97f Merge branch 'master' of git://github.com/alshopov/git-po 2018-12-01 16:13:31 +08:00