cpoerschke commented on a change in pull request #2470: URL: https://github.com/apache/lucene-solr/pull/2470#discussion_r597920457
########## File path: PRs.md ########## @@ -64,3 +64,45 @@ Look at the PR and create it if it looks good. # This example's PR was at: https://github.com/apache/lucene/pull/2 ``` +3. Instead of rebasing, you can `git merge` the upstream `main` branch from the new +project into your existing PR branch, push the result to your own fork of the new +project, and use that as the basis for creating a PR against the new upstream project. + +This approach works cleanly because the `main` branch on each of the new projects is +a direct descendant of the merge-base (with `lucene-solr/master`) of all existing +PR branches against the legacy joint `lucene-solr` project. + +A benefit of a `merge`-based approach (as opposed to rebasing or applying a patch) is +that commit history (including commit hashes) is preserved, and remains compatible +across projects (and in some multi-commit cases, a merge-based approach can also +avoid the need to "re-resolve" related conflicts in multiple rebased commits). + +NOTE: PRs updated in this way, if merged back into the `main` branch, could result +in an undesirably convoluted (if "correct") commit history. In many cases it may be +preferable to "squash-merge" such PRs (already a common general practice for merging +feature branches in these projects). + +``` +# clone new upstream project (optionally supplying remote name "apache" instead +# of "origin") +git clone --origin apache https://github.com/apache/lucene.git +cd lucene +# in Github UI, create [user]'s fork of new project (as in the "rebase" example) +# add [user]'s fork of the new project +git remote add mynewfork https://github.com/[user]/lucene.git +git fetch mynewfork +# add [user]'s fork of the legacy (joint) project +git remote add mylegacyfork https://github.com/[user]/lucene-solr.git Review comment: I like `git merge` and have adapted my remote fork naming convention to suit the repo split situation. old convention ``` git remote add github_$user https://github.com/$user/lucene-solr ``` new convention ``` git remote add github_$user https://github.com/$user/lucene git remote add github_$user-lucene-solr https://github.com/$user/lucene-solr ``` Just sharing in case that might suit others too. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
