Page MenuHomeSoftware Heritage

D7132.diff
No OneTemporary

D7132.diff

diff --git a/swh/loader/bzr/loader.py b/swh/loader/bzr/loader.py
--- a/swh/loader/bzr/loader.py
+++ b/swh/loader/bzr/loader.py
@@ -10,11 +10,10 @@
from functools import lru_cache, partial
import os
from tempfile import mkdtemp
-from typing import Dict, Iterator, List, NewType, Optional, Set, TypeVar, Union
+from typing import Callable, Dict, Iterator, List, NewType, Optional, Set, TypeVar, Union
from breezy import errors as bzr_errors
from breezy import repository, tsort
-from breezy.builtins import cmd_clone
from breezy.bzr import bzrdir
from breezy.bzr.branch import Branch as BzrBranch
from breezy.bzr.inventory import Inventory, InventoryEntry
@@ -86,6 +85,21 @@
check before dismissing the repository as broken or unsupported."""
+def bzr_clone(origin_url: str, repo_directory: str) -> Callable:
+ """Bazaar clone function"""
+ try:
+ from breezy.builtins import cmd_clone
+ closure_clone = partial(cmd_clone().run, origin_url, repo_directory)
+ except ImportError:
+ # stable python3.breezy does not define the cmd_clone yet
+ # fallback
+ def closure_clone():
+ from subprocess import run
+ run(["bzr", "clone", origin_url, repo_directory])
+
+ return closure_clone
+
+
class BzrDirectory(from_disk.Directory):
"""A more practical directory.
@@ -263,9 +277,9 @@
self.log.debug(
msg, self.origin_url, self._repo_directory, self._clone_timeout
)
- closure = partial(cmd_clone().run, self.origin_url, self._repo_directory)
+ closure_clone = bzr_clone(self.origin_url, self._repo_directory)
clone_with_timeout(
- self.origin_url, self._repo_directory, closure, self._clone_timeout
+ self.origin_url, self._repo_directory, closure_clone, self._clone_timeout
)
else: # existing local repository
# Allow to load on disk repository without cloning

File Metadata

Mime Type
text/plain
Expires
Dec 20 2024, 7:14 AM (11 w, 4 d ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
3224310

Event Timeline