[GSoC][PATCH v3 0/4] Add refs exists subcommand
- From
Meet Soni <meetsoni3017@gmail.com>
- Date
- Aug 26, 2025, 06:41 UTC
- Message-ID
- <20250826064110.10540-1-meetsoni3017@gmail.com>
- In-Reply-To
- <20250823060012.540433-1-meetsoni3017@gmail.com>
This series introduces `git refs exists` as a modern replacement for `git show-ref --exists`, continuing the effort to consolidate commands under the `git refs` namespace.
changes in v3: - Reverted commit message. - nit: added empty line.
Meet Soni (4): builtin/refs: add 'exists' subcommand t1403: split 'show-ref --exists' tests into a separate file t1422: refactor tests to be shareable t: add test for git refs exists subcommand
Documentation/git-refs.adoc | 7 ++++ builtin/refs.c | 48 +++++++++++++++++++++++ t/meson.build | 4 +- t/show-ref-exists-tests.sh | 77 +++++++++++++++++++++++++++++++++++++ t/t1403-show-ref.sh | 65 ------------------------------- t/t1422-show-ref-exists.sh | 9 +++++ t/t1462-refs-exists.sh | 10 +++++ 7 files changed, 154 insertions(+), 66 deletions(-) create mode 100644 t/show-ref-exists-tests.sh create mode 100755 t/t1422-show-ref-exists.sh create mode 100755 t/t1462-refs-exists.sh
Range-diff against v2:
1: 19623eb97e < -: ---------- doc: factor out common option
2: 69c207dc45 < -: ---------- builtin/for-each-ref: align usage string with the man page
3: 6eeb1c070a < -: ---------- builtin/for-each-ref: factor out core logic into a helper
4: eecccfe98b < -: ---------- builtin/refs: add list subcommand
5: aa91c5c570 < -: ---------- t6300: refactor tests to be shareable
6: fed66d91c0 < -: ---------- t: add test for git refs list subcommand
7: b55e6d36eb < -: ---------- diff: ensure consistent diff behavior with ignore options
8: e1d3d61a45 < -: ---------- diff: --no-index should ignore the worktree
9: 621ce9c1c6 < -: ---------- git-jump: make `diff` work with filenames containing spaces
10: 9a49aef8dc < -: ---------- environment: remove the global variable 'merge_log_config'
11: 22d421fed9 < -: ---------- builtin/fmt-merge-msg: stop depending on 'the_repository'
12: 741f36c7d9 < -: ---------- docs: remove stray bracket from git-clone synopsis
13: 1fa68948c3 < -: ---------- The second batch
14: d1fa4e927e ! 1: 0c9349fa74 builtin/refs: add 'exists' subcommand
@@ Commit message
builtin/refs: add 'exists' subcommand
As part of the ongoing effort to consolidate reference handling,
- introduce `exists` subcommand. This command provides the same
+ introduce a new `exists` subcommand. This command provides the same
functionality and exit-code behavior as `git show-ref --exists`, serving
as its modern replacement.
@@ Commit message
`git refs list`, where sharing the larger implementation of
`for-each-ref` was necessary.
- Documentation for this subcommand is also added to the `git-refs(1)`
+ Documentation for the new subcommand is also added to the `git-refs(1)`
man page.
Mentored-by: Patrick Steinhardt <ps@pks.im>
15: f1dfafe6c9 = 2: d32067af55 t1403: split 'show-ref --exists' tests into a separate file
16: a2a65c428c ! 3: fb7223ad07 t1422: refactor tests to be shareable
@@ Commit message
## t/show-ref-exists-tests.sh (new) ##
@@
+git_show_ref_exists=${git_show_ref_exists:-git show-ref --exists}
++
+test_expect_success setup '
+ test_commit --annotate A &&
+ git checkout -b side &&
17: e92da499b5 = 4: 75b5ee4ede t: add test for git refs exists subcommand-- 2.34.1