目前状况是这样,我们希望看到.proto 的 diff ,但不希望看到生成文件的不同。
如果把.gitattribute 中将生成文件认定为 binary ,似乎 merge 时会不去合并生成文件,压根就不管的状态
如果认定为普通文件,那在 diff 时会出现大段的不同,一是不美观,二是 review 容易翻过,三也让行数的统计变得不准确
另外想到加 hook 每次生成,但 pb 一个蛋疼问题是新生成的文件即使代码一样,但最后的file_descriptor
也会有"少量"不同(这个未验证,但至少我新生成的文件代码没有不同,只有这段不同)
想问下大家有没有一个两全其美的管理方法?
我们目前的折中办法是将 pb 的修改包括生成文件单独提交,之后再代码逻辑的修改提交。
1
Arthur2e5 2016-02-04 15:22:16 +08:00 1
所以你想要另开个库放 pb 文件, submodule 进来,不计入代码行数「绩效统计」?
|
2
firefox12 2016-02-04 15:31:56 +08:00 2
pb 生成的 java cpp 文件不要提交。
在构建的时候,自动导出, 第一可以防止 pb 文件和 cpp 文件不统一 第二 可以测试不同 protoc 环境下的兼容问题 第三 就是解决你的问题 |
3
morefreeze OP |
4
billlee 2016-02-04 19:19:26 +08:00
不要把自动生成的文件纳入版本控制。
|
5
hantsy 2016-02-04 20:51:50 +08:00
这种生成的文件不应该用 GIt 管理。。。目录添加到 gitignore
我们项目用 JPA 都会生成 Metadata models ,这些都是编译时产生的,不会加入 GIT |
6
liboyue 2016-02-05 13:39:14 +08:00 via Android
make 的时候先生成 pb 文件就行了吧,这东西不用入库
|
7
Arthur2e5 2016-02-05 16:27:56 +08:00
@morefreeze billlee 说的那句话是对的。
|
8
tianxiaqu123 2016-02-05 21:27:06 +08:00
有人搞过 php 方面的 pb
|
9
c4pt0r 2016-02-06 08:42:51 +08:00 via iPhone
可以试试 submoudle
|