RabbitVCS(0.14.2)不显示右键设置(settings)菜单,

2019-05-25 21:54:31 浏览数 (1)

版权声明:本文为博主原创文章,转载请注明源地址。 https://cloud.tencent.com/developer/article/1433564

RabbitVCS是Linux的svn客户端,对于在windows下用惯了TortoiseSVN的人来说,在linux下使用纯命令行的svn命令实在是太折磨人了,RabbitVCS就是一个类似于TortoiseSVN的linux平台工具。

我的linux平台是CentOS6.5,安装RabbitVCS已经好久了,是用yum install安装的0.14.2版本。

当时安装一切正常,但是突然有一天我发现右健菜单中的设置(settings)界面打不开了,当时没有影响svn的提交和更新功能也没理会,这两天必须要使用这个设置界面,却用不成,就不得不想办法解决了。

想升级到最新版本,yum 却没提供更新的版本,必须得自己去RabbitVCS官网下载源码编译,好麻烦。还是决定从现有的版本着手,尝试能不能解决。

这个帖子给了我提示《centos 6 install rabbitvcs》,

我尝试在命令行执行settings菜单显示

rabbitvcs settings

报错如下

Traceback (most recent call last): File “settings.py”, line 352, inundefined window = Settings(options.base_dir) File “settings.py”, line 126, in init self.get_widget(“pages”).get_nth_page(5).set_visible(show_git) AttributeError: ‘gtk.VBox’ object has no attribute ‘set_visible’

哈,总算知道错误信息了,这个'gtk.VBox' object has no attribute 'set_visible'是什么鬼?

我对pythong不熟悉,才入门,只能大概知道就是没有set_visible这个属性。。。

在google上一通乱找,找到这个贴子《[pygtk] Getting widget visibility》又给了我提示,可能是python依赖的pygtk库升级导致的兼容性问题,貌似set_visiable方法被废弃,改为直接对visiable变量赋值了。

于是打开/usr/lib/python2.6/site-packages/rabbitvcs/ui/settings.py找到126行set_visible所在的位置,代码片段如下:

代码语言:javascript复制
        if base_dir:
            vcs = rabbitvcs.vcs.VCS()
            git_config_files = []
            if vcs.is_in_a_or_a_working_copy(base_dir) and vcs.guess(base_dir)["vcs"] == rabbitvcs.vcs.VCS_GIT:
                git = vcs.git(base_dir)
                git_config_files = git.get_config_files(base_dir)

                self.file_editor = rabbitvcs.ui.widget.MultiFileTextEditor(
                    self.get_widget("git_config_container"),
                    _("Config file:"),
                    git_config_files,
                    git_config_files,
                    show_add_line=False
                )
                show_git = True

#出错代码位置--本文作者注释        self.get_widget("pages").get_nth_page(5).set_visible(show_git)

        self._populate_checker_tab()

先把settings.py备份,然后修改代码,

self.get_widget("pages").get_nth_page(5).set_visible(show_git)改为self.get_widget("pages").get_nth_page(5).visible=show_git

然后执行

rabbitvcs settings

哈,报错消失,settings菜单正常显示啦!

再执行nautilus -q更新nautilus

点右键RabbitVCS SVN设置,界面正常打开:

0 人点赞