本文整理汇总了Python中git.Git.changed_files方法的典型用法代码示例。如果您正苦于以下问题:Python Git.changed_files方法的具体用法?Python Git.changed_files怎么用?Python Git.changed_files使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类git.Git
的用法示例。
在下文中一共展示了Git.changed_files方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: AutoUpdater
# 需要导入模块: from git import Git [as 别名]
# 或者: from git.Git import changed_files [as 别名]
class AutoUpdater():
def __init__(self, name, repo, cwd='.', branch='master'):
self.name = name
self.repo = repo
self.cwd = cwd
self.git = Git(repo, cwd, branch)
self.docker = DockerCompose(cwd)
self.container = None
self.upgrade_script = None
self.init_script = None
if not exists(cwd):
logger.info('<%s> creating missing directory %s', self.name, cwd)
makedirs(cwd)
self.git.clone_if_necessary()
try:
self.first_startup()
except DockerComposeError as e:
logger.error('<%s> could not start docker-compose: %s',
self.name, e.errors)
def add_scripts(self, container='web', init_cmd='', upgrade_cmd=''):
self.container = container
self.init_script = init_cmd
self.upgrade_script = upgrade_cmd
def first_startup(self):
self.docker.update()
if self.init_script:
try:
res = self.docker.exec(self.container, self.upgrade_script)
logger.info('<%s> initialized with %s', self.name, res)
except DockerComposeError as e:
logger.warning('%s: %s', e.message, e.errors)
self.upgrade()
def start(self):
try:
self.docker.start()
except DockerComposeError as e:
logger.warning('<%s> start threw an error: %s', self.name,
e.errors)
def update(self):
if self.git.changed_files() > 0:
running_commit_date = self.git.last_commit_date()
self.git.pull()
latest_commit_date = self.git.last_commit_date()
self.docker.update()
logger.info('<%s> update finished, %s to %s', self.name,
running_commit_date, latest_commit_date)
else:
logger.info('<%s> no update needed', self.name)
def upgrade(self):
if self.upgrade_script:
try:
res = self.docker.exec(self.container, self.upgrade_script)
logger.info('<%s> upgraded with %s', self.name, res)
except DockerComposeError as e:
logger.warning('%s: %s', e.message, e.errors)