+
Skip to content

Tags: gitgitgadget/git

Tags

pr-1987/Praqma/respect-submodule-ignore-v1

Toggle pr-1987/Praqma/respect-submodule-ignore-v1's commit message
git-add : Respect submodule ignore=all and only add changes with --force

The feature of configuring a submodule to "ignore=all" is nicely respected
in commands "status" and "diff". However the "add" command does not respect
the configuration the same way. The behavior is problematic for the logic
between status/diff and add. Secondly it makes it problematic to track
branches in the submodule configuration as developers unintentionally keeps
add submodule updates and get conflicts for no intentional reason. Both adds
unnecessary friction to the usage of submodules.

The patches implement the same logical behavior for ignore=all submodules as
regular ignored files. The status now does not show any diff - nor will the
add command update the reference submodule reference. If you add the
submodule path which is ignore=all then you are presented with a message
that you need to use the --force option. The branch=, ignore=all (and
update=none) now works great with update --remote, but developers does not
have to consider changes in the updates of the submodule sha1. The
implementation removes a friction of working with submodules and can be used
like the repo tool with branches configured. The submodule status report
could be used for build/release documentation for reproduction of a setup.

A few tests used the adding of submodules without --force, hence they have
been updated to use the --force option.

Claus Schneider(Eficode) (5):
  read-cache: update add_files_to_cache to take param
    ignored_too(--force)
  read-cache: let read-cache respect submodule ignore=all and --force
  tests: add new t2206-add-submodule-ignored.sh to test ignore=all
    scenario
  tests: fix existing tests when add an ignore=all submodule
  Documentation: update add --force and submodule ignore=all config

 Documentation/git-add.adoc       |   4 +-
 Documentation/gitmodules.adoc    |   5 +-
 builtin/add.c                    |   2 +-
 builtin/checkout.c               |   2 +-
 builtin/commit.c                 |   2 +-
 read-cache-ll.h                  |   2 +-
 read-cache.c                     |  54 ++++++++++++-
 t/lib-submodule-update.sh        |   6 +-
 t/meson.build                    |   1 +
 t/t2206-add-submodule-ignored.sh | 134 +++++++++++++++++++++++++++++++
 t/t7508-status.sh                |   2 +-
 11 files changed, 202 insertions(+), 12 deletions(-)
 create mode 100755 t/t2206-add-submodule-ignored.sh

base-commit: c44beea

Submitted-As: https://lore.kernel.org/git/pull.1987.git.1760818039.gitgitgadget@gmail.com

pr-git-2071/brandb97/fix-diff-dry-run-v1

Toggle pr-git-2071/brandb97/fix-diff-dry-run-v1's commit message
diff: stop output garbled message in dry run mode

From: Lidong Yan <yldhome2d2@gmail.com>

In dry run mode, diff_flush_patch() should not produce any output.
However, in commit b55e6d3 (diff: ensure consistent diff behavior
with ignore options, 2025-08-08), only the output during the
comparison of two file contents was suppressed. For file deletions
or mode changes, diff_flush_patch() still produces output. In
run_extern_diff(), set quiet to true if in dry run mode. In
emit_diff_symbol_from_struct(), directly return if in dry run mode.

Signed-off-by: Lidong Yan <yldhome2d2@gmail.com>

Submitted-As: https://lore.kernel.org/git/pull.2071.git.git.1760671049113.gitgitgadget@gmail.com

pr-1991/jvns/clarify-reset-v1

Toggle pr-1991/jvns/clarify-reset-v1's commit message
doc: git-reset: clarify DESCRIPTION section

I got feedback from 24 Git users about the current git reset man page, using
this tool: https://text-feedback.wizardzines.com/git-reset.

My main goals here are to highlight the git reset [--soft | --hard |
--mixed...] <commit> use of git reset that many users commenting said they
considered the "main" use (which is currently at the end), explain how
--soft, --hard and --mixed work more clearly, and to avoid using terminology
that users don't understand when that's realistic.

Like we discussed with git checkout, there's some tension about using the
word "index" since on one hand many users don't know what it means, but on
the other hand (especially with commands like git reset --hard) it gets very
awkward to talk about what's going on precisely without using that word,
since the index is a core concept in Git's data model. I've done my best
here to use the word "index" where I think it's appropriate and use the word
"staged" otherwise.

There were also quite a few comments about the EXAMPLES section which I
think could also be made clearer, but I'll defer that to a separate patch
series to keep the size of this one under control.

Julia Evans (4):
  doc: git-reset: reorder the forms
  doc: git-reset: clarify intro
  doc: git-reset: clarify `git reset [mode]`
  doc: git-reset: clarify `git reset <pathspec>`

 Documentation/git-reset.adoc | 102 +++++++++++++++++------------------
 1 file changed, 51 insertions(+), 51 deletions(-)

base-commit: a483264

Submitted-As: https://lore.kernel.org/git/pull.1991.git.1760731558.gitgitgadget@gmail.com

pr-1983/emilyyang-ms/changed-paths-config-v2

