From: Stefan Beller <sbeller@google.com>
To: jonathantanmy@google.com
Cc: git@vger.kernel.org, Stefan Beller <sbeller@google.com>,
Jonathan Nieder <jrnieder@gmail.com>
Subject: [PATCH 03/19] object-store: move lookup_replace_object to replace-object.h
Date: Fri, 6 Apr 2018 16:21:20 -0700 [thread overview]
Message-ID: <20180406232136.253950-4-sbeller@google.com> (raw)
In-Reply-To: <20180406232136.253950-1-sbeller@google.com>
lookup_replace_object is a low-level function that most users of the
object store do not need to use directly.
Move it to replace-object.h to avoid a dependency loop in an upcoming
change to its inline definition that will make use of repository.h.
Signed-off-by: Stefan Beller <sbeller@google.com>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
---
builtin/mktag.c | 1 +
cache.h | 19 -------------------
object.c | 1 +
replace-object.h | 22 ++++++++++++++++++++++
sha1_file.c | 1 +
streaming.c | 1 +
6 files changed, 26 insertions(+), 19 deletions(-)
diff --git a/builtin/mktag.c b/builtin/mktag.c
index 031b750f06..5e40e2152f 100644
--- a/builtin/mktag.c
+++ b/builtin/mktag.c
@@ -1,5 +1,6 @@
#include "builtin.h"
#include "tag.h"
+#include "replace-object.h"
/*
* A signature file has a very simple fixed format: four lines
diff --git a/cache.h b/cache.h
index 720664e394..2a238d6398 100644
--- a/cache.h
+++ b/cache.h
@@ -1214,25 +1214,6 @@ static inline void *read_sha1_file(const unsigned char *sha1, enum object_type *
return read_sha1_file_extended(sha1, type, size, 1);
}
-/*
- * This internal function is only declared here for the benefit of
- * lookup_replace_object(). Please do not call it directly.
- */
-extern const unsigned char *do_lookup_replace_object(const unsigned char *sha1);
-
-/*
- * If object sha1 should be replaced, return the replacement object's
- * name (replaced recursively, if necessary). The return value is
- * either sha1 or a pointer to a permanently-allocated value. When
- * object replacement is suppressed, always return sha1.
- */
-static inline const unsigned char *lookup_replace_object(const unsigned char *sha1)
-{
- if (!check_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);
diff --git a/object.c b/object.c
index 4c2cf7ff5d..9f381c44eb 100644
--- a/object.c
+++ b/object.c
@@ -1,5 +1,6 @@
#include "cache.h"
#include "object.h"
+#include "replace-object.h"
#include "blob.h"
#include "tree.h"
#include "commit.h"
diff --git a/replace-object.h b/replace-object.h
index 50731ec9c2..1e3e8805b9 100644
--- a/replace-object.h
+++ b/replace-object.h
@@ -1,9 +1,31 @@
#ifndef REPLACE_OBJECT_H
#define REPLACE_OBJECT_H
+#include "cache.h"
+#include "repository.h"
+
struct replace_object {
unsigned char original[GIT_MAX_RAWSZ];
unsigned char replacement[GIT_MAX_RAWSZ];
};
+/*
+ * This internal function is only declared here for the benefit of
+ * lookup_replace_object(). Please do not call it directly.
+ */
+extern const unsigned char *do_lookup_replace_object(const unsigned char *sha1);
+
+/*
+ * If object sha1 should be replaced, return the replacement object's
+ * name (replaced recursively, if necessary). The return value is
+ * either sha1 or a pointer to a permanently-allocated value. When
+ * object replacement is suppressed, always return sha1.
+ */
+static inline const unsigned char *lookup_replace_object(const unsigned char *sha1)
+{
+ if (!check_replace_refs)
+ return sha1;
+ return do_lookup_replace_object(sha1);
+}
+
#endif /* REPLACE_OBJECT_H */
diff --git a/sha1_file.c b/sha1_file.c
index 314ff55b47..68f1735476 100644
--- a/sha1_file.c
+++ b/sha1_file.c
@@ -23,6 +23,7 @@
#include "sha1-lookup.h"
#include "bulk-checkin.h"
#include "repository.h"
+#include "replace-object.h"
#include "streaming.h"
#include "dir.h"
#include "list.h"
diff --git a/streaming.c b/streaming.c
index 22d27df55e..29632065d0 100644
--- a/streaming.c
+++ b/streaming.c
@@ -5,6 +5,7 @@
#include "streaming.h"
#include "repository.h"
#include "object-store.h"
+#include "replace-object.h"
#include "packfile.h"
enum input_source {
--
2.17.0.484.g0c8726318c-goog
next prev parent reply other threads:[~2018-04-06 23:22 UTC|newest]
Thread overview: 91+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-04-06 23:21 [RFC PATCH 00/19] object-store refactoring 3 (replace objects, main ref store) Stefan Beller
2018-04-06 23:21 ` [PATCH 01/19] replace_object.c: rename to use dash in file name Stefan Beller
2018-04-06 23:21 ` [PATCH 02/19] replace-object: move replace_object to object store Stefan Beller
2018-04-09 13:51 ` Derrick Stolee
2018-04-06 23:21 ` Stefan Beller [this message]
2018-04-06 23:21 ` [PATCH 04/19] replace-object: move replace objects prepared flag " Stefan Beller
2018-04-06 23:21 ` [PATCH 05/19] replace-object: check_replace_refs is safe in multi repo environment Stefan Beller
2018-04-06 23:21 ` [PATCH 06/19] refs: add repository argument to get_main_ref_store Stefan Beller
2018-04-07 6:53 ` Eric Sunshine
2018-04-09 18:51 ` Stefan Beller
2018-04-06 23:21 ` [PATCH 07/19] refs: add repository argument to for_each_replace_ref Stefan Beller
2018-04-06 23:21 ` [PATCH 08/19] replace-object: add repository argument to replace_object_pos Stefan Beller
2018-04-06 23:21 ` [PATCH 09/19] replace-object: add repository argument to register_replace_object Stefan Beller
2018-04-06 23:21 ` [PATCH 10/19] replace-object: add repository argument to prepare_replace_object Stefan Beller
2018-04-06 23:21 ` [PATCH 11/19] replace-object: add repository argument to do_lookup_replace_object Stefan Beller
2018-04-06 23:21 ` [PATCH 12/19] replace-object: add repository argument to lookup_replace_object Stefan Beller
2018-04-06 23:21 ` [PATCH 13/19] refs: store the main ref store inside the repository struct Stefan Beller
2018-04-07 6:54 ` Eric Sunshine
2018-04-06 23:21 ` [PATCH 14/19] refs: allow for_each_replace_ref to handle arbitrary repositories Stefan Beller
2018-04-06 23:21 ` [PATCH 15/19] replace-object: allow replace_object_pos " Stefan Beller
2018-04-06 23:21 ` [PATCH 16/19] replace-object: allow register_replace_object " Stefan Beller
2018-04-06 23:21 ` [PATCH 17/19] replace-object: allow prepare_replace_object " Stefan Beller
2018-04-06 23:21 ` [PATCH 18/19] replace-object: allow do_lookup_replace_object " Stefan Beller
2018-04-06 23:21 ` [PATCH 19/19] replace-object: allow lookup_replace_object " Stefan Beller
2018-04-07 4:58 ` [RFC PATCH 00/19] object-store refactoring 3 (replace objects, main ref store) René Scharfe
2018-04-09 17:44 ` Stefan Beller
2018-04-07 9:50 ` Duy Nguyen
2018-04-09 17:39 ` Stefan Beller
2018-04-09 13:58 ` Derrick Stolee
[not found] ` <nycvar.QRO.7.76.6.1804091038430.55@ZVAVAG-6OXH6DA.rhebcr.pbec.zvpebfbsg.pbz>
2018-04-09 17:36 ` Stefan Beller
2018-04-09 22:45 ` [PATCHv2 00/16] " Stefan Beller
2018-04-09 22:45 ` [PATCH 01/16] replace_object: use oidmap Stefan Beller
2018-04-10 2:57 ` Junio C Hamano
2018-04-09 22:45 ` [PATCH 02/16] replace_object.c: rename to use dash in file name Stefan Beller
2018-04-10 3:00 ` Junio C Hamano
2018-04-10 17:57 ` Stefan Beller
2018-04-10 21:26 ` [PATCH 0/6] Rename files to use dashes instead of underscores Stefan Beller
2018-04-10 21:26 ` [PATCH 1/6] write_or_die.c: rename to use dashes in file name Stefan Beller
2018-04-10 21:26 ` [PATCH 2/6] unicode_width.h: rename to use dash " Stefan Beller
2018-04-10 21:26 ` [PATCH 3/6] exec_cmd: " Stefan Beller
2018-04-10 21:26 ` [PATCH 4/6] sha1_name.c: " Stefan Beller
2018-04-10 21:26 ` [PATCH 5/6] sha1_file.c: " Stefan Beller
2018-04-10 21:26 ` [PATCH 6/6] replace_object.c: " Stefan Beller
2018-04-10 21:28 ` [PATCH 0/6] Rename files to use dashes instead of underscores Stefan Beller
2018-04-10 22:39 ` Johannes Schindelin
2018-04-10 22:47 ` Stefan Beller
2018-04-11 23:13 ` brian m. carlson
2018-04-09 22:45 ` [PATCH 03/16] replace-object: move replace_map to object store Stefan Beller
2018-04-10 3:10 ` Junio C Hamano
2018-04-09 22:45 ` [PATCH 04/16] object-store: move lookup_replace_object to replace-object.h Stefan Beller
2018-04-09 22:45 ` [PATCH 05/16] replace-object: eliminate replace objects prepared flag Stefan Beller
2018-04-10 3:21 ` Junio C Hamano
2018-04-10 7:32 ` René Scharfe
2018-04-09 22:45 ` [PATCH 06/16] replace-object: check_replace_refs is safe in multi repo environment Stefan Beller
2018-04-10 3:37 ` Junio C Hamano
2018-04-09 22:45 ` [PATCH 07/16] refs: add repository argument to get_main_ref_store Stefan Beller
2018-04-10 13:36 ` Michael Haggerty
2018-04-10 18:27 ` Stefan Beller
2018-04-09 22:45 ` [PATCH 08/16] refs: add repository argument to for_each_replace_ref Stefan Beller
2018-04-09 22:45 ` [PATCH 09/16] replace-object: add repository argument to prepare_replace_object Stefan Beller
2018-04-09 22:45 ` [PATCH 10/16] replace-object: add repository argument to do_lookup_replace_object Stefan Beller
2018-04-09 22:45 ` [PATCH 11/16] replace-object: add repository argument to lookup_replace_object Stefan Beller
2018-04-09 22:45 ` [PATCH 12/16] refs: store the main ref store inside the repository struct Stefan Beller
2018-04-09 23:24 ` Brandon Williams
2018-04-09 23:29 ` Stefan Beller
2018-04-09 23:35 ` Brandon Williams
2018-04-10 14:02 ` Michael Haggerty
2018-04-10 18:38 ` Stefan Beller
2018-04-09 22:45 ` [PATCH 13/16] refs: allow for_each_replace_ref to handle arbitrary repositories Stefan Beller
2018-04-09 22:45 ` [PATCH 14/16] replace-object: allow prepare_replace_object " Stefan Beller
2018-04-09 22:45 ` [PATCH 15/16] replace-object: allow do_lookup_replace_object " Stefan Beller
2018-04-09 22:45 ` [PATCH 16/16] replace-object: allow lookup_replace_object " Stefan Beller
2018-04-09 23:25 ` [PATCHv2 00/16] object-store refactoring 3 (replace objects, main ref store) Brandon Williams
2018-04-09 23:31 ` Stefan Beller
2018-04-12 0:21 ` [PATCHv3 00/15] replace_object.c: rename to use dash in file name Stefan Beller
2018-04-12 0:21 ` [PATCH 01/15] replace_object: use oidmap Stefan Beller
2018-04-12 0:21 ` [PATCH 02/15] replace-object: move replace_map to object store Stefan Beller
2018-04-12 0:21 ` [PATCH 03/15] object-store: move lookup_replace_object to replace-object.h Stefan Beller
2018-04-12 0:21 ` [PATCH 04/15] replace-object: eliminate replace objects prepared flag Stefan Beller
2018-04-12 0:21 ` [PATCH 05/15] replace-object: check_replace_refs is safe in multi repo environment Stefan Beller
2018-04-12 0:21 ` [PATCH 06/15] refs: add repository argument to get_main_ref_store Stefan Beller
2018-04-12 0:21 ` [PATCH 07/15] refs: add repository argument to for_each_replace_ref Stefan Beller
2018-04-12 0:21 ` [PATCH 08/15] replace-object: add repository argument to prepare_replace_object Stefan Beller
2018-04-12 0:21 ` [PATCH 09/15] replace-object: add repository argument to do_lookup_replace_object Stefan Beller
2018-04-12 0:21 ` [PATCH 10/15] replace-object: add repository argument to lookup_replace_object Stefan Beller
2018-04-12 0:21 ` [PATCH 11/15] refs: store the main ref store inside the repository struct Stefan Beller
2018-04-12 0:21 ` [PATCH 12/15] refs: allow for_each_replace_ref to handle arbitrary repositories Stefan Beller
2018-04-12 0:21 ` [PATCH 13/15] replace-object: allow prepare_replace_object " Stefan Beller
2018-04-12 0:21 ` [PATCH 14/15] replace-object: allow do_lookup_replace_object " Stefan Beller
2018-04-12 0:21 ` [PATCH 15/15] replace-object: allow lookup_replace_object " Stefan Beller
2018-04-12 11:43 ` [PATCHv3 00/15] replace_object.c: rename to use dash in file name Derrick Stolee
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20180406232136.253950-4-sbeller@google.com \
--to=sbeller@google.com \
--cc=git@vger.kernel.org \
--cc=jonathantanmy@google.com \
--cc=jrnieder@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.