From: Thomas Gummerer <t.gummerer@gmail.com>
To: git@vger.kernel.org
Cc: "Junio C Hamano" <gitster@pobox.com>,
"Nguyễn Thái Ngọc Duy" <pclouds@gmail.com>,
"Elijah Newren" <newren@gmail.com>,
"Thomas Gummerer" <t.gummerer@gmail.com>
Subject: [PATCH 2/8] entry: factor out unlink_entry function
Date: Sun, 9 Dec 2018 20:04:43 +0000 [thread overview]
Message-ID: <20181209200449.16342-3-t.gummerer@gmail.com> (raw)
In-Reply-To: <20181209200449.16342-1-t.gummerer@gmail.com>
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>
---
cache.h | 5 +++++
entry.c | 15 +++++++++++++++
unpack-trees.c | 19 -------------------
3 files changed, 20 insertions(+), 19 deletions(-)
diff --git a/cache.h b/cache.h
index ca36b44ee0..c1c953e810 100644
--- a/cache.h
+++ b/cache.h
@@ -1542,6 +1542,11 @@ struct checkout {
extern int checkout_entry(struct cache_entry *ce, const struct checkout *state, char *topath);
extern void enable_delayed_checkout(struct checkout *state);
extern int finish_delayed_checkout(struct checkout *state);
+/*
+ * Unlink the last component and schedule the leading directories for
+ * removal, such that empty directories get removed.
+ */
+extern void unlink_entry(const struct cache_entry *ce);
struct cache_def {
struct strbuf path;
diff --git a/entry.c b/entry.c
index 5d136c5d55..3ec148ceee 100644
--- a/entry.c
+++ b/entry.c
@@ -508,3 +508,18 @@ int checkout_entry(struct cache_entry *ce,
create_directories(path.buf, path.len, state);
return write_entry(ce, path.buf, state, 0);
}
+
+void unlink_entry(const struct cache_entry *ce)
+{
+ const struct submodule *sub = submodule_from_ce(ce);
+ if (sub) {
+ /* state.force is set at the caller. */
+ submodule_move_head(ce->name, "HEAD", NULL,
+ SUBMODULE_MOVE_HEAD_FORCE);
+ }
+ if (!check_leading_path(ce->name, ce_namelen(ce)))
+ return;
+ if (remove_or_warn(ce->ce_mode, ce->name))
+ return;
+ schedule_dir_for_removal(ce->name, ce_namelen(ce));
+}
diff --git a/unpack-trees.c b/unpack-trees.c
index 7570df481b..e8d1a6ac50 100644
--- a/unpack-trees.c
+++ b/unpack-trees.c
@@ -300,25 +300,6 @@ static void load_gitmodules_file(struct index_state *index,
}
}
-/*
- * Unlink the last component and schedule the leading directories for
- * removal, such that empty directories get removed.
- */
-static void unlink_entry(const struct cache_entry *ce)
-{
- const struct submodule *sub = submodule_from_ce(ce);
- if (sub) {
- /* state.force is set at the caller. */
- submodule_move_head(ce->name, "HEAD", NULL,
- SUBMODULE_MOVE_HEAD_FORCE);
- }
- if (!check_leading_path(ce->name, ce_namelen(ce)))
- return;
- if (remove_or_warn(ce->ce_mode, ce->name))
- return;
- schedule_dir_for_removal(ce->name, ce_namelen(ce));
-}
-
static struct progress *get_progress(struct unpack_trees_options *o)
{
unsigned cnt = 0, total = 0;
--
2.20.0.405.gbc1bbc6f85
next prev parent reply other threads:[~2018-12-09 20:05 UTC|newest]
Thread overview: 115+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-12-09 20:04 [PATCH 0/8] introduce no-overlay and cached mode in git checkout Thomas Gummerer
2018-12-09 20:04 ` [PATCH 1/8] move worktree tests to t24* Thomas Gummerer
2018-12-10 3:48 ` Junio C Hamano
2018-12-10 15:32 ` Duy Nguyen
2018-12-11 21:50 ` Thomas Gummerer
2018-12-12 13:26 ` Eric Sunshine
2018-12-12 17:07 ` Duy Nguyen
2018-12-09 20:04 ` Thomas Gummerer [this message]
2018-12-10 15:49 ` [PATCH 2/8] entry: factor out unlink_entry function Duy Nguyen
2018-12-10 17:23 ` Elijah Newren
2018-12-10 17:27 ` Duy Nguyen
2018-12-11 2:23 ` Junio C Hamano
2018-12-20 13:36 ` Thomas Gummerer
2018-12-09 20:04 ` [PATCH 3/8] entry: support CE_WT_REMOVE flag in checkout_entry Thomas Gummerer
2018-12-10 15:58 ` Duy Nguyen
2018-12-11 2:28 ` Junio C Hamano
2018-12-12 6:16 ` Duy Nguyen
2018-12-12 7:36 ` Junio C Hamano
2018-12-10 17:49 ` Elijah Newren
2018-12-11 22:00 ` Thomas Gummerer
2018-12-09 20:04 ` [PATCH 4/8] read-cache: add invalidate parameter to remove_marked_cache_entries Thomas Gummerer
2018-12-10 16:08 ` Duy Nguyen
2018-12-10 18:09 ` Elijah Newren
2018-12-10 18:19 ` Duy Nguyen
2018-12-10 18:25 ` Elijah Newren
2018-12-10 18:33 ` Duy Nguyen
2018-12-10 18:47 ` Elijah Newren
2018-12-11 21:59 ` Thomas Gummerer
2018-12-11 2:42 ` Junio C Hamano
2018-12-09 20:04 ` [PATCH 5/8] checkout: introduce --{,no-}overlay option Thomas Gummerer
2018-12-10 16:42 ` Duy Nguyen
2018-12-11 22:42 ` Thomas Gummerer
2018-12-10 18:19 ` Elijah Newren
2018-12-11 3:07 ` Junio C Hamano
2018-12-11 6:04 ` Elijah Newren
2018-12-11 22:07 ` Thomas Gummerer
2018-12-09 20:04 ` [PATCH 6/8] checkout: add --cached option Thomas Gummerer
2018-12-10 16:49 ` Duy Nguyen
2018-12-11 3:13 ` Junio C Hamano
2018-12-11 6:12 ` Elijah Newren
2018-12-11 19:23 ` Duy Nguyen
2019-01-31 5:54 ` Duy Nguyen
2019-01-31 19:05 ` Junio C Hamano
2019-02-01 6:48 ` Duy Nguyen
2019-02-01 17:57 ` Junio C Hamano
2019-02-02 10:57 ` Duy Nguyen
2019-02-19 4:20 ` Duy Nguyen
2019-02-19 14:42 ` Elijah Newren
2019-02-19 14:57 ` Duy Nguyen
2019-02-19 19:07 ` Junio C Hamano
2019-02-19 22:24 ` Elijah Newren
2019-02-19 22:36 ` Junio C Hamano
2019-02-19 23:00 ` Elijah Newren
2019-02-20 1:53 ` Duy Nguyen
2019-02-19 19:02 ` Junio C Hamano
2019-02-19 19:10 ` Junio C Hamano
2019-02-19 22:04 ` Elijah Newren
2019-02-19 22:29 ` Junio C Hamano
2019-02-20 2:32 ` Duy Nguyen
2019-02-20 3:52 ` Duy Nguyen
2019-02-20 2:19 ` Duy Nguyen
2019-02-19 22:13 ` Elijah Newren
2019-02-19 22:33 ` Junio C Hamano
2018-12-10 18:42 ` Elijah Newren
2018-12-11 22:18 ` Thomas Gummerer
2018-12-09 20:04 ` [PATCH 7/8] checkout: allow ignoring unmatched pathspec Thomas Gummerer
2018-12-10 16:51 ` Duy Nguyen
2018-12-11 22:23 ` Thomas Gummerer
2018-12-10 20:25 ` Elijah Newren
2018-12-11 22:36 ` Thomas Gummerer
2018-12-09 20:04 ` [PATCH 8/8] stash: use git checkout --no-overlay Thomas Gummerer
2018-12-10 20:26 ` Elijah Newren
2018-12-10 3:47 ` [PATCH 0/8] introduce no-overlay and cached mode in git checkout Junio C Hamano
2018-12-20 8:43 ` Thomas Gummerer
2018-12-10 17:06 ` Duy Nguyen
2018-12-10 17:18 ` Elijah Newren
2018-12-10 18:37 ` Duy Nguyen
2018-12-11 22:52 ` Thomas Gummerer
2018-12-12 7:28 ` Junio C Hamano
2018-12-20 13:48 ` [PATCH v2 0/8] introduce no-overlay " Thomas Gummerer
2018-12-20 13:48 ` [PATCH v2 1/8] move worktree tests to t24* Thomas Gummerer
2018-12-20 13:48 ` [PATCH v2 2/8] entry: factor out unlink_entry function Thomas Gummerer
2018-12-20 13:48 ` [PATCH v2 3/8] entry: support CE_WT_REMOVE flag in checkout_entry Thomas Gummerer
2018-12-20 13:48 ` [PATCH v2 4/8] read-cache: add invalidate parameter to remove_marked_cache_entries Thomas Gummerer
2018-12-20 13:48 ` [PATCH v2 5/8] checkout: clarify comment Thomas Gummerer
2018-12-20 13:48 ` [PATCH v2 6/8] checkout: factor out mark_cache_entry_for_checkout function Thomas Gummerer
2018-12-20 13:48 ` [PATCH v2 7/8] checkout: introduce --{,no-}overlay option Thomas Gummerer
2018-12-23 8:05 ` Duy Nguyen
2018-12-23 9:44 ` Eric Sunshine
2019-01-06 18:18 ` Thomas Gummerer
2018-12-20 13:48 ` [PATCH v2 8/8] checkout: introduce checkout.overlayMode config Thomas Gummerer
2019-01-02 23:39 ` Junio C Hamano
2019-01-06 18:32 ` Thomas Gummerer
2019-01-07 17:00 ` Junio C Hamano
2019-01-08 21:52 ` [PATCH v3 0/8] introduce no-overlay mode in git checkout Thomas Gummerer
2019-01-08 21:52 ` [PATCH v3 1/8] move worktree tests to t24* Thomas Gummerer
2019-01-08 21:52 ` [PATCH v3 2/8] entry: factor out unlink_entry function Thomas Gummerer
2019-01-08 21:52 ` [PATCH v3 3/8] entry: support CE_WT_REMOVE flag in checkout_entry Thomas Gummerer
2019-01-08 21:52 ` [PATCH v3 4/8] read-cache: add invalidate parameter to remove_marked_cache_entries Thomas Gummerer
2019-01-08 21:52 ` [PATCH v3 5/8] checkout: clarify comment Thomas Gummerer
2019-01-08 21:52 ` [PATCH v3 6/8] checkout: factor out mark_cache_entry_for_checkout function Thomas Gummerer
2019-01-08 21:52 ` [PATCH v3 7/8] checkout: introduce --{,no-}overlay option Thomas Gummerer
2019-01-22 23:53 ` Jonathan Nieder
2019-01-23 19:05 ` Junio C Hamano
2019-01-23 20:21 ` Thomas Gummerer
2019-01-23 20:47 ` Jonathan Nieder
2019-01-24 22:08 ` Thomas Gummerer
2019-01-23 21:08 ` Junio C Hamano
2019-01-24 1:12 ` Jonathan Nieder
2019-01-24 22:02 ` Thomas Gummerer
2019-01-24 23:02 ` Junio C Hamano
2019-01-25 2:26 ` Jonathan Nieder
2019-01-25 9:24 ` Duy Nguyen
2019-02-09 18:54 ` Philip Oakley
2019-01-08 21:52 ` [PATCH v3 8/8] checkout: introduce checkout.overlayMode config Thomas Gummerer
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
List information: http://vger.kernel.org/majordomo-info.html
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20181209200449.16342-3-t.gummerer@gmail.com \
--to=t.gummerer@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=newren@gmail.com \
--cc=pclouds@gmail.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.
Code repositories for project(s) associated with this public inbox
https://80x24.org/mirrors/git.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).