> I think that the best we can do it to always split a commit to minimal > components, but actually we are working this way > > I am struggling with the BP-14 feature because I am trying to split the > work but without a good result, the patch impacts: > - client side API > - zk metadata > - wire protocol > - journal > - LAC protocol A lot of these pieces can be done independently though. You can put the metadata stuff a commit, and just have nothing use the new fields. You can implement the last add synced, without having the different sync types in the bookie or client. You can implement the sync types in the bookie, without supporting it in the client. You can do the client without changing the benchs.
Obviously you'll probably to touching all over the code when you're developing the feature, but once it's ready to go, you can build up your commits. I usually commit a WIP commit at this point, reset back to master, and use "git add -p". After each commit, stash the uncommitted, make sure the branch compiles (and tests pass if there's something dodgy in the patch), rinse and repeat. -Ivan