コード例 #1
0
ファイル: nautilus-thg.py プロジェクト: tdjordan/tortoisegit
    def get_property_pages(self, vfs_files):
        if len(vfs_files) != 1:
            return
        file = vfs_files[0]
        path = self.get_path_for_vfs_file(file)
        if path is None or file.is_directory():
            return
        repo = self.get_repo_for_path(path)
        if repo is None:
            return

        localpath = path[len(repo.root) + 1 :]
        emblem, status = self._get_file_status(repo, localpath)

        # Get the information from Mercurial
        ctx = repo.workingctx().parents()[0]
        try:
            fctx = ctx.filectx(localpath)
            rev = fctx.filelog().linkrev(fctx.filenode())
        except:
            rev = ctx.rev()
        ctx = repo.changectx(rev)
        node = short(ctx.node())
        date = time.strftime("%Y-%m-%d %H:%M:%S", time.gmtime(ctx.date()[0]))
        parents = "\n".join([short(p.node()) for p in ctx.parents()])
        description = ctx.description()
        user = ctx.user()
        user = gobject.markup_escape_text(user)
        tags = ", ".join(ctx.tags())
        branch = ctx.branch()

        self.property_label = gtk.Label("Mercurial")

        table = gtk.Table(7, 2, False)
        table.set_border_width(5)
        table.set_row_spacings(5)
        table.set_col_spacings(5)

        self.__add_row(table, 0, "<b>Status</b>:", status)
        self.__add_row(table, 1, "<b>Last-Commit-Revision</b>:", str(rev))
        self.__add_row(table, 2, "<b>Last-Commit-Description</b>:", description)
        self.__add_row(table, 3, "<b>Last-Commit-Date</b>:", date)
        self.__add_row(table, 4, "<b>Last-Commit-User</b>:", user)
        if tags:
            self.__add_row(table, 5, "<b>Tags</b>:", tags)
        if branch != "default":
            self.__add_row(table, 6, "<b>Branch</b>:", branch)

        table.show()

        return (nautilus.PropertyPage("MercurialPropertyPage::status", self.property_label, table),)
コード例 #2
0
ファイル: nautilus-thg.py プロジェクト: tdjordan/tortoisegit
    def get_background_items(self, window, vfs_file):
        """Build context menu for current directory"""
        items = []
        path = self.get_path_for_vfs_file(vfs_file)
        if path is None:
            return
        repo = self.get_repo_for_path(path)
        if repo is None:
            item = nautilus.MenuItem(
                "HgNautilus::newtree",
                "Create New Repository",
                "Make directory versioned",
                self.icon("menucreaterepos.ico"),
            )
            item.connect("activate", self._init_cb, vfs_file)
            items.append(item)
            item = nautilus.MenuItem(
                "HgNautilus::clone", "Create Clone", "Create clone here from source", self.icon("menuclone.ico")
            )
            item.connect("activate", self._clone_cb, vfs_file)
            items.append(item)
            item = nautilus.MenuItem(
                "HgNautilus::about",
                "About TortoiseHg",
                "Information about TortoiseHg installation",
                self.icon("menuabout.ico"),
            )
            item.connect("activate", self._about_cb, vfs_file)
            items.append(item)
            item = nautilus.MenuItem("HgNautilus::terminal", "Open Terminal Here", "Open terminal in current directory")
            item.connect("activate", self._open_terminal_cb, vfs_file)
            items.append(item)
            return items

        if len(repo.workingctx().parents()) > 1:
            self.rev0 = repo.workingctx().parents()[0].rev()
            item = nautilus.MenuItem(
                "HgNautilus::undomerge",
                "Undo Merge",
                "Clean checkout of original parent revision",
                self.icon("menuunmerge.ico"),
            )
            item.connect("activate", self._unmerge_cb, vfs_file)
            items.append(item)

        item = nautilus.MenuItem("HgNautilus::commit", "Commit", "Commit changes", self.icon("menucommit.ico"))
        item.connect("activate", self._commit_cb, [vfs_file])
        items.append(item)

        item = nautilus.MenuItem(
            "HgNautilus::status", "Show Status", "Show Repository Status", self.icon("menushowchanged.ico")
        )
        item.connect("activate", self._status_cb, vfs_file)
        items.append(item)

        item = nautilus.MenuItem(
            "HgNautilus::diff", "Visual Diff", "Show Changes to Repository", self.icon("menudiff.ico")
        )
        item.connect("activate", self._diff_cb, [vfs_file])
        items.append(item)

        item = nautilus.MenuItem(
            "HgNautilus::dag", "Revision History", "Show revision DAG", self.icon("menurevisiongraph.ico")
        )
        item.connect("activate", self._history_cb, [vfs_file])
        items.append(item)

        item = nautilus.MenuItem(
            "HgNautilus::datamine", "Data Mining", "Search revision history", self.icon("menulog.ico")
        )
        item.connect("activate", self._datamine_cb, [vfs_file])
        items.append(item)

        item = nautilus.MenuItem(
            "HgNautilus::sync", "Synchronize", "Sync with another repository", self.icon("menusynch.ico")
        )
        item.connect("activate", self._sync_cb, vfs_file)
        items.append(item)

        item = nautilus.MenuItem("HgNautilus::serve", "Web Server", "Start internal web server", self.icon("proxy.ico"))
        item.connect("activate", self._serve_cb, vfs_file)
        items.append(item)

        item = nautilus.MenuItem(
            "HgNautilus::recover", "Recovery", "General repair and recovery of repository", self.icon("general.ico")
        )
        item.connect("activate", self._recovery_cb, vfs_file)
        items.append(item)

        item = nautilus.MenuItem(
            "HgNautilus::repoconfig",
            "Repository Settings",
            "Configure Mercurial settings for this repo",
            self.icon("menusettings.ico"),
        )
        item.connect("activate", self._thgconfig_repo_cb, vfs_file)
        items.append(item)

        item = nautilus.MenuItem(
            "HgNautilus::userconfig",
            "User-Global Settings",
            "Configure global Mercurial settings",
            self.icon("menusettings.ico"),
        )
        item.connect("activate", self._thgconfig_user_cb, vfs_file)
        items.append(item)

        item = nautilus.MenuItem(
            "HgNautilus::about",
            "About TortoiseHg",
            "Information about TortoiseHg installation",
            self.icon("menuabout.ico"),
        )
        item.connect("activate", self._about_cb, vfs_file)
        items.append(item)

        item = nautilus.MenuItem("HgNautilus::terminal", "Open Terminal Here", "Open terminal in current directory")
        item.connect("activate", self._open_terminal_cb, vfs_file)
        items.append(item)
        return items