git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Stefan Beller <sbeller@google.com>
To: sbeller@google.com
Cc: git@vger.kernel.org, jonathantanmy@google.com,
	sunshine@sunshineco.com, pclouds@gmail.com, l.s.r@web.de,
	sandals@crustytoothpaste.net,
	Jonathan Nieder <jrnieder@gmail.com>
Subject: [PATCH 04/16] object-store: move lookup_replace_object to replace-object.h
Date: Mon,  9 Apr 2018 15:45:21 -0700	[thread overview]
Message-ID: <20180409224533.17764-5-sbeller@google.com> (raw)
In-Reply-To: <20180409224533.17764-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 9f5a50a8fd..e3d20a7722 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 a5c4fddf77..e3c6cba514 100644
--- a/cache.h
+++ b/cache.h
@@ -1187,25 +1187,6 @@ static inline void *read_object_file(const struct object_id *oid, enum object_ty
 	return read_object_file_extended(oid, 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 struct object_id *do_lookup_replace_object(const struct object_id *oid);
-
-/*
- * 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 struct object_id *lookup_replace_object(const struct object_id *oid)
-{
-	if (!check_replace_refs)
-		return oid;
-	return do_lookup_replace_object(oid);
-}
-
 /* Read and unpack an object file into memory, write memory to an object file */
 extern int oid_object_info(const struct object_id *, unsigned long *);
 
diff --git a/object.c b/object.c
index a0a756f24f..998ec2a25f 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 f9a2b70eb8..15315311fb 100644
--- a/replace-object.h
+++ b/replace-object.h
@@ -1,9 +1,31 @@
 #ifndef REPLACE_OBJECT_H
 #define REPLACE_OBJECT_H
 
+#include "oidmap.h"
+#include "repository.h"
+
 struct replace_object {
 	struct oidmap_entry original;
 	struct object_id replacement;
 };
 
+/*
+ * This internal function is only declared here for the benefit of
+ * lookup_replace_object().  Please do not call it directly.
+ */
+extern const struct object_id *do_lookup_replace_object(const struct object_id *oid);
+
+/*
+ * 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 struct object_id *lookup_replace_object(const struct object_id *oid)
+{
+	if (!check_replace_refs)
+		return oid;
+	return do_lookup_replace_object(oid);
+}
+
 #endif /* REPLACE_OBJECT_H */
diff --git a/sha1_file.c b/sha1_file.c
index 3e0af41892..c38e41e49e 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 7d55ba64c7..a6e1162946 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


  parent reply	other threads:[~2018-04-09 22:45 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 ` [PATCH 03/19] object-store: move lookup_replace_object to replace-object.h Stefan Beller
2018-04-06 23:21 ` [PATCH 04/19] replace-object: move replace objects prepared flag to object store 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   ` Stefan Beller [this message]
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=20180409224533.17764-5-sbeller@google.com \
    --to=sbeller@google.com \
    --cc=git@vger.kernel.org \
    --cc=jonathantanmy@google.com \
    --cc=jrnieder@gmail.com \
    --cc=l.s.r@web.de \
    --cc=pclouds@gmail.com \
    --cc=sandals@crustytoothpaste.net \
    --cc=sunshine@sunshineco.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).