Google designed protobuf to be pretty forgiving with versioning:
- unexpected data is either stored as "extensions" (making it round-trip safe), or silently dropped, depending on the implementation
- new fields are generally added as "optional", meaning that old data can be loaded successfully
however:
- do not renumber fields - that would break existing data
- you should not normally change the way any given field is stored (i.e. from a fixed-with 32-bit int to a "varint")
Generally speaking, though - it will just work, and you don't need to worry much about versioning.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…