有没有简单的方法来保护或还原Qt源代码?

时间:2018-06-30 14:57:54

标签: qt automated-refactoring

我只是不小心将QList重构为QSet,而Qt也忠实地将其重构到了它自己的所有源中……(是的,这很愚蠢!)

非常感谢我的代码是源代码控制的,我只是还原了所有内容,所以也可以为Qt源代码制作一个git repo吗? (我有免费版本,所以我不认为我可以修改它们...?)

是否存在一个隐藏的设置,它将阻止其来源被修改,从而阻止我再次执行此操作?

我目前正在使用维护工具来安装Qt的较新版本,但是除了更新或添加/删除之外,没有其他的重新安装选项,我是否缺少某些东西?

2 个答案:

答案 0 :(得分:2)

使用源代码控制进行安装没有意义:它不是源代码。这是文物。您已经知道如何保护各种工件免受修改。适当的文件系统属性就可以了。

您完成的Qt安装不应该写。使用特权包管理器安装时,在Unix系统上默认情况下是这样。在其他地方:您需要将其设置为只读。如果从源代码构建,则将安装文件夹的最后一步以递归方式将安装文件夹设为只读。并且由于您应该已经实现了Qt构建的自动化,因此添加“ make read-only”步骤非常简单。

答案 1 :(得分:1)

  

非常感谢我的代码是源代码控制的,我只是还原了所有内容,所以也可以为Qt源代码制作一个git repo吗? (我有免费版本,所以我不认为我可以修改它们...?)

可行吗?绝对是懂吗也许,假设“进行git repo”意味着“从Git克隆官方的Qt回购”。这取决于您计划犯几次相同的重命名错误。 :D但认真的说,我认为自己构建Qt有好处:

  • 您可以轻松调试并检查所使用的API的实现。
  • 您可以配置Qt跳过不感兴趣的内容。
  • 如果您有一个已知的修复错误但尚未合并到Qt本身中,则可以轻松修补Qt。

但是也有缺点。如果您正在使用CI不使用的配置标志(例如-no-foo选项),则可能会遇到构建问题。构建可能要花一些时间,具体取决于您拥有多少个子模块以及所构建的机器类型。

通常,如果您不使用dev中尚未发布的API,则可能不值得为此烦恼。

如果您仍然感兴趣,此页面包含从Git构建Qt的说明:

https://wiki.qt.io/Building_Qt_5_from_Git

  

是否存在一个隐藏的设置,它将阻止其来源被修改,从而阻止我再次执行此操作?

您不能在源目录上设置一些权限吗?我从来没有做过此事,但是以前在不相关的场合被它咬过,所以我知道它是有效的。 :D

  

我目前正在使用维护工具来安装Qt的较新版本,但是除了更新或添加/删除之外,没有其他的重新安装选项,我是否缺少某些东西?

我认为,删除并添加是您唯一的选择。否则,您始终可以仅通过复制整个目录来保留源的备份。