有没有一种简单的方法来保护或恢复 Qt 源代码?

Is there a easy way to protect, or revert Qt source code?

我只是不小心将 QList 重构为 QSet,而 Qt 忠实地做到了,对它自己的所有源代码也是如此......(是的,那是愚蠢的!)

谢天谢地,我的代码是受源代码控制的,我只是还原了所有内容,是否也 feasible/sensible 为 Qt 源代码制作一个 git 回购协议? (我有免费版本所以我认为我无论如何都不能修改它们......?)

是否有一个隐藏的设置可以防止其源被修改,以阻止我再次这样做?

我目前正在使用维护工具来安装更新版本的 Qt,但除了更新或 add/remove 之外,没有我能看到的重新安装选项,我是不是遗漏了什么?

Thankfully my code is source controlled, I just reverted everything, would it be feasible/sensible to make a git repo for the Qt sources too? (I have the free version so I didn't think I could modify them anyway...?)

可行吗?确实。懂事吗?也许,假设 "make a git repo" 你的意思是 "cloning the official Qt repos from Git"。这取决于您计划犯同样的重命名错误的次数。 :D 但说真的,我认为自己构建 Qt 有好处:

  • 您可以轻松调试和检查您正在使用的 API 的实现。
  • 您可以将 Qt 配置为跳过构建您不感兴趣的内容。
  • 如果存在您知道已修复但尚未合并到 Qt 本身的错误,您可以轻松地修补 Qt。

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

一般来说,如果您不使用 API,那是在开发阶段但尚未发布,可能不值得费心。

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

https://wiki.qt.io/Building_Qt_5_from_Git

Is there a hidden setting that will prevent its sources from being modifiable, to stop me from doing this again?

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

I'm currently using the maintenance tool to install a newer version of Qt, but other than update or add/remove, there wasn't a re-install option that I could see, am I missing something?

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

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

您完成的 Qt 安装应该是不可写的。当使用特权包管理器安装时,它在 Unix 系统上是默认的。在其他地方:您需要将其设置为只读。如果您从源代码构建,那么只需在安装后的最后一步递归地将安装文件夹设置为只读即可;既然你应该已经自动化了你的 Qt 构建,那么添加 "make read-only" 步骤是微不足道的。