在远程机器上执行脚本时,为了能够保证脚本的实时性,我们一般会将脚本存放到SVN上,远程机器通过SVN的操作去更新脚本;
SVN更新脚本只需要2步就可以实现了,这个地方使用到pysvn库,看下实现
# 初始化client
self.client = pysvn.Client()
self.client.set_default_username(self.username)
self.client.set_default_password(util.decrypt_des(self.password))
#更新代码
self.client.update(self.localPath)
但是,在实际情况中,可能会出现update失败的情况,我们增加异常后,重新checkout的操作,如下
#判断更新是否成功
revision = None
try:
revision = self.client.update(self.localPath)
except:
log.exception(traceback.format_exc())
revision = None
if not os.path.exists(os.path.join(self.localPath, ".svn")):
revision = None
#更新失败,则重新checkout
if revision is None or revision[0].number == -1