< prev index next >

./jcheck.py

Print this page
rev 113 : Allow start=YYYY-MM-DD in .jcheck/conf; older changesets are not checked

*** 42,51 **** --- 42,52 ---- _version = "@VERSION@" _date = "@DATE@" import sys, os, re, urllib, urllib2 + from datetime import date from mercurial.node import * from mercurial import cmdutil, patch, util, context, templater Pass = False Fail = True
*** 57,66 **** --- 58,72 ---- def oneline(ctx): return ("%5d:%s %-12s %s %s\n" % (ctx.rev(), short(ctx.node()), ctx.user(), datestr(ctx), ctx.description().splitlines()[0])) + # Take a date string of the form YYYY-MM-DD and return a date + def todate(dstr): + darr = dstr.split('-') + return date(int(darr[0]), int(darr[1]), int(darr[2])) + def is_merge(repo, rev): return not (-1 in repo.changelog.parentrevs(rev)) _matchall = getattr(cmdutil, 'matchall', None) if not _matchall:
*** 490,499 **** --- 496,512 ---- if self.conf.get("bugids") == "ignore": self.bugids_ignore = True if not self.bugids_ignore: # only identify bug ids if we are going to use them self.repo_bugids = repo_bugids(ui, repo) + self.use_start = False + self.startdate = None + startstr = self.conf.get("start") + if startstr != None: + self.use_start = True + self.startdate = todate(startstr) + ui.debug("self.use_start = %s, self.startdate = %s\n" % (self.use_start, self.startdate)) self.blacklist = dict.fromkeys(changeset_blacklist) self.read_blacklist(blacklist_file) # hg < 1.0 does not have localrepo.tagtype() self.tagtype = getattr(self.repo, 'tagtype', lambda k: 'global')
*** 633,642 **** --- 646,663 ---- def c_03_hash(self, ctx): hash = hex(ctx.node()) if hash in self.blacklist: self.error(ctx, "Blacklisted changeset: " + hash) + def before_start(self, ctx): + if not self.use_start: + return False + csdatestr = datestr(ctx).split()[0] + csdate = todate(csdatestr) + self.ui.debug("startdate = %s, cs date = %s\n" % (self.startdate, csdate)) + return csdate < self.startdate + def check(self, node): self.summarized = False self.cs_bugids = [ ] self.cs_author = None self.cs_reviewers = [ ]
*** 644,653 **** --- 665,678 ---- ctx = context.changectx(self.repo, node) self.ui.note(oneline(ctx)) if not self.strict and hex(node) in changeset_whitelist: self.ui.note("%s in whitelist; skipping\n" % hex(node)) return Pass + if self.before_start(ctx): + # Before start date; only do blacklist check + self.c_03_hash(ctx); + return self.rv for c in self.checks: cf = checker.__dict__[c] cf(self, ctx) return self.rv
< prev index next >