Exemple #1
0
    def refresh(self):
        repo = self.repo
        oldtags, oldparents = self.tagrevs, self.wcparents
        oldbookmarks = self.bookmarkrevs
        try:
            oldbranches = [repo[n].rev() for n in self.branchtags.values()]
        except error.RepoLookupError:
            oldbranches = []

        hglib.invalidaterepo(repo)

        self.longsummary = repo.ui.configbool('tortoisehg', 'longsummary', False)
        self.set_author_color()
        self.hidetags = hglib.gethidetags(repo.ui)

        try:
            self.wcparents = [x.rev() for x in repo.parents()]
            self.tagrevs = [repo[r].rev() for t, r in repo.tagslist()]
            self.branchtags = repo.branchtags()
            self.curbookmark = repo._bookmarkcurrent
            self.bookmarkrevs = [repo[n].rev() for n in repo._bookmarks.values()]
        except util.Abort:
            pass
        brevs = [repo[n].rev() for n in self.branchtags.values()]
        allrevs = set(oldtags + oldparents + oldbranches + oldbookmarks +
                      brevs + self.wcparents + self.tagrevs + self.bookmarkrevs)
        for rev in allrevs:
            if rev in self.revisions:
                del self.revisions[rev]

        self.mqpatches = []
        if hasattr(self.repo, 'mq'):
            self.repo.mq.parse_series()
            self.mqpatches = [p.name for p in self.repo.mq.applied]
Exemple #2
0
 def preset_func(widget, item, ctx):
     if item == "rev":
         revnum = self.get_data("revnum", *args)
         revid = self.get_data("revid", *args)
         if revid:
             return (revnum, revid)
         return None
     elif item == "revnum":
         return ctx.rev()
     elif item == "revid":
         return str(ctx)
     elif item == "desc":
         return hglib.toutf(ctx.description().replace("\0", ""))
     elif item == "summary":
         value = ctx.description().replace("\0", "").split("\n")[0]
         if len(value) == 0:
             return None
         return hglib.toutf(hglib.tounicode(value)[:80])
     elif item == "user":
         return hglib.toutf(ctx.user())
     elif item == "shortuser":
         return hglib.toutf(hglib.username(ctx.user()))
     elif item == "dateage":
         date = self.get_data("date", *args)
         age = self.get_data("age", *args)
         if date and age:
             return (date, age)
         return None
     elif item == "date":
         date = ctx.date()
         if date:
             return hglib.displaytime(date)
         return None
     elif item == "age":
         date = ctx.date()
         if date:
             return hglib.age(date)
         return None
     elif item == "rawbranch":
         value = ctx.branch()
         if value:
             return hglib.toutf(value)
         return None
     elif item == "branch":
         value = self.get_data("rawbranch", *args)
         if value:
             repo = ctx._repo
             if ctx.node() not in repo.branchtags().values():
                 return None
             dblist = hglib.getdeadbranch(repo.ui)
             if value in dblist:
                 return None
             return value
         return None
     elif item == "rawtags":
         value = [hglib.toutf(tag) for tag in ctx.tags()]
         if len(value) == 0:
             return None
         return value
     elif item == "tags":
         value = self.get_data("rawtags", *args)
         if value:
             htlist = hglib.gethidetags(ctx._repo.ui)
             tags = [tag for tag in value if tag not in htlist]
             if len(tags) == 0:
                 return None
             return tags
         return None
     elif item == "transplant":
         extra = ctx.extra()
         try:
             ts = extra["transplant_source"]
             if ts:
                 return binascii.hexlify(ts)
         except KeyError:
             pass
         return None
     elif item == "p4":
         extra = ctx.extra()
         p4cl = extra.get("p4", None)
         return p4cl and ("changelist %s" % p4cl)
     elif item == "svn":
         extra = ctx.extra()
         cvt = extra.get("convert_revision", "")
         if cvt.startswith("svn:"):
             result = cvt.split("/", 1)[-1]
             if cvt != result:
                 return result
             return cvt.split("@")[-1]
         else:
             return None
     elif item == "ishead":
         childbranches = [cctx.branch() for cctx in ctx.children()]
         return ctx.branch() not in childbranches
     raise UnknownItem(item)