def check(self, work_copy, address, user, password, log=None): baseVer = self.get_work_ver(work_copy, user, password, log) headVer = self.get_rep_ver(address, user, password, log) if headVer == baseVer: FileUtil.log(log, work_copy + ": No SVN change found!") return False return True
def get_rep_ver(self, rep, user, password, log=None): (headOutput,errno) = process.get_run_output("svn log -q -l 1 " + StrUtil.quote(rep) + self._get_svn_para(user, password)) FileUtil.log(log, headOutput) if errno != 0: raise Exception("get version of " + rep + " error") #注意这地方要处理中英文版本,所以要识别GB码的‘版本’和‘ Revision’ headVer = re.search("r([0-9]+) \|", headOutput).group(1) return headVer
def get_work_ver(self, work_copy, user, password, log=None): (baseOutput,errno) = process.get_run_output("svn info -r BASE " + StrUtil.quote(work_copy) + self._get_svn_para(user, password)) FileUtil.log(log, baseOutput) if errno != 0: raise Exception("get version of " + work_copy + " error") if re.search("Last Changed Rev: ([0-9]+)", baseOutput) is None: baseVer = re.search("\xd7\xee\xba\xf3\xd0\xde\xb8\xc4\xb5\xc4\xb0\xe6\xb1\xbe: ([0-9]+)", baseOutput).group(1) else: baseVer = re.search("Last Changed Rev: ([0-9]+)", baseOutput).group(1) return baseVer