Skip to content

Commit

Permalink
entry: extract a header file for entry.c functions
Browse files Browse the repository at this point in the history
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. While at it let's also move a comment related to
checkout_entry() from entry.c to entry.h as it's more useful to describe
the function there.

Original-patch-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Matheus Tavares <matheus.bernardino@usp.br>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
matheustavares authored and gitster committed Mar 23, 2021
1 parent f59d15b commit d052cc0
Show file tree
Hide file tree
Showing 9 changed files with 49 additions and 32 deletions.
1 change: 1 addition & 0 deletions apply.c
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
#include "quote.h"
#include "rerere.h"
#include "apply.h"
#include "entry.h"

struct gitdiff_data {
struct strbuf *root;
Expand Down
1 change: 1 addition & 0 deletions builtin/checkout-index.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
1 change: 1 addition & 0 deletions builtin/checkout.c
Original file line number Diff line number Diff line change
Expand Up @@ -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>"),
Expand Down
1 change: 1 addition & 0 deletions builtin/difftool.c
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
#include "lockfile.h"
#include "object-store.h"
#include "dir.h"
#include "entry.h"

static int trust_exit_code;

Expand Down
1 change: 1 addition & 0 deletions builtin/stash.c
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
#include "log-tree.h"
#include "diffcore.h"
#include "exec-cmd.h"
#include "entry.h"

#define INCLUDE_ALL_FILES 2

Expand Down
24 changes: 0 additions & 24 deletions cache.h
Original file line number Diff line number Diff line change
Expand Up @@ -1621,30 +1621,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;
Expand Down
9 changes: 1 addition & 8 deletions entry.c
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down Expand Up @@ -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)
{
Expand Down
42 changes: 42 additions & 0 deletions entry.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
#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 */
1 change: 1 addition & 0 deletions unpack-trees.c
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down

0 comments on commit d052cc0

Please sign in to comment.