From: "ZheNing Hu via GitGitGadget" <gitgitgadget@gmail.com>
To: git@vger.kernel.org
Cc: "Ævar Arnfjörð Bjarmason" <avarab@gmail.com>,
"Junio C Hamano" <gitster@pobox.com>,
"Derrick Stolee" <derrickstolee@github.com>,
"Victoria Dye" <vdye@github.com>,
"Elijah Newren" <newren@gmail.com>,
"Nguyễn Thái Ngọc Duy" <pclouds@gmail.com>,
"ZheNing Hu" <adlternative@gmail.com>
Subject: [PATCH v2 0/2] ls-files: add %(skipworktree) atom to format option
Date: Thu, 19 Jan 2023 17:34:23 +0000 [thread overview]
Message-ID: <pull.1458.v2.git.1674149666.gitgitgadget@gmail.com> (raw)
In-Reply-To: <pull.1458.git.1673451741587.gitgitgadget@gmail.com>
Add a %(skipworktree) atom git ls-files --format to indicate whether the
file in the index match the sparse specification.
v1: add %(skipworktree) atom to git ls-files format option. v2:
1. no longer mentioned git ls-files -t.
2. change %(skipworktree) output from "true"/"false" to "1"/"".
3. fix the sparse-checkout docs link.
ZheNing Hu (2):
docs: fix sparse-checkout docs link
ls-files: add %(skipworktree) atom to format option
Documentation/Makefile | 1 +
Documentation/git-ls-files.txt | 5 +++
Documentation/technical/sparse-checkout.txt | 43 ++++++++++++++-------
builtin/ls-files.c | 3 ++
t/t3013-ls-files-format.sh | 23 +++++++++++
5 files changed, 61 insertions(+), 14 deletions(-)
base-commit: a7caae2729742fc80147bca1c02ae848cb55921a
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-1458%2Fadlternative%2Fzh%2Fls-file-format-skipworktree-v2
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-1458/adlternative/zh/ls-file-format-skipworktree-v2
Pull-Request: https://github.com/gitgitgadget/git/pull/1458
Range-diff vs v1:
-: ----------- > 1: cde4827da13 docs: fix sparse-checkout docs link
1: c4cd5b3a32f ! 2: 9ebd6b77a69 ls-files: add %(skipworktree) atom to format option
@@ Commit message
ls-files: add %(skipworktree) atom to format option
Because sometimes we want to check if the files in the
- index match the sparse specification by using
- `git ls-files -t`, but `-t` option have semi-deprecated,
-
- So introduce "%(skipworktree)" atom to git ls-files
- `--format` option. When we use this option, if the file
- match the sparse specification and removed from working
- tree, it will output "yes", othewise, output "no".
+ index match the sparse specification, so introduce
+ "%(skipworktree)" atom to git ls-files `--format` option.
+ When we use this option, if the file match the sparse
+ specification, it will output "1", otherwise, output
+ empty string "".
Signed-off-by: ZheNing Hu <adlternative@gmail.com>
@@ Documentation/git-ls-files.txt: eolattr::
The pathname of the file which is recorded in the index.
+skipworktree::
+ If the file in the index marked with SKIP_WORKTREE bit.
-+ It means the file do not match the sparse specification
-+ and removed from working tree.
++ It means the file do not match the sparse specification.
+ See link:technical/sparse-checkout.txt[sparse-checkout]
+ for more information.
@@ builtin/ls-files.c: static size_t expand_show_index(struct strbuf *sb, const cha
write_name_to_buf(sb, data->pathname);
+ else if (skip_prefix(start, "(skipworktree)", &p))
+ strbuf_addstr(sb, ce_skip_worktree(data->ce) ?
-+ "true" : "false");
++ "1" : "");
else
die(_("bad ls-files format: %%%.*s"), (int)len, start);
@@ t/t3013-ls-files-format.sh: test_expect_success 'git ls-files --format with --de
'
+test_expect_success 'git ls-files --format with skipworktree' '
++ test_when_finished "git sparse-checkout disable" &&
+ mkdir dir1 dir2 &&
+ echo "file1" >dir1/file1.txt &&
+ echo "file2" >dir2/file2.txt &&
+ git add dir1 dir2 &&
+ git commit -m skipworktree &&
+ git sparse-checkout set dir1 &&
-+ git ls-files --format="%(path) %(skipworktree)" >actual &&
++ git ls-files --format="%(path)%(skipworktree)" >actual &&
+ cat >expect <<-\EOF &&
-+ dir1/file1.txt false
-+ dir2/file2.txt true
-+ o1.txt false
-+ o2.txt false
-+ o3.txt false
-+ o4.txt false
-+ o5.txt false
-+ o6.txt false
-+ o7.txt false
++ dir1/file1.txt
++ dir2/file2.txt1
++ o1.txt
++ o2.txt
++ o3.txt
++ o4.txt
++ o5.txt
++ o6.txt
++ o7.txt
+ EOF
+ test_cmp expect actual
+'
--
gitgitgadget
next prev parent reply other threads:[~2023-01-19 17:34 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-01-11 15:42 [PATCH] ls-files: add %(skipworktree) atom to format option ZheNing Hu via GitGitGadget
2023-01-12 10:00 ` Elijah Newren
2023-01-12 19:58 ` Junio C Hamano
2023-01-13 4:43 ` Elijah Newren
2023-01-13 17:07 ` ZheNing Hu
2023-01-13 16:50 ` ZheNing Hu
2023-01-14 3:00 ` Elijah Newren
2023-01-12 10:07 ` Ævar Arnfjörð Bjarmason
2023-01-13 16:59 ` ZheNing Hu
2023-01-19 17:34 ` ZheNing Hu via GitGitGadget [this message]
2023-01-19 17:34 ` [PATCH v2 1/2] docs: fix sparse-checkout docs link ZheNing Hu via GitGitGadget
2023-01-20 5:12 ` Elijah Newren
2023-01-20 9:35 ` Martin Ågren
2023-01-23 15:16 ` ZheNing Hu
2023-01-23 15:15 ` ZheNing Hu
2023-01-19 17:34 ` [PATCH v2 2/2] ls-files: add %(skipworktree) atom to format option ZheNing Hu via GitGitGadget
2023-01-20 5:30 ` Elijah Newren
2023-01-20 16:34 ` Junio C Hamano
2023-01-23 15:35 ` ZheNing Hu
2023-01-23 22:39 ` Junio C Hamano
2023-01-23 15:33 ` ZheNing Hu
2023-02-04 16:16 ` [PATCH v3 0/2] " ZheNing Hu via GitGitGadget
2023-02-04 16:16 ` [PATCH v3 1/2] docs: fix sparse-checkout docs link ZheNing Hu via GitGitGadget
2023-02-04 16:16 ` [PATCH v3 2/2] ls-files: add %(skipworktree) atom to format option ZheNing Hu via GitGitGadget
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=pull.1458.v2.git.1674149666.gitgitgadget@gmail.com \
--to=gitgitgadget@gmail.com \
--cc=adlternative@gmail.com \
--cc=avarab@gmail.com \
--cc=derrickstolee@github.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=newren@gmail.com \
--cc=pclouds@gmail.com \
--cc=vdye@github.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.