mirror of
https://github.com/git/git.git
synced 2024-10-21 05:48:38 +02:00
diff: convert reuse_worktree_file to struct object_id
Signed-off-by: Brandon Williams <bmwill@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
f9704c2d82
commit
fb4a1c0dc8
10
diff.c
10
diff.c
@ -2717,7 +2717,7 @@ void fill_filespec(struct diff_filespec *spec, const struct object_id *oid,
|
|||||||
* the work tree has that object contents, return true, so that
|
* the work tree has that object contents, return true, so that
|
||||||
* prepare_temp_file() does not have to inflate and extract.
|
* prepare_temp_file() does not have to inflate and extract.
|
||||||
*/
|
*/
|
||||||
static int reuse_worktree_file(const char *name, const unsigned char *sha1, int want_file)
|
static int reuse_worktree_file(const char *name, const struct object_id *oid, int want_file)
|
||||||
{
|
{
|
||||||
const struct cache_entry *ce;
|
const struct cache_entry *ce;
|
||||||
struct stat st;
|
struct stat st;
|
||||||
@ -2748,7 +2748,7 @@ static int reuse_worktree_file(const char *name, const unsigned char *sha1, int
|
|||||||
* objects however would tend to be slower as they need
|
* objects however would tend to be slower as they need
|
||||||
* to be individually opened and inflated.
|
* to be individually opened and inflated.
|
||||||
*/
|
*/
|
||||||
if (!FAST_WORKING_DIRECTORY && !want_file && has_sha1_pack(sha1))
|
if (!FAST_WORKING_DIRECTORY && !want_file && has_sha1_pack(oid->hash))
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -2768,7 +2768,7 @@ static int reuse_worktree_file(const char *name, const unsigned char *sha1, int
|
|||||||
* This is not the sha1 we are looking for, or
|
* This is not the sha1 we are looking for, or
|
||||||
* unreusable because it is not a regular file.
|
* unreusable because it is not a regular file.
|
||||||
*/
|
*/
|
||||||
if (hashcmp(sha1, ce->oid.hash) || !S_ISREG(ce->ce_mode))
|
if (oidcmp(oid, &ce->oid) || !S_ISREG(ce->ce_mode))
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -2842,7 +2842,7 @@ int diff_populate_filespec(struct diff_filespec *s, unsigned int flags)
|
|||||||
return diff_populate_gitlink(s, size_only);
|
return diff_populate_gitlink(s, size_only);
|
||||||
|
|
||||||
if (!s->oid_valid ||
|
if (!s->oid_valid ||
|
||||||
reuse_worktree_file(s->path, s->oid.hash, 0)) {
|
reuse_worktree_file(s->path, &s->oid, 0)) {
|
||||||
struct strbuf buf = STRBUF_INIT;
|
struct strbuf buf = STRBUF_INIT;
|
||||||
struct stat st;
|
struct stat st;
|
||||||
int fd;
|
int fd;
|
||||||
@ -3008,7 +3008,7 @@ static struct diff_tempfile *prepare_temp_file(const char *name,
|
|||||||
|
|
||||||
if (!S_ISGITLINK(one->mode) &&
|
if (!S_ISGITLINK(one->mode) &&
|
||||||
(!one->oid_valid ||
|
(!one->oid_valid ||
|
||||||
reuse_worktree_file(name, one->oid.hash, 1))) {
|
reuse_worktree_file(name, &one->oid, 1))) {
|
||||||
struct stat st;
|
struct stat st;
|
||||||
if (lstat(name, &st) < 0) {
|
if (lstat(name, &st) < 0) {
|
||||||
if (errno == ENOENT)
|
if (errno == ENOENT)
|
||||||
|
Loading…
Reference in New Issue
Block a user