Source code for pkgcore.sync.git_svn

# -*- coding: utf-8 -*-

__all__ = ("git_svn_syncer",)

import os

from . import base


[docs] class git_svn_syncer(base.VcsSyncer): binary = "git" supported_uris = ( ("git+svn://", 10), ("git+svn+", 10), )
[docs] @classmethod def is_usable_on_filepath(cls, path): git_svn_path = os.path.join(path, ".git", "svn") if cls.disabled or not os.path.isdir(git_svn_path): return None return (cls._rewrite_uri_from_stat(git_svn_path, "git+svn://"),)
[docs] @staticmethod def parse_uri(raw_uri): if not raw_uri.startswith("git+svn+") and not raw_uri.startswith("git+svn://"): raise base.UriError(raw_uri, "doesn't start with git+svn+ nor git+svn://") if raw_uri.startswith("git+svn+"): if raw_uri.startswith("git+svn+:"): raise base.UriError( raw_uri, "need to specify the sub protocol if using git+svn+" ) return raw_uri[8:] return raw_uri[4:]
def _initial_pull(self): return [self.binary_path, "svn", "clone", self.uri, self.basedir] def _update_existing(self): return [self.binary_path, "svn", "rebase"]