Christopher, Thanks for cleaning up my mess, I appreciate your help here. Your git-foo is stronger than mine :-) Lesson learned regarding the GitHub UI merge between major branches. The GH UI in this case is lacking several important features - 1) a warning, 2) it didn't show in the UI all of the files that were being merged back to 2.1, it only showed the modifications to the files in main. Once I hit the button to merge, it committed the changes in both branches concurrently.
On Thu, Dec 1, 2022 at 5:31 PM Christopher <ctubb...@apache.org> wrote: > Oh, in case you updated your local 2.1 branch after main was merged > onto it, but before I force-pushed to fix it, just reset your 2.1 > branch by checking out your local 2.1 branch, doing `git remote > update` and then `git reset --hard upstream/2.1` before you do > anything else. That way, we don't get those commits added back in > accidentally. > > On Thu, Dec 1, 2022 at 5:26 PM Christopher <ctubb...@apache.org> wrote: > > > > Hi Accumulo devs, > > > > I just wanted to give you a heads up about branch maintenance for the > > 2.1 branch. A few mistakes were made, and the main branch accidentally > > got merged backwards into the 2.1 maintenance branch instead of the > > other way around. In order to fix this and not have the history > > completely unintelligible, I force-pushed the 2.1 maintenance branch > > back to the commit just prior. It was just the single merge commit > > that grabbed the main branch that needed to be removed to fix things > > in the 2.1 branch. Only the 2.1 branch was affected. The main branch > > did not need to be corrected so drastically. But, after I fixed the > > 2.1 branch, I did merge it forward into the main branch as per our > > usual procedure, to complete the original task that was being > > attempted. > > > > tl;dr - > > If you're curious, the relevant tickets were #3082, #3101, and #3102. > > #3082 was the original ticket adding a feature to 2.1.1. #3101 > > correctly reverted it from the 2.1 branch. This revert was then > > attempted to be merged into the main branch. That was done as a > > separate PR in #3102. For what it's worth, I don't recommend doing > > merges using the GitHub UI that way. GitHub assumes you're combining > > the history of both branches fully into a single resulting branch, > > instead of merely incorporating one branch into the other. This > > assumption caused several problems. The first is the presence of a > > very risky "delete" button suggesting the 2.1 branch can be deleted > > when we don't want it to be deleted. The second, and more troublesome > > problem that caused the issues we needed to fix, was that GitHub's > > conflict resolution UI will merge all of the main branch into the 2.1 > > branch during conflict resolution, because it believes you're merely > > bringing the 2.1 branch up-to-date with main in order to merge a > > feature branch into main and remove the feature branch. It assumes a > > feature branch workflow, not a maintenance branch, one-way merge, > > workflow. > > > > In order to avoid problems like this in future, I recommend merging > > into the main branch from the maintenance branches by using the > > command-line. `git mergetool` is your friend :) > > > > I hope this explanation helps others understand what happened and how > > to avoid similar issues with GitHub in future. > > > > Regards, > > Christopher Tubbs >