Commit Diff


commit - 4763ba9399ea4b00a60d7d1fae1c0f494fa11eae
commit + da041f9f70134af8278086d6235f319d373cc58a
blob - dec12e5d435683a97c818906bc125ced6c85b669
blob + c92f002d5f03c9d7bfb10c0e1ccb757534ebcea3
--- dulwich/object_store.py
+++ dulwich/object_store.py
@@ -227,6 +227,42 @@ class BaseObjectStore:
             except KeyError:
                 if not allow_missing:
                     raise
+
+    def find_missing_objects(
+        self,
+        haves,
+        wants,
+        shallow=None,
+        progress=None,
+        get_tagged=None,
+        get_parents=lambda commit: commit.parents,
+    ):
+        """Find the missing objects required for a set of revisions.
+
+        Args:
+          haves: Iterable over SHAs already in common.
+          wants: Iterable over SHAs of objects to fetch.
+          shallow: Set of shallow commit SHA1s to skip
+          progress: Simple progress function that will be called with
+            updated progress strings.
+          get_tagged: Function that returns a dict of pointed-to sha ->
+            tag sha for including tags.
+          get_parents: Optional function for getting the parents of a
+            commit.
+        Returns: Iterator over (sha, path) pairs.
+        """
+        warnings.warn(
+            'Please use MissingObjectFinder(store)', DeprecationWarning)
+        finder = MissingObjectFinder(
+            self,
+            haves=haves,
+            wants=wants,
+            shallow=shallow,
+            progress=progress,
+            get_tagged=get_tagged,
+            get_parents=get_parents,
+        )
+        return iter(finder)
 
     def find_common_revisions(self, graphwalker):
         """Find which revisions this store has in common using graphwalker.