projects
/
platform
/
upstream
/
git.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Imported Upstream version 2.19.5
[platform/upstream/git.git]
/
reachable.c
diff --git
a/reachable.c
b/reachable.c
index
d0199ca
..
6e9b810
100644
(file)
--- a/
reachable.c
+++ b/
reachable.c
@@
-9,6
+9,9
@@
#include "cache-tree.h"
#include "progress.h"
#include "list-objects.h"
#include "cache-tree.h"
#include "progress.h"
#include "list-objects.h"
+#include "packfile.h"
+#include "worktree.h"
+#include "object-store.h"
struct connectivity_progress {
struct progress *progress;
struct connectivity_progress {
struct progress *progress;
@@
-33,7
+36,7
@@
static int add_one_ref(const char *path, const struct object_id *oid,
return 0;
}
return 0;
}
- object = parse_object_or_die(oid
->hash
, path);
+ object = parse_object_or_die(oid, path);
add_pending_object(revs, object, "");
return 0;
add_pending_object(revs, object, "");
return 0;
@@
-55,11
+58,11
@@
static void mark_commit(struct commit *c, void *data)
struct recent_data {
struct rev_info *revs;
struct recent_data {
struct rev_info *revs;
-
unsigned long
timestamp;
+
timestamp_t
timestamp;
};
};
-static void add_recent_object(const
unsigned char *sha1
,
-
unsigned long
mtime,
+static void add_recent_object(const
struct object_id *oid
,
+
timestamp_t
mtime,
struct recent_data *data)
{
struct object *obj;
struct recent_data *data)
{
struct object *obj;
@@
-75,37
+78,37
@@
static void add_recent_object(const unsigned char *sha1,
* later processing, and the revision machinery expects
* commits and tags to have been parsed.
*/
* later processing, and the revision machinery expects
* commits and tags to have been parsed.
*/
- type =
sha1_object_info(sha1
, NULL);
+ type =
oid_object_info(the_repository, oid
, NULL);
if (type < 0)
if (type < 0)
- die("unable to get object info for %s",
sha1_to_hex(sha1
));
+ die("unable to get object info for %s",
oid_to_hex(oid
));
switch (type) {
case OBJ_TAG:
case OBJ_COMMIT:
switch (type) {
case OBJ_TAG:
case OBJ_COMMIT:
- obj = parse_object_or_die(
sha1
, NULL);
+ obj = parse_object_or_die(
oid
, NULL);
break;
case OBJ_TREE:
break;
case OBJ_TREE:
- obj = (struct object *)lookup_tree(
sha1
);
+ obj = (struct object *)lookup_tree(
the_repository, oid
);
break;
case OBJ_BLOB:
break;
case OBJ_BLOB:
- obj = (struct object *)lookup_blob(
sha1
);
+ obj = (struct object *)lookup_blob(
the_repository, oid
);
break;
default:
die("unknown object type for %s: %s",
break;
default:
die("unknown object type for %s: %s",
-
sha1_to_hex(sha1), type
name(type));
+
oid_to_hex(oid), type_
name(type));
}
if (!obj)
}
if (!obj)
- die("unable to lookup %s",
sha1_to_hex(sha1
));
+ die("unable to lookup %s",
oid_to_hex(oid
));
add_pending_object(data->revs, obj, "");
}
add_pending_object(data->revs, obj, "");
}
-static int add_recent_loose(const
unsigned char *sha1
,
+static int add_recent_loose(const
struct object_id *oid
,
const char *path, void *data)
{
struct stat st;
const char *path, void *data)
{
struct stat st;
- struct object *obj = lookup_object(
sha1
);
+ struct object *obj = lookup_object(
the_repository, oid->hash
);
if (obj && obj->flags & SEEN)
return 0;
if (obj && obj->flags & SEEN)
return 0;
@@
-119,27
+122,27
@@
static int add_recent_loose(const unsigned char *sha1,
*/
if (errno == ENOENT)
return 0;
*/
if (errno == ENOENT)
return 0;
- return error_errno("unable to stat %s",
sha1_to_hex(sha1
));
+ return error_errno("unable to stat %s",
oid_to_hex(oid
));
}
}
- add_recent_object(
sha1
, st.st_mtime, data);
+ add_recent_object(
oid
, st.st_mtime, data);
return 0;
}
return 0;
}
-static int add_recent_packed(const
unsigned char *sha1
,
+static int add_recent_packed(const
struct object_id *oid
,
struct packed_git *p, uint32_t pos,
void *data)
{
struct packed_git *p, uint32_t pos,
void *data)
{
- struct object *obj = lookup_object(
sha1
);
+ struct object *obj = lookup_object(
the_repository, oid->hash
);
if (obj && obj->flags & SEEN)
return 0;
if (obj && obj->flags & SEEN)
return 0;
- add_recent_object(
sha1
, p->mtime, data);
+ add_recent_object(
oid
, p->mtime, data);
return 0;
}
int add_unseen_recent_objects_to_traversal(struct rev_info *revs,
return 0;
}
int add_unseen_recent_objects_to_traversal(struct rev_info *revs,
-
unsigned long
timestamp)
+
timestamp_t
timestamp)
{
struct recent_data data;
int r;
{
struct recent_data data;
int r;
@@
-156,8
+159,7
@@
int add_unseen_recent_objects_to_traversal(struct rev_info *revs,
}
void mark_reachable_objects(struct rev_info *revs, int mark_reflog,
}
void mark_reachable_objects(struct rev_info *revs, int mark_reflog,
- unsigned long mark_recent,
- struct progress *progress)
+ timestamp_t mark_recent, struct progress *progress)
{
struct connectivity_progress cp;
{
struct connectivity_progress cp;
@@
-177,6
+179,7
@@
void mark_reachable_objects(struct rev_info *revs, int mark_reflog,
/* detached HEAD is not included in the list above */
head_ref(add_one_ref, revs);
/* detached HEAD is not included in the list above */
head_ref(add_one_ref, revs);
+ other_head_refs(add_one_ref, revs);
/* Add all reflog info */
if (mark_reflog)
/* Add all reflog info */
if (mark_reflog)