Toggle pr-1983/emilyyang-ms/changed-paths-config-v2's commit message
commit-graph: add new config for changed-paths & recommend it in scalar

From: Emily Yang <emilyyang.git@gmail.com>

The changed-path Bloom filters feature has proven stable and reliable
over several years of use, delivering significant performance
improvement for file history computation in large monorepos. Currently
a user can opt-in to writing the changed-path Bloom filters using the
"--changed-paths" option to "git commit-graph write". The filters will
be persisted until the user drops the filters using the
"--no-changed-paths" option. For this functionality, refer to 0087a87
(commit-graph: persist existence of changed-paths, 2020-07-01).

Large monorepos using Git's background maintenance to build and update
commit-graph files could use an easy switch to enable this feature
without a foreground computation. In this commit, we're proposing a new
config option "commitGraph.changedPaths":

* If "true", "git commit-graph write" will write Bloom filters,
  equivalent to passing "--changed-paths";
* If "false" or "unset", Bloom filters will be written during "git
  commit-graph write" only if the filters already exist in the current
  commit-graph file. This matches the default behaviour of "git
  commit-graph write" without any "--[no-]changed-paths" option. Note
  "false" can disable a previous "true" config value but doesn't imply
  "--no-changed-paths".

This config will always respect the precedence of command line option
"--[no-]changed-paths".

We also set this new config as optional recommended config in scalar to
turn on this feature for large repos.

Helped-by: Derrick Stolee <stolee@gmail.com>
Signed-off-by: Emily Yang <emilyyang.git@gmail.com>

Submitted-As: https://lore.kernel.org/git/pull.1983.v2.git.1760734739642.gitgitgadget@gmail.com
In-Reply-To: https://lore.kernel.org/git/pull.1983.git.1760043710502.gitgitgadget@gmail.com

pr-1990/dscho/upgrade-a-couple-github-actions-v1

Toggle pr-1990/dscho/upgrade-a-couple-github-actions-v1's commit message
Upgrade a couple GitHub Actions

The Dependabot setup of Git for Windows suggested a couple of version
upgrades; I extracted those that apply to Git itself.

Note that I took authorship of the commits because Dependabot's email is not
exactly meant for follow-up discussions.

Johannes Schindelin (4):
  build(deps): bump actions/download-artifact from 4 to 5
  build(deps): bump actions/checkout from 4 to 5
  build(deps): bump actions/setup-python from 5 to 6
  build(deps): bump actions/github-script from 7 to 8

 .github/workflows/check-style.yml      |  2 +-
 .github/workflows/check-whitespace.yml |  2 +-
 .github/workflows/coverity.yml         |  2 +-
 .github/workflows/main.yml             | 34 +++++++++++++-------------
 4 files changed, 20 insertions(+), 20 deletions(-)

base-commit: 143f58e

Submitted-As: https://lore.kernel.org/git/pull.1990.git.1760629692.gitgitgadget@gmail.com

pr-1988/QueenJcloud/doc-typo-fix-v1

Toggle pr-1988/QueenJcloud/doc-typo-fix-v1's commit message
docs: fix minor grammar issue in MyFirstContribution.adoc

From: QueenJcloud <qjessa662@gmail.com>

This commit corrects a small grammatical error in the MyFirstContribution
document to improve clarity and readability for new contributors.

Signed-off-by: QueenJcloud <qjessa662@gmail.com>

Submitted-As: https://lore.kernel.org/git/pull.1988.git.1760600313093.gitgitgadget@gmail.com

v2.51.1

Toggle v2.51.1's commit message

Verified

This tag was signed with the committer’s verified signature.
gitster Junio C Hamano
Git 2.51.1

pr-git-2070/ezekielnewren/xdiff_cleanup_part2-v1

Toggle pr-git-2070/ezekielnewren/xdiff_cleanup_part2-v1's commit message
Xdiff cleanup part2

Maintainer note: This patch series builds on top of en/xdiff-cleanup and
am/xdiff-hash-tweak (both of which are now in master).

The primary goal of this patch series is to convert every field's type in
xrecord_t and xdfile_t to be unambiguous, in preparation to make it more
Rust FFI friendly. Additionally the ha field in xrecord_t is split into
line_hash and minimal_perfect hash.

The order of some of the fields has changed as called out by the commit
messages.

Before:

typedef struct s_xrecord {
	char const *ptr;
	long size;
	unsigned long ha;
} xrecord_t;

typedef struct s_xdfile {
	xrecord_t *recs;
	long nrec;
	long dstart, dend;
	bool *changed;
	long *rindex;
	long nreff;
} xdfile_t;

After part 2

typedef struct s_xrecord {
	uint8_t const *ptr;
	size_t size;
	uint64_t line_hash;
	size_t minimal_perfect_hash;
} xrecord_t;

typedef struct s_xdfile {
	xrecord_t *recs;
	size_t nrec;
	bool *changed;
	size_t *reference_index;
	size_t nreff;
	ssize_t dstart, dend;
} xdfile_t;

