git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH 03/15] object-store: move lookup_replace_object to replace-object.h

From
Stefan Beller <sbeller@google.com>
Date
Apr 12, 2018, 00:21 UTC
Message-ID
<20180412002118.102976-4-sbeller@google.com>
In-Reply-To
<20180412002118.102976-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
Previous: Stefan BellerNext: Stefan Beller
Message 77 of 91 in “object-store refactoring 3 (replace objects, main ref store)”
  1. 00/19 object-store refactoring 3 (replace objects, main ref store)Stefan Beller, Apr 6, 2018
  2. 01/19 replace_object.c: rename to use dash in file nameStefan Beller, Apr 6, 2018
  3. 02/19 replace-object: move replace_object to object storeStefan Beller, Apr 6, 2018
  4. Derrick StoleeApr 9, 2018
  5. 03/19 object-store: move lookup_replace_object to replace-object.hStefan Beller, Apr 6, 2018
  6. 08/19 replace-object: add repository argument to replace_object_posStefan Beller, Apr 6, 2018
  7. 09/19 replace-object: add repository argument to register_replace_objectStefan Beller, Apr 6, 2018
  8. 11/19 replace-object: add repository argument to do_lookup_replace_objectStefan Beller, Apr 6, 2018
  9. 12/19 replace-object: add repository argument to lookup_replace_objectStefan Beller, Apr 6, 2018
  10. 13/19 refs: store the main ref store inside the repository structStefan Beller, Apr 6, 2018
  11. Eric SunshineApr 7, 2018
  12. 15/19 replace-object: allow replace_object_pos to handle arbitrary repositoriesStefan Beller, Apr 6, 2018
  13. 14/19 refs: allow for_each_replace_ref to handle arbitrary repositoriesStefan Beller, Apr 6, 2018
  14. 17/19 replace-object: allow prepare_replace_object to handle arbitrary repositoriesStefan Beller, Apr 6, 2018
  15. 16/19 replace-object: allow register_replace_object to handle arbitrary repositoriesStefan Beller, Apr 6, 2018
  16. 19/19 replace-object: allow lookup_replace_object to handle arbitrary repositoriesStefan Beller, Apr 6, 2018
  17. 18/19 replace-object: allow do_lookup_replace_object to handle arbitrary repositoriesStefan Beller, Apr 6, 2018
  18. 10/19 replace-object: add repository argument to prepare_replace_objectStefan Beller, Apr 6, 2018
  19. 04/19 replace-object: move replace objects prepared flag to object storeStefan Beller, Apr 6, 2018
  20. 07/19 refs: add repository argument to for_each_replace_refStefan Beller, Apr 6, 2018
  21. 05/19 replace-object: check_replace_refs is safe in multi repo environmentStefan Beller, Apr 6, 2018
  22. 06/19 refs: add repository argument to get_main_ref_storeStefan Beller, Apr 6, 2018
  23. Eric SunshineApr 7, 2018
  24. Stefan BellerApr 9, 2018
  25. René ScharfeApr 7, 2018
  26. Stefan BellerApr 9, 2018
  27. Duy NguyenApr 7, 2018
  28. Stefan BellerApr 9, 2018
  29. Derrick StoleeApr 9, 2018
  30. 00/16 object-store refactoring 3 (replace objects, main ref store)Stefan Beller, Apr 9, 2018
  31. 01/16 replace_object: use oidmapStefan Beller, Apr 9, 2018
  32. Junio C HamanoApr 10, 2018
  33. 03/16 replace-object: move replace_map to object storeStefan Beller, Apr 9, 2018
  34. Junio C HamanoApr 10, 2018
  35. 02/16 replace_object.c: rename to use dash in file nameStefan Beller, Apr 9, 2018
  36. Junio C HamanoApr 10, 2018
  37. Stefan BellerApr 10, 2018
  38. 0/6 Rename files to use dashes instead of underscoresStefan Beller, Apr 10, 2018
  39. 1/6 write_or_die.c: rename to use dashes in file nameStefan Beller, Apr 10, 2018
  40. 2/6 unicode_width.h: rename to use dash in file nameStefan Beller, Apr 10, 2018
  41. 3/6 exec_cmd: rename to use dash in file nameStefan Beller, Apr 10, 2018
  42. 5/6 sha1_file.c: rename to use dash in file nameStefan Beller, Apr 10, 2018
  43. 6/6 replace_object.c: rename to use dash in file nameStefan Beller, Apr 10, 2018
  44. 4/6 sha1_name.c: rename to use dash in file nameStefan Beller, Apr 10, 2018
  45. Stefan BellerApr 10, 2018
  46. Johannes SchindelinApr 10, 2018
  47. Stefan BellerApr 10, 2018
  48. brian m. carlsonApr 11, 2018
  49. 04/16 object-store: move lookup_replace_object to replace-object.hStefan Beller, Apr 9, 2018
  50. 06/16 replace-object: check_replace_refs is safe in multi repo environmentStefan Beller, Apr 9, 2018
  51. Junio C HamanoApr 10, 2018
  52. 05/16 replace-object: eliminate replace objects prepared flagStefan Beller, Apr 9, 2018
  53. Junio C HamanoApr 10, 2018
  54. René ScharfeApr 10, 2018
  55. 07/16 refs: add repository argument to get_main_ref_storeStefan Beller, Apr 9, 2018
  56. Michael HaggertyApr 10, 2018
  57. Stefan BellerApr 10, 2018
  58. 08/16 refs: add repository argument to for_each_replace_refStefan Beller, Apr 9, 2018
  59. 09/16 replace-object: add repository argument to prepare_replace_objectStefan Beller, Apr 9, 2018
  60. 13/16 refs: allow for_each_replace_ref to handle arbitrary repositoriesStefan Beller, Apr 9, 2018
  61. 12/16 refs: store the main ref store inside the repository structStefan Beller, Apr 9, 2018
  62. Brandon WilliamsApr 9, 2018
  63. Stefan BellerApr 9, 2018
  64. Brandon WilliamsApr 9, 2018
  65. Michael HaggertyApr 10, 2018
  66. Stefan BellerApr 10, 2018
  67. 15/16 replace-object: allow do_lookup_replace_object to handle arbitrary repositoriesStefan Beller, Apr 9, 2018
  68. 14/16 replace-object: allow prepare_replace_object to handle arbitrary repositoriesStefan Beller, Apr 9, 2018
  69. 16/16 replace-object: allow lookup_replace_object to handle arbitrary repositoriesStefan Beller, Apr 9, 2018
  70. 11/16 replace-object: add repository argument to lookup_replace_objectStefan Beller, Apr 9, 2018
  71. 10/16 replace-object: add repository argument to do_lookup_replace_objectStefan Beller, Apr 9, 2018
  72. Brandon WilliamsApr 9, 2018
  73. Stefan BellerApr 9, 2018
  74. 00/15 replace_object.c: rename to use dash in file nameStefan Beller, Apr 12, 2018
  75. 01/15 replace_object: use oidmapStefan Beller, Apr 12, 2018
  76. 02/15 replace-object: move replace_map to object storeStefan Beller, Apr 12, 2018
  77. 03/15 object-store: move lookup_replace_object to replace-object.hStefan Beller, Apr 12, 2018
  78. 05/15 replace-object: check_replace_refs is safe in multi repo environmentStefan Beller, Apr 12, 2018
  79. 07/15 refs: add repository argument to for_each_replace_refStefan Beller, Apr 12, 2018
  80. 04/15 replace-object: eliminate replace objects prepared flagStefan Beller, Apr 12, 2018
  81. 13/15 replace-object: allow prepare_replace_object to handle arbitrary repositoriesStefan Beller, Apr 12, 2018
  82. 12/15 refs: allow for_each_replace_ref to handle arbitrary repositoriesStefan Beller, Apr 12, 2018
  83. 14/15 replace-object: allow do_lookup_replace_object to handle arbitrary repositoriesStefan Beller, Apr 12, 2018
  84. 15/15 replace-object: allow lookup_replace_object to handle arbitrary repositoriesStefan Beller, Apr 12, 2018
  85. 06/15 refs: add repository argument to get_main_ref_storeStefan Beller, Apr 12, 2018
  86. 11/15 refs: store the main ref store inside the repository structStefan Beller, Apr 12, 2018
  87. 08/15 replace-object: add repository argument to prepare_replace_objectStefan Beller, Apr 12, 2018
  88. 09/15 replace-object: add repository argument to do_lookup_replace_objectStefan Beller, Apr 12, 2018
  89. 10/15 replace-object: add repository argument to lookup_replace_objectStefan Beller, Apr 12, 2018
  90. Derrick StoleeApr 12, 2018
  91. Stefan BellerApr 9, 2018

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.