class GitAnnotate(Annotate): def __init__(self, path, revision=None): Annotate.__init__(self, path, revision) self.git = self.vcs.git(path) self.path = path self.show_revision(forceload=True) # # Helper methods # def launch_loading(self): self.loading_dialog = Loading() GLib.idle_add(self.loading_dialog.run) def kill_loading(self): GLib.idle_add(self.loading_dialog.destroy) def load(self, revision): self.launch_loading() self.action = GitAction(self.git, notification=False) self.action.append(self.git.annotate, self.path, self.git.revision(revision)) if not self.log_by_order: self.action.append(self.git.log, self.path) self.action.append(self.set_log) self.action.append(self.populate_table) self.action.append(self.enable_saveas) self.action.schedule() self.kill_loading() def populate_table(self): blamedict = self.action.get_result(0) lines = highlight(self.path, [item["line"] for item in blamedict]) self.table.clear() for i, item in enumerate(blamedict): revision = item["revision"][:7] author = S(item["author"].strip()) author_color = self.author_background.get(author, "#FFFFFF") try: revision_color = self.log_by_revision[revision].background except KeyError: revision_color = "#FFFFFF" self.table.append([ revision, author, helper.format_datetime(item["date"], self.datetime_format), str(item["number"]), lines[i], revision_color, author_color ]) def generate_string_from_result(self): blamedict = self.action.get_result(0) text = "" for item in blamedict: text += "%s\t%s\t%s\t%s\t%s\n" % ( str(item["number"]), item["revision"][:7], item["author"], helper.format_datetime(item["date"], self.datetime_format), item["line"]) return text def short_revision(self, revision): revision = str(revision)[:7].lower() return revision if revision != "head" else "HEAD"
class GitAnnotate(Annotate): def __init__(self, path, revision=None): Annotate.__init__(self, path, revision) self.git = self.vcs.git(path) if revision is None: revision = "HEAD" self.path = path self.get_widget("from_revision_container").hide() self.get_widget("to_show_log").hide() self.get_widget("to").set_text(str(revision)) self.table = rabbitvcs.ui.widget.Table( self.get_widget("table"), [gobject.TYPE_STRING, gobject.TYPE_STRING, gobject.TYPE_STRING, gobject.TYPE_STRING, gobject.TYPE_STRING], [_("Line"), _("Revision"), _("Author"), _("Date"), _("Text")] ) self.table.allow_multiple() self.load() # # Helper methods # def load(self): to_rev = self.git.revision(self.get_widget("to").get_text()) self.action = GitAction( self.git, notification=False ) self.action.append( self.git.annotate, self.path, to_rev ) self.action.append(self.populate_table) self.action.append(self.enable_saveas) self.action.start() @gtk_unsafe def populate_table(self): blamedict = self.action.get_result(0) self.table.clear() for item in blamedict: self.table.append([ item["number"], item["revision"][:7], item["author"], rabbitvcs.util.helper.format_datetime(item["date"]), item["line"] ]) def generate_string_from_result(self): blamedict = self.action.get_result(0) text = "" for item in blamedict: text += "%s\t%s\t%s\t%s\t%s\n" % ( item["number"], item["revision"][:7], item["author"], rabbitvcs.util.helper.format_datetime(item["date"]), item["line"] ) return text
class GitAnnotate(Annotate): def __init__(self, path, revision=None): Annotate.__init__(self, path, revision) self.git = self.vcs.git(path) if revision is None: revision = "HEAD" self.path = path self.get_widget("to").set_text(str(revision)) self.table = rabbitvcs.ui.widget.Table(self.get_widget("table"), [ GObject.TYPE_STRING, GObject.TYPE_STRING, GObject.TYPE_STRING, GObject.TYPE_STRING, GObject.TYPE_STRING ], [_("Line"), _("Revision"), _("Author"), _("Date"), _("Text")]) self.table.allow_multiple() self.load() # # Helper methods # def launch_loading(self): self.loading_dialog = Loading() GLib.idle_add(self.loading_dialog.run) def kill_loading(self): GLib.idle_add(self.loading_dialog.destroy) def load(self): to_rev = self.git.revision(self.get_widget("to").get_text()) self.launch_loading() self.action = GitAction(self.git, notification=False) self.action.append(self.git.annotate, self.path, to_rev) self.action.append(self.populate_table) self.action.append(self.enable_saveas) self.action.schedule() self.kill_loading() @gtk_unsafe def populate_table(self): blamedict = self.action.get_result(0) self.table.clear() for item in blamedict: self.table.append([ str(item["number"]), item["revision"][:7], item["author"], rabbitvcs.util.helper.format_datetime(item["date"]), item["line"] ]) def generate_string_from_result(self): blamedict = self.action.get_result(0) text = "" for item in blamedict: text += "%s\t%s\t%s\t%s\t%s\n" % ( str(item["number"]), item["revision"][:7], item["author"], rabbitvcs.util.helper.format_datetime( item["date"]), item["line"]) return text