Ezekiel Newren (9):
  xdiff: use ssize_t for dstart/dend, make them last in xdfile_t
  xdiff: make xrecord_t.ptr a uint8_t instead of char
  xdiff: use size_t for xrecord_t.size
  xdiff: use unambiguous types in xdl_hash_record()
  xdiff: split xrecord_t.ha into line_hash and minimal_perfect_hash
  xdiff: make xdfile_t.nrec a size_t instead of long
  xdiff: make xdfile_t.nreff a size_t instead of long
  xdiff: change rindex from long to size_t in xdfile_t
  xdiff: rename rindex -> reference_index

 xdiff-interface.c  |  2 +-
 xdiff/xdiffi.c     | 29 +++++++++++------------
 xdiff/xemit.c      | 28 +++++++++++-----------
 xdiff/xhistogram.c |  4 ++--
 xdiff/xmerge.c     | 30 ++++++++++++------------
 xdiff/xpatience.c  | 14 +++++------
 xdiff/xprepare.c   | 58 +++++++++++++++++++++++-----------------------
 xdiff/xtypes.h     | 15 ++++++------
 xdiff/xutils.c     | 32 ++++++++++++-------------
 xdiff/xutils.h     |  6 ++---
 10 files changed, 109 insertions(+), 109 deletions(-)

base-commit: 143f58e

Submitted-As: https://lore.kernel.org/git/pull.2070.git.git.1760563101.gitgitgadget@gmail.com

pr-1989/martinvonz/mz/wtmnpolouvvz-v1

Toggle pr-1989/martinvonz/mz/wtmnpolouvvz-v1's commit message
BreakingChanges: say that `git diff X..Y` syntax will be removed in 3.0

From: Martin von Zweigbergk <martinvonz@google.com>

The `git diff X..Y` syntax is quite misleading because it looks like
it shows the diff of the commits in the X..Y range but it actually
shows the diff from X to Y. IMO, if that syntax is supported, it
should show a diff from the merge base of X and Y to Y. I hope Git 3.0
is a good time to remove support for the current syntax and
semantics. Then we can perhaps add the syntax back later with less
surprising semantics.

Signed-off-by: Martin von Zweigbergk <martinvonz@google.com>

Submitted-As: https://lore.kernel.org/git/pull.1989.git.1760566054455.gitgitgadget@gmail.com

pr-1976/jvns/clarify-pull-v3

Toggle pr-1976/jvns/clarify-pull-v3's commit message
doc: git-pull: clarify DESCRIPTION section

I got feedback from 15 Git users on the current git pull man page, using
this tool: https://text-feedback.wizardzines.com/git-pull.

My goals here are to be clear about the relationship between git pull and
fetch/merge/rebase etc, make sure users know the current default for git
pull (--ff-only) since some folks still remember the old default, and to
help users quickly figure out what command they need to run to
merge/rebase/squash/etc.

I've taken a pretty aggressive approach because I think it's possible to
have a pretty short and focused DESCRIPTION section here while keeping the
most important info. Open to hearing that I've removed too much.

This references the UPSTREAM BRANCHES section from
https://lore.kernel.org/git/0ec629d4037bf5d1ccc248ca1bbd87ccc08119a3.1757703309.git.gitgitgadget@gmail.com/
, so if that isn't merged I'll need to revisit the approach here.

changes in v2:

 * Add "(excluding merge options)" to clarify which options are passed to
   git fetch (from Chris's review)
 * Say that git pull will by default merge the upstream branch. (from
   Chris's review)
 * Add some links to the UPSTREAM BRANCHES section, and to the <refspec>
   section in git fetch, to make it easier to navigate in the HTML version
   of the docs at least. The situation where we repeat the <repository> part
   in git fetch is weird but I don't have a better idea for how to handle it
   right now. The UPSTREAM BRANCHES links are currently failing the
   documentation tests, but should pass once the patch series that adds that
   is merged. (from Ben's review)

changes in v3:

Change "fails if the local branch has diverged" to say "remote branch has
diverged", from Junio's review.

I did not come up with a better idea for a word to use than "integrate" so
left that alone.

Julia Evans (4):
  doc: git-pull: move <repository> and <refspec> params
  doc: git-pull: clarify options for integrating remote branch
  doc: git-pull: delete the example
  doc: git-pull: clarify how to exit a conflicted merge

 Documentation/git-pull.adoc         | 93 +++++++++++++----------------
 Documentation/pull-fetch-param.adoc |  1 +
 2 files changed, 41 insertions(+), 53 deletions(-)

base-commit: ca2559c

Submitted-As: https://lore.kernel.org/git/pull.1976.v3.git.1760534011.gitgitgadget@gmail.com
In-Reply-To: https://lore.kernel.org/git/pull.1976.git.1758656702.gitgitgadget@gmail.com
In-Reply-To: https://lore.kernel.org/git/pull.1976.v2.git.1759951536.gitgitgadget@gmail.com
点击 这是indexloc提供的php浏览器服务,不要输入任何密码和下载