我们目前正在探索在我们的项目中使用thrift。我的一个问题是如何在版本控制(git)中处理thrift源文件和特定语言生成的文件?
假设我有使用java实现的项目服务器A,项目B使用Objective-C实现移动应用程序,项目C是thrift文件。目前我最关心的是将所有项目作为不同的git项目,并将项目C作为项目A和项目B的子模块。专家是我们可以拥有一致的thrift源,我们不需要将生成的源文件放入git项目。
然后假设我有另一个与项目C不同的thrift文件,只用于项目A和项目D.我是否也应该将这些文件放在项目C中?项目B如何知道项目C中的某些文件不适合他,以防我们将这些文件放在项目C中?
另一种方法可能是将生成的源文件提交到每个项目中。或者也许是另一种我不知道的方法。
谢谢!
答案 0 :(得分:2)
无论是否将高度特定的案例中的项目拆分为Git子模块的思考,这些是适用于所有类型的生成代码的一般准则,包括Thrift,但不限于此。
与几乎所有规则一样,也有例外。例外情况有各种各样,例如
努力为这些文件提供一个源和一个源(当然不计算分支等)。一个好主意可能是将其设置为跨项目使用的库。像对待任何其他第三方模块一样对待该库,包括正确的版本控制和所有。如果你使用Git,确实Git子模块可能是实现这一目标的方法。
然后让我说我有另一个与项目C不同的节俭文件
如果它不同,它可能是完全不同的IDL,也可能是相同IDL的不同版本。
1)在现实世界中,可能会发生这样的事情。不幸的是