diff options
author | Shaoxuan Yuan <shaoxuan.yuan02@gmail.com> | 2022-08-09 14:09:09 +0200 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2022-08-10 22:57:50 +0200 |
commit | 5efd533ed8896592740afe22ac07271497d6db36 (patch) | |
tree | ee4222f898a2ea1670d1c92e3cceffab646f043e /advice.c | |
parent | mv: cleanup empty WORKING_DIRECTORY (diff) | |
download | git-5efd533ed8896592740afe22ac07271497d6db36.tar.xz git-5efd533ed8896592740afe22ac07271497d6db36.zip |
advice.h: add advise_on_moving_dirty_path()
Add an advice.
When the user use `git mv --sparse <dirty-path> <destination>`, Git
will warn the user to use `git add --sparse <paths>` then use
`git sparse-checkout reapply` to apply the sparsity rules.
Add a few lines to previous "move dirty path" tests so we can test
this new advice is working.
Suggested-by: Derrick Stolee <derrickstolee@github.com>
Signed-off-by: Shaoxuan Yuan <shaoxuan.yuan02@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'advice.c')
-rw-r--r-- | advice.c | 19 |
1 files changed, 19 insertions, 0 deletions
@@ -261,3 +261,22 @@ void detach_advice(const char *new_name) fprintf(stderr, fmt, new_name); } + +void advise_on_moving_dirty_path(struct string_list *pathspec_list) +{ + struct string_list_item *item; + + if (!pathspec_list->nr) + return; + + fprintf(stderr, _("The following paths have been moved outside the\n" + "sparse-checkout definition but are not sparse due to local\n" + "modifications.\n")); + for_each_string_list_item(item, pathspec_list) + fprintf(stderr, "%s\n", item->string); + + advise_if_enabled(ADVICE_UPDATE_SPARSE_PATH, + _("To correct the sparsity of these paths, do the following:\n" + "* Use \"git add --sparse <paths>\" to update the index\n" + "* Use \"git sparse-checkout reapply\" to apply the sparsity rules")); +} |