Michał Górny posted on Sun, 11 Oct 2015 15:02:43 +0200 as excerpted: > Furthermore, *please* don't mix old version removals with other changes. > This makes it unnecessarily hard to revert breaking changes. Let's > suppose you accidentally removed a version that had reverse > dependencies. If you did it in a separate commit, we could quickly > revert that commit and save users from seeing the breakage, and we could > do the removal properly afterwards. When changes are mixed like this, > you have to do partial reverts and partial re-commits, and things get > unnecessarily hard.
Yes, please. Advanced users doing direct git syncs appreciate it too. =:^) The git experts drill this and drill this, as handled correctly, it's a major advantage git has over more traditional VCS tools, but it's oh so easy to not "get it", for those used to working with those more traditional but less flexible tools. One single logical change per commit. If you want to bunch up, bunch up the commits and push them all at once, but the commits really do need to be one logical change per commit. It makes bisect-debugging, reverting, and cherry-picking, all three, /so/ much simpler. =:^) Adding new python compatibility is one logical change. Removing old ebuilds is another. In fact, ideally each removal would be a separate commit. It is, however, worth repeating that in git, commits are entirely separate from pushes and are very (as in, extremely!) cheap, while pushes, particularly if properly repoman-checked, are obviously much more expensive. It's thus very possible to do all the above in a single /push/ even with each logical change in a separate /commit/. Simply make each logical change a commit of its own without a push, until finished with what you wanted to do. Then do the push of all the commits at once. In fact, with git it's entirely possible to do separate commits to several unrelated things (in gentoo context, probably packages), then push them all at once, without screwing things up, because again, commits and pushes are entirely separate things, and just because all the changes/ commits happen to arrive at the same time with a single push, doesn't necessarily have anything at all to do with whether they're related, because the logical unit is the individual commit, not the push that lands all those individual commits upstream. -- Duncan - List replies preferred. No HTML msgs. "Every nonfree program has a lord, a master -- and if you use the program, he is your master." Richard Stallman
