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: 92+ 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-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
List information: http://vger.kernel.org/majordomo-info.html
* 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.
Code repositories for project(s) associated with this public inbox
https://80x24.org/mirrors/git.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).