summaryrefslogtreecommitdiff
path: root/cache.h
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2011-05-20 03:37:21 (GMT)
committerJunio C Hamano <gitster@pobox.com>2011-05-20 03:37:21 (GMT)
commit61d7503da141f13bc916b36012760791761cc909 (patch)
tree2b1cff95e16f2ed1543e4790d682e2e4996e92b7 /cache.h
parent2d220862d43b4d54f3173f67956fc5221690fb7e (diff)
parent5bf29b950063c8fa2f3666cb6cf2ca20be61f3d1 (diff)
downloadgit-61d7503da141f13bc916b36012760791761cc909.zip
git-61d7503da141f13bc916b36012760791761cc909.tar.gz
git-61d7503da141f13bc916b36012760791761cc909.tar.bz2
Merge branch 'jc/replacing'
* jc/replacing: read_sha1_file(): allow selective bypassing of replacement mechanism inline lookup_replace_object() calls read_sha1_file(): get rid of read_sha1_file_repl() madness t6050: make sure we test not just commit replacement Declare lookup_replace_object() in cache.h, not in commit.h Conflicts: environment.c
Diffstat (limited to 'cache.h')
-rw-r--r--cache.h18
1 files changed, 14 insertions, 4 deletions
diff --git a/cache.h b/cache.h
index 4ae7736..66ddfb7 100644
--- a/cache.h
+++ b/cache.h
@@ -756,13 +756,23 @@ char *strip_path_suffix(const char *path, const char *suffix);
int daemon_avoid_alias(const char *path);
int offset_1st_component(const char *path);
-/* Read and unpack a sha1 file into memory, write memory to a sha1 file */
-extern int sha1_object_info(const unsigned char *, unsigned long *);
-extern void *read_sha1_file_repl(const unsigned char *sha1, enum object_type *type, unsigned long *size, const unsigned char **replacement);
+/* object replacement */
+#define READ_SHA1_FILE_REPLACE 1
+extern void *read_sha1_file_extended(const unsigned char *sha1, enum object_type *type, unsigned long *size, unsigned flag);
static inline void *read_sha1_file(const unsigned char *sha1, enum object_type *type, unsigned long *size)
{
- return read_sha1_file_repl(sha1, type, size, NULL);
+ return read_sha1_file_extended(sha1, type, size, READ_SHA1_FILE_REPLACE);
+}
+extern const unsigned char *do_lookup_replace_object(const unsigned char *sha1);
+static inline const unsigned char *lookup_replace_object(const unsigned char *sha1)
+{
+ if (!read_replace_refs)
+ return sha1;
+ return do_lookup_replace_object(sha1);
}
+
+/* Read and unpack a sha1 file into memory, write memory to a sha1 file */
+extern int sha1_object_info(const unsigned char *, unsigned long *);
extern int hash_sha1_file(const void *buf, unsigned long len, const char *type, unsigned char *sha1);
extern int write_sha1_file(const void *buf, unsigned long len, const char *type, unsigned char *return_sha1);
extern int pretend_sha1_file(void *, unsigned long, enum object_type, unsigned char *);