| @@ -0,0 +1,44 @@ | |||||
| import sys | |||||
| import abc | |||||
| from hyde.loader import load_python_object | |||||
| class DVCS(object): | |||||
| __metaclass__ = abc.ABCMeta | |||||
| def __init__(self, path, settings): | |||||
| self.path = path | |||||
| self.url = settings.url | |||||
| self.branch = settings.branch | |||||
| self.switch(self.branch) | |||||
| self.settings = settings | |||||
| @abc.abstractmethod | |||||
| def save_draft(self, message=None): pass | |||||
| @abc.abstractmethod | |||||
| def publish(self): pass | |||||
| @abc.abstractmethod | |||||
| def pull(self): pass | |||||
| @abc.abstractmethod | |||||
| def push(self, branch): pass | |||||
| @abc.abstractmethod | |||||
| def commit(self, message): pass | |||||
| @abc.abstractmethod | |||||
| def switch(self, branch): pass | |||||
| @abc.abstractmethod | |||||
| def add_file(self, path, message=None): pass | |||||
| @abc.abstractmethod | |||||
| def merge(self, branch): pass | |||||
| @staticmethod | |||||
| def load_dvcs(path, settings): | |||||
| repo_class = load_python_object(settings['type']) | |||||
| return repo_class(path, repo) | |||||