swh.loader.svn.utils module#
- class swh.loader.svn.utils.OutputStream(fileno)[source]#
- Bases: - object- Helper class to read lines from a program output while it is running - Parameters:
- fileno (int) – File descriptor of a program output stream opened in text mode 
 
- swh.loader.svn.utils.init_svn_repo_from_dump(dump_path: str, prefix: str | None = None, suffix: str | None = None, root_dir: str = '/tmp', gzip: bool = False, cleanup_dump: bool = True, max_rev: int = -1) Tuple[str, str][source]#
- Given a path to a svn dump, initialize an svn repository with the content of said dump. - Parameters:
- dump_path – The dump to the path 
- prefix – optional prefix file name for the working directory 
- suffix – optional suffix file name for the working directory 
- root_dir – the root directory where the working directory is created 
- gzip – Boolean to determine whether we treat the dump as compressed or not. 
- cleanup_dump – Whether we want this function call to clean up the dump at the end of the repository initialization. 
 
- Raises:
- ValueError in case of failure to run the command to uncompress and load the – 
- dump. – 
 
- Returns:
- temporary folder: containing the mounted repository 
- repo_path: path to the mounted repository inside the temporary folder 
 
- Return type:
- A tuple 
 
- swh.loader.svn.utils.init_svn_repo_from_archive_dump(archive_path: str, prefix: str | None = None, suffix: str | None = None, root_dir: str = '/tmp', cleanup_dump: bool = True) Tuple[str, str][source]#
- Given a path to an archive containing an svn dump, initializes an svn repository with the content of the uncompressed dump. - Parameters:
- archive_path – The archive svn dump path 
- prefix – optional prefix file name for the working directory 
- suffix – optional suffix file name for the working directory 
- root_dir – the root directory where the working directory is created 
- gzip – Boolean to determine whether we treat the dump as compressed or not. 
- cleanup_dump – Whether we want this function call to clean up the dump at the end of the repository initialization. 
 
- Raises:
- ValueError in case of failure to run the command to uncompress – 
- and load the dump. – 
 
- Returns:
- temporary folder: containing the mounted repository 
- repo_path: path to the mounted repository inside the
- temporary folder 
 
 
- Return type:
- A tuple 
 
- swh.loader.svn.utils.svn_urljoin(base_url: str, *args) str[source]#
- Join a base URL and a list of paths in a SVN way. - For instance: - svn_urljoin(”http://example.org”, “foo”, “bar”)
- will return “https://example.org/foo/bar 
 
- svn_urljoin(”http://example.org/foo”, “../bar”)
- will return “https://example.org/bar 
 
 - Parameters:
- base_url – Base URL to join paths with 
- args – path components 
 
- Returns:
- The joined URL 
 
- class swh.loader.svn.utils.ExternalDefinition(path: str, url: str, revision: int | None, peg_revision: int | None, relative_url: bool, legacy_format: bool)[source]#
- Bases: - object
- swh.loader.svn.utils.parse_external_definition(external: str, dir_path: str, repo_url: str) ExternalDefinition[source]#
- Parse a subversion external definition. - Parameters:
- external – an external definition, extracted from the lines split of a svn:externals property value 
- dir_path – The path of the directory in the subversion repository where the svn:externals property was set 
- repo_url – URL of the subversion repository 
 
- Returns:
- path relative to dir_path where the external should be exported 
- URL of the external to export 
- optional revision of the external to export 
- optional peg revision of the external to export 
- boolean indicating if the external URL is relative to the repository URL and targets a path not in the repository 
 
- Return type:
- A tuple with the following members 
 
- swh.loader.svn.utils.is_recursive_external(origin_url: str, dir_path: str, external_path: str, external_url: str) bool[source]#
- Check if an external definition can lead to a recursive subversion export operation (https://issues.apache.org/jira/browse/SVN-1703). - Parameters:
- origin_url – repository URL 
- dir_path – path of the directory where external is defined 
- external_path – path of the external relative to the directory 
- external_url – external URL 
 
- Returns:
- Whether the external definition is recursive 
 
- swh.loader.svn.utils.get_head_revision_at_date(svn_url: str, date: datetime) int[source]#
- Get HEAD revision for repository at given date. - This function wraps calls to - swh.loader.svn.svn_repo.SvnRepo.get_head_revision_at_date()and put result in cache.- Parameters:
- svn_url – URL of subversion repository 
- date – the reference date 
 
- Returns:
- the revision number of the HEAD revision at that date 
- Raises:
- SubversionException – repository URL is not valid 
- ValueError – first revision date is greater than given date 
 
 
- swh.loader.svn.utils.get_repo_root_url(svn_url)[source]#
- Get root URL for a repository. - Suversion URL might target a sub-project in a repository. That function computes the root URL of the repository and put result in cache. - Parameters:
- svn_url – URL of subversion repository 
- Returns:
- the root URL of the repository 
- Raises:
- SubversionException – subversion URL is not valid