首页 > 解决方案 > 使用分支或单独存储库来维护不向后兼容的多个代码版本的正确方法是什么?

问题描述

我为 Revit 编写插件。这些加载项依赖于 Revit API 库。这些库随 Revit 的每个新版本(2018、2019、2020 等)而变化。不幸的是,它们不向后兼容,因此我无法将 2018 年的加载项与 2020 年一起使用。这意味着我为 2018 年、2019 年和 2020 年维护自己的代码的单独存储库。我目前正在使用拉取请求,以便如果我在 2018 年进行了更改,我可以将其移至 2019 年和 2020 年。问题是,当请求出现时,它会更新我的 2019/2020 年库以引用 2018 年库。然后我必须返回并确保它引用了正确的库。

每次我需要将更改推送到其他版本时,我应该如何避免这个问题?

标签: gitbitbucketrevit-api

解决方案


您确定您的 2018 附加模块无法在 Revit 2020 中使用吗?

在许多情况下,如果不是大多数情况下,情况恰恰相反。

通常,您也可以在更高版本中使用为先前版本的 Revit 编译的加载项。

如果您调用的 Revit API 功能在版本之间发生了变化,您可以通过为早期版本的 Revit 进行编译并添加 .NET 运行时功能来在运行时检查是调用旧版本还是新版本的 Revit API 来处理该问题。更改的调用可以在运行时为新版本动态更新。

查看Building Coder 多版本插件以获取完整的实施示例。

也就是说,我仍然完全同意你的问题本身;在许多情况下,您需要为每个 Revit 版本单独更新干净的加载项版本,以避免复杂性并增强代码的可读性。为此,我完全同意 Ôrel 为每个版本维护一个单独的分支并将更新合并到其他分支中。


推荐阅读