summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cache.h1
-rw-r--r--revision.c2
-rw-r--r--revision.h2
-rw-r--r--sha1_file.c16
4 files changed, 12 insertions, 9 deletions
diff --git a/cache.h b/cache.h
index c1539bf89a..8e43f382e8 100644
--- a/cache.h
+++ b/cache.h
@@ -566,7 +566,6 @@ extern int check_sha1_signature(const unsigned char *sha1, void *buf, unsigned l
extern int move_temp_to_file(const char *tmpfile, const char *filename);
extern int has_sha1_pack(const unsigned char *sha1);
-extern int has_sha1_kept_pack(const unsigned char *sha1, const char **ignore);
extern int has_sha1_file(const unsigned char *sha1);
extern int has_loose_object_nonlocal(const unsigned char *sha1);
diff --git a/revision.c b/revision.c
index 746eeed972..795e0c03fe 100644
--- a/revision.c
+++ b/revision.c
@@ -1486,7 +1486,7 @@ enum commit_action simplify_commit(struct rev_info *revs, struct commit *commit)
if (commit->object.flags & SHOWN)
return commit_ignore;
if (revs->unpacked &&
- has_sha1_kept_pack(commit->object.sha1, revs->ignore_packed))
+ has_sha1_kept_pack(commit->object.sha1, revs))
return commit_ignore;
if (revs->show_all)
return commit_show;
diff --git a/revision.h b/revision.h
index 91f194478b..930429625f 100644
--- a/revision.h
+++ b/revision.h
@@ -158,4 +158,6 @@ enum commit_action {
extern enum commit_action simplify_commit(struct rev_info *revs, struct commit *commit);
+extern int has_sha1_kept_pack(const unsigned char *sha1, const struct rev_info *);
+
#endif
diff --git a/sha1_file.c b/sha1_file.c
index ac4375d298..f963c3cadb 100644
--- a/sha1_file.c
+++ b/sha1_file.c
@@ -16,6 +16,8 @@
#include "refs.h"
#include "pack-revindex.h"
#include "sha1-lookup.h"
+#include "diff.h"
+#include "revision.h"
#ifndef O_NOATIME
#if defined(__linux__) && (defined(__i386__) || defined(__PPC__))
@@ -1875,7 +1877,7 @@ int matches_pack_name(struct packed_git *p, const char *name)
}
static int find_pack_ent(const unsigned char *sha1, struct pack_entry *e,
- const char **ignore_packed)
+ const struct rev_info *revs)
{
static struct packed_git *last_found = (void *)1;
struct packed_git *p;
@@ -1887,9 +1889,9 @@ static int find_pack_ent(const unsigned char *sha1, struct pack_entry *e,
p = (last_found == (void *)1) ? packed_git : last_found;
do {
- if (ignore_packed) {
+ if (revs->ignore_packed) {
const char **ig;
- for (ig = ignore_packed; *ig; ig++)
+ for (ig = revs->ignore_packed; *ig; ig++)
if (matches_pack_name(p, *ig))
break;
if (*ig)
@@ -1941,9 +1943,9 @@ static int find_pack_entry(const unsigned char *sha1, struct pack_entry *e)
}
static int find_kept_pack_entry(const unsigned char *sha1, struct pack_entry *e,
- const char **ignore_packed)
+ const struct rev_info *revs)
{
- return find_pack_ent(sha1, e, ignore_packed);
+ return find_pack_ent(sha1, e, revs);
}
struct packed_git *find_sha1_pack(const unsigned char *sha1,
@@ -2413,10 +2415,10 @@ int has_sha1_pack(const unsigned char *sha1)
return find_pack_entry(sha1, &e);
}
-int has_sha1_kept_pack(const unsigned char *sha1, const char **ignore_packed)
+int has_sha1_kept_pack(const unsigned char *sha1, const struct rev_info *revs)
{
struct pack_entry e;
- return find_kept_pack_entry(sha1, &e, ignore_packed);
+ return find_kept_pack_entry(sha1, &e, revs);
}
int has_sha1_file(const unsigned char *sha1)