Page Menu
Home
Software Heritage
Search
Configure Global Search
Log In
Files
F7123956
D7132.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
1 KB
Subscribers
None
D7132.diff
View Options
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
Details
Attached
Mime Type
text/plain
Expires
Dec 20 2024, 7:14 AM (11 w, 3 d ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
3224310
Attached To
D7132: bzr: Allow cloning with breezy version without cmd_clone function
Event Timeline
Log In to Comment