Re: [PATCH v3] submodule merge: update conflict error message
- From
Glen Choo <chooglen@google.com>
- Date
- Jun 30, 2022, 20:35 UTC
- Message-ID
- <kl6l35flubx8.fsf@chooglen-macbookpro.roam.corp.google.com>
- In-Reply-To
- <20220629224059.1016645-1-calvinwan@google.com>
Hi! I have a suggestion for the output text; I haven't looked closely at the code changes.
Calvin Wan <calvinwan@google.com> writes:
> Changes since v2: > [...] > Changes since v1: > [...]
I notice that this is all above the "---", i.e. this becomes part of the commit message when "git am"-ed. Intentional?
Show 25 quoted lines
> If git detects a possible merge resolution, the following is printed: > > -------- > > Failed to merge submodule sub, but a possible merge resolution exists: > <commit> Merge branch '<branch1>' into <branch2> > > > If this is correct simply add it to the index for example > by using: > > git update-index --cacheinfo 160000 <commit> "<submodule>" > > which will accept this suggestion. > > CONFLICT (submodule): Merge conflict in <submodule> > Recursive merging with submodules is currently not supported. > To manually complete the merge: > - go to submodule (<submodule>), and either update the submodule to a possible commit above or merge commit <commit> > - come back to superproject, and `git add <submodule>` to record the above merge > - resolve any other conflicts in the superproject > - commit the resulting index in the superproject > Automatic merge failed; fix conflicts and then commit the result. > > --------
I'm hesitant to recommend a plumbing command like "git update-index" to the user, especially if the user is one who needs help resolving a submodule merge conflict. I also believe this would be the first time we recommend "git update-index".
To do this using only porcelain commands, maybe:
git -C <submodule> checkout <commit> && git add <submodule>
(Though this might need to be broken up into two commands because I'm not sure if we ever include "&&" in a help message. I'm guessing we don't for portability reasons?)
Show 18 quoted lines
> If git detects multiple possible merge resolutions, the following is printed: > > -------- > > Failed to merge submodule sub, but multiple possible merges exist: > <commit> Merge branch '<branch1>' into <branch2> > <commit> Merge branch '<branch1>' into <branch3> > > CONFLICT (submodule): Merge conflict in <submodule> > Recursive merging with submodules is currently not supported. > To manually complete the merge: > - go to submodule (<submodule>), and either update the submodule to a possible commit above or merge commit <commit> > - come back to superproject, and `git add <submodule>` to record the above merge > - resolve any other conflicts in the superproject > - commit the resulting index in the superproject > Automatic merge failed; fix conflicts and then commit the result. > > -------
For consistency, perhaps include the "here's how to use the suggestion" instructions here as well?