Changeset View
Changeset View
Standalone View
Standalone View
swh/loader/svn/replay.py
Show First 20 Lines • Show All 713 Lines • ▼ Show 20 Lines | def remove_external_path(self, external_path: bytes) -> None: | ||||
subpath_split = external_path.split(b"/")[:-1] | subpath_split = external_path.split(b"/")[:-1] | ||||
for i in reversed(range(1, len(subpath_split) + 1)): | for i in reversed(range(1, len(subpath_split) + 1)): | ||||
# delete external sub-directory only if it is not versioned | # delete external sub-directory only if it is not versioned | ||||
subpath = os.path.join(self.path, b"/".join(subpath_split[0:i])) | subpath = os.path.join(self.path, b"/".join(subpath_split[0:i])) | ||||
try: | try: | ||||
self.svnrepo.client.info( | self.svnrepo.client.info( | ||||
svn_urljoin(self.svnrepo.remote_url, os.fsdecode(subpath)), | svn_urljoin(self.svnrepo.remote_url, os.fsdecode(subpath)), | ||||
peg_revision=self.editor.revnum, | peg_revision=self.editor.revnum, | ||||
revision=self.editor.revnum, | |||||
) | ) | ||||
except SubversionException: | except SubversionException: | ||||
self.remove_child(subpath) | self.remove_child(subpath) | ||||
else: | else: | ||||
break | break | ||||
try: | try: | ||||
# externals can overlap with versioned files so we must restore | # externals can overlap with versioned files so we must restore | ||||
▲ Show 20 Lines • Show All 213 Lines • Show Last 20 Lines |