def render(self): ui = self.ui ui.pushbuffer() ui.status(_("Interactive Smartlog History\n\n")) if opts.get("all"): limit = 0 else: limit = 2 * 604800 # two weeks if self.index == len(self.versions): self.index = -1 if self.index == -2: self.index = len(self.versions) - 1 if self.index == -1: with progress.spinner(ui, _("fetching")): firstpublic, revdag = serv.getsmartlog( reponame, workspacename, repo, limit) ui.status(_("Current Smartlog:\n\n")) else: with progress.spinner(ui, _("fetching")): firstpublic, revdag, slversion, sltimestamp = serv.getsmartlogbyversion( reponame, workspacename, repo, None, self.versions[self.index]["version_number"], limit, ) formatteddate = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(sltimestamp)) ui.status( _("Smartlog version %d \nsynced at %s\n\n") % (slversion, formatteddate)) template = "sl_cloud" smartlogstyle = ui.config("templatealias", template) if smartlogstyle: opts["template"] = "{%s}" % smartlogstyle else: ui.debug( _("style %s is not defined, skipping") % smartlogstyle, component="commitcloud", ) displayer = cmdutil.show_changeset(ui, repo, opts, buffered=True) if ui.config("experimental", "graph.renderer") == "legacy": cmdutil.displaygraph(ui, repo, revdag, displayer, graphmod.asciiedges) else: cmdutil.rustdisplaygraph(ui, repo, revdag, displayer, reserved=firstpublic) repo.ui.status( _("<-: newer " "->: older " "q: abort \n" "a: 1 day forward d: 1 day back \n")) return ui.popbuffer()
def _smartlog(ui, repo, *pats, **opts): if opts.get("rev"): masterfallback = "null" else: masterfallback = "interestingmaster()" masterstring = (opts.get("master") or ui.config("smartlog", "master") or masterfallback) masterrev = repo.anyrevs([masterstring], user=True).first() revs = getrevs(ui, repo, masterstring, **opts) if -1 in revs: revs.remove(-1) if len(revs) == 0: return # Print it! revdag, reserved = getdag(ui, repo.unfiltered(), sorted(revs, reverse=True), masterrev) displayer = cmdutil.show_changeset(ui, repo, opts, buffered=True) ui.pager("smartlog") if ui.config("experimental", "graph.renderer") == "legacy": overrides = {} if ui.config("experimental", "graphstyle.grandparent", "2.") == "|": overrides[("experimental", "graphstyle.grandparent")] = "2." with ui.configoverride(overrides, "smartlog"): if reserved: for prev in reserved: addfakerev(revdag, prev) cmdutil.displaygraph(ui, repo, revdag, displayer, graphmod.asciiedges, None, None) else: cmdutil.rustdisplaygraph(ui, repo, revdag, displayer, reserved=reserved) try: with open(repo.localvfs.join("completionhints"), "w+") as f: for rev in revdag: commit_hash = rev[2].node() # Skip fakectxt nodes if commit_hash != "...": f.write(nodemod.short(commit_hash) + "\n") except IOError: # No write access. No big deal. pass global hiddenchanges if hiddenchanges: ui.warn( _("hiding %s old heads without bookmarks\n") % hiddenchanges, notice=_("note"), ) ui.warn(_("(use --all to see them)\n"))
def cloudsmartlog(ui, repo, template="sl_cloud", **opts): """get smartlog view for the default workspace of the given user If the requested template is not defined in the config the command provides a simple view as a list of draft commits. """ reponame = ccutil.getreponame(repo) workspacename = workspace.parseworkspace(ui, opts) if workspacename is None: workspacename = workspace.currentworkspace(repo) if workspacename is None: workspacename = workspace.defaultworkspace(ui) if opts.get("history"): interactivehistory.showhistory(ui, repo, reponame, workspacename, **opts) return date = opts.get("date") version = opts.get("workspace_version") if date: parseddate = util.parsedate(date) else: parseddate = None ui.status( _("searching draft commits for the '%s' workspace for the '%s' repo\n") % (workspacename, reponame), component="commitcloud", ) serv = service.get(ui, tokenmod.TokenLocator(ui).token) if parseddate is None and not version: with progress.spinner(ui, _("fetching")): firstpublic, revdag = serv.getsmartlog(reponame, workspacename, repo, 0) else: with progress.spinner(ui, _("fetching")): firstpublic, revdag, slversion, sltimestamp = serv.getsmartlogbyversion( reponame, workspacename, repo, parseddate, version, 0) if parseddate or version: formatteddate = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(sltimestamp)) ui.status( _("Smartlog version %d \nsynced at %s\n\n") % (slversion, formatteddate)) else: ui.status(_("Smartlog:\n\n")) # set up pager ui.pager("smartlog") smartlogstyle = ui.config("templatealias", template) # if style is defined in templatealias section of config apply that style if smartlogstyle: opts["template"] = "{%s}" % smartlogstyle else: ui.debug( _("style %s is not defined, skipping") % smartlogstyle, component="commitcloud", ) # show all the nodes displayer = cmdutil.show_changeset(ui, repo, opts, buffered=True) if ui.config("experimental", "graph.renderer") == "legacy": cmdutil.displaygraph(ui, repo, revdag, displayer, graphmod.asciiedges) else: cmdutil.rustdisplaygraph(ui, repo, revdag, displayer, reserved=firstpublic)