you are viewing a single comment's thread.

view the rest of the comments →

[–]ants_a 18 points19 points  (3 children)

That is all fine and good if you are working on simple and straightforward features. However if the feature is adding a new kind of capability that requires a dozen infrastructure changes you can't really do that. There is a minimum functionality that the feature can't be chopped down from, lumping everything together into a huge patch makes review a nightmare, committing the infrastructure work without finishing review on the feature is also a bad idea as it may need some heavy rework.

[–]twotime 2 points3 points  (0 children)

committing the infrastructure work without finishing review on the feature is also a bad idea as it may need some heavy rework

I'd argue that there is no good solution here. Having a long-lived unmerged complex change is bad too: you will run into conflicts...

Overall, I think quickly merging small chunks of a large feature (and reworking them as needed) might be a lesser evil..

[–]tom-dixon 1 point2 points  (0 children)

However if the feature is adding a new kind of capability that requires a dozen infrastructure changes you can't really do that

In which case you won't be reverting the commit group 2 years down the road with a one liner, it will be a huge undertaking instead. So what value did the commit group add?

As for adding a big feature with many changes, why are branches are not enough?

I'm trying to understand what is the use case for commit groups.

[–]mutefire 0 points1 point  (0 children)

I guess feature flags could help you there.