如何在版本控制中管理thrift源文件?

时间:2015-09-18 05:22:38

标签: version versioning thrift

我们目前正在探索在我们的项目中使用thrift。我的一个问题是如何在版本控制(git)中处理thrift源文件和特定语言生成的文件?

假设我有使用java实现的项目服务器A,项目B使用Objective-C实现移动应用程序,项目C是thrift文件。目前我最关心的是将所有项目作为不同的git项目,并将项目C作为项目A和项目B的子模块。专家是我们可以拥有一致的thrift源,我们不需要将生成的源文件放入git项目。

然后假设我有另一个与项目C不同的thrift文件,只用于项目A和项目D.我是否也应该将这些文件放在项目C中?项目B如何知道项目C中的某些文件不适合他,以防我们将这些文件放在项目C中?

另一种方法可能是将生成的源文件提交到每个项目中。或者也许是另一种我不知道的方法。

谢谢!

1 个答案:

答案 0 :(得分:2)

无论是否将高度特定的案例中的项目拆分为Git子模块的思考,这些是适用于所有类型的生成代码的一般准则,包括Thrift,但不限于此。

一般规则

  1. 源文档(IDL,DSL,...)属于存储库。
  2. 任何可以从这些来源轻松生成的代码都没有。
  3. 例外

    与几乎所有规则一样,也有例外。例外情况有各种各样,例如

    • 生成的工件 <生产(无论出于何种原因)
    • 生成的代码需要修补程序才能解决错误 1)

    附加说明

    努力为这些文件提供一个源和一个源(当然不计算分支等)。一个好主意可能是将其设置为跨项目使用的库。像对待任何其他第三方模块一样对待该库,包括正确的版本控制和所有。如果你使用Git,确实Git子模块可能是实现这一目标的方法。

      

    然后让我说我有另一个与项目C不同的节俭文件

    如果它不同,它可能是完全不同的IDL,也可能是相同IDL的不同版本。

    1)在现实世界中,可能会发生这样的事情。不幸的是