Message ID | 2caa2c4345d524e9e3bb0c388f8dc0b99236d166.1603937110.git.matheus.bernardino@usp.br (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | Parallel Checkout (part I) | expand |
Matheus Tavares <matheus.bernardino@usp.br> writes: > The declarations of entry.c's public functions and structures currently > reside in cache.h. Although not many, they contribute to the size of > cache.h and, when changed, cause the unnecessary recompilation of > modules that don't really use these functions. So let's move them to a > new entry.h header. Good idea. This is mostly moving things around, so there are only a few minor nits. > diff --git a/entry.h b/entry.h > new file mode 100644 > index 0000000000..2d69185448 > --- /dev/null > +++ b/entry.h > @@ -0,0 +1,41 @@ > +#ifndef ENTRY_H > +#define ENTRY_H > + > +#include "cache.h" > +#include "convert.h" > + > +struct checkout { > + struct index_state *istate; > + const char *base_dir; > + int base_dir_len; > + struct delayed_checkout *delayed_checkout; > + struct checkout_metadata meta; > + unsigned force:1, > + quiet:1, > + not_new:1, > + clone:1, > + refresh_cache:1; > +}; > +#define CHECKOUT_INIT { NULL, "" } > + It makes sense to have a blank here, like you did, as we just completed the definition of "struct checkout" and things directly related to it. > +#define TEMPORARY_FILENAME_LENGTH 25 > + > +/* > + * Write the contents from ce out to the working tree. > + * > + * When topath[] is not NULL, instead of writing to the working tree > + * file named by ce, a temporary file is created by this function and > + * its name is returned in topath[], which must be able to hold at > + * least TEMPORARY_FILENAME_LENGTH bytes long. > + */ > +int checkout_entry(struct cache_entry *ce, const struct checkout *state, > + char *topath, int *nr_checkouts); The comment before the above block applies to both the function and to the TEMPORARY_FILENAME_LENGTH preprocessor macro. And this is where we conclude the definition related to the function so it is a good idea to have a blank line here.... > +void enable_delayed_checkout(struct checkout *state); > +int finish_delayed_checkout(struct checkout *state, int *nr_checkouts); ....and here, as we have finished talking about the "delayed" stuff. > +/* > + * Unlink the last component and schedule the leading directories for > + * removal, such that empty directories get removed. > + */ > +void unlink_entry(const struct cache_entry *ce); > + > +#endif /* ENTRY_H */ > diff --git a/unpack-trees.c b/unpack-trees.c > index 323280dd48..a511fadd89 100644 > --- a/unpack-trees.c > +++ b/unpack-trees.c > @@ -16,6 +16,7 @@ > #include "fsmonitor.h" > #include "object-store.h" > #include "promisor-remote.h" > +#include "entry.h" > > /* > * Error messages expected by scripts out of plumbing commands such as n
diff --git a/apply.c b/apply.c index 76dba93c97..ddec80b4b0 100644 --- a/apply.c +++ b/apply.c @@ -21,6 +21,7 @@ #include "quote.h" #include "rerere.h" #include "apply.h" +#include "entry.h" struct gitdiff_data { struct strbuf *root; diff --git a/builtin/checkout-index.c b/builtin/checkout-index.c index 4bbfc92dce..9276ed0258 100644 --- a/builtin/checkout-index.c +++ b/builtin/checkout-index.c @@ -11,6 +11,7 @@ #include "quote.h" #include "cache-tree.h" #include "parse-options.h" +#include "entry.h" #define CHECKOUT_ALL 4 static int nul_term_line; diff --git a/builtin/checkout.c b/builtin/checkout.c index 0951f8fee5..b18b9d6f3c 100644 --- a/builtin/checkout.c +++ b/builtin/checkout.c @@ -26,6 +26,7 @@ #include "unpack-trees.h" #include "wt-status.h" #include "xdiff-interface.h" +#include "entry.h" static const char * const checkout_usage[] = { N_("git checkout [<options>] <branch>"), diff --git a/builtin/difftool.c b/builtin/difftool.c index 7ac432b881..dfa22b67eb 100644 --- a/builtin/difftool.c +++ b/builtin/difftool.c @@ -23,6 +23,7 @@ #include "lockfile.h" #include "object-store.h" #include "dir.h" +#include "entry.h" static int trust_exit_code; diff --git a/cache.h b/cache.h index c0072d43b1..ccfeb9ba2b 100644 --- a/cache.h +++ b/cache.h @@ -1706,30 +1706,6 @@ const char *show_ident_date(const struct ident_split *id, */ int ident_cmp(const struct ident_split *, const struct ident_split *); -struct checkout { - struct index_state *istate; - const char *base_dir; - int base_dir_len; - struct delayed_checkout *delayed_checkout; - struct checkout_metadata meta; - unsigned force:1, - quiet:1, - not_new:1, - clone:1, - refresh_cache:1; -}; -#define CHECKOUT_INIT { NULL, "" } - -#define TEMPORARY_FILENAME_LENGTH 25 -int checkout_entry(struct cache_entry *ce, const struct checkout *state, char *topath, int *nr_checkouts); -void enable_delayed_checkout(struct checkout *state); -int finish_delayed_checkout(struct checkout *state, int *nr_checkouts); -/* - * Unlink the last component and schedule the leading directories for - * removal, such that empty directories get removed. - */ -void unlink_entry(const struct cache_entry *ce); - struct cache_def { struct strbuf path; int flags; diff --git a/entry.c b/entry.c index a0532f1f00..b0b8099699 100644 --- a/entry.c +++ b/entry.c @@ -6,6 +6,7 @@ #include "submodule.h" #include "progress.h" #include "fsmonitor.h" +#include "entry.h" static void create_directories(const char *path, int path_len, const struct checkout *state) @@ -429,14 +430,6 @@ static void mark_colliding_entries(const struct checkout *state, } } -/* - * Write the contents from ce out to the working tree. - * - * When topath[] is not NULL, instead of writing to the working tree - * file named by ce, a temporary file is created by this function and - * its name is returned in topath[], which must be able to hold at - * least TEMPORARY_FILENAME_LENGTH bytes long. - */ int checkout_entry(struct cache_entry *ce, const struct checkout *state, char *topath, int *nr_checkouts) { diff --git a/entry.h b/entry.h new file mode 100644 index 0000000000..2d69185448 --- /dev/null +++ b/entry.h @@ -0,0 +1,41 @@ +#ifndef ENTRY_H +#define ENTRY_H + +#include "cache.h" +#include "convert.h" + +struct checkout { + struct index_state *istate; + const char *base_dir; + int base_dir_len; + struct delayed_checkout *delayed_checkout; + struct checkout_metadata meta; + unsigned force:1, + quiet:1, + not_new:1, + clone:1, + refresh_cache:1; +}; +#define CHECKOUT_INIT { NULL, "" } + +#define TEMPORARY_FILENAME_LENGTH 25 + +/* + * Write the contents from ce out to the working tree. + * + * When topath[] is not NULL, instead of writing to the working tree + * file named by ce, a temporary file is created by this function and + * its name is returned in topath[], which must be able to hold at + * least TEMPORARY_FILENAME_LENGTH bytes long. + */ +int checkout_entry(struct cache_entry *ce, const struct checkout *state, + char *topath, int *nr_checkouts); +void enable_delayed_checkout(struct checkout *state); +int finish_delayed_checkout(struct checkout *state, int *nr_checkouts); +/* + * Unlink the last component and schedule the leading directories for + * removal, such that empty directories get removed. + */ +void unlink_entry(const struct cache_entry *ce); + +#endif /* ENTRY_H */ diff --git a/unpack-trees.c b/unpack-trees.c index 323280dd48..a511fadd89 100644 --- a/unpack-trees.c +++ b/unpack-trees.c @@ -16,6 +16,7 @@ #include "fsmonitor.h" #include "object-store.h" #include "promisor-remote.h" +#include "entry.h" /* * Error messages expected by scripts out of plumbing commands such as