vendor/illumos merges
Mark Johnston
markj at freebsd.org
Sun Apr 25 21:27:40 UTC 2021
On Sun, Apr 25, 2021 at 04:02:22PM +0200, Ulrich Spörlein wrote:
> I don't think you want a subtree merge, especially as things are
> scattered all over the place. Also note that none of this subtree magic
> is in any way recorded in the git data, all it does is help you with the
> 3-way merges (or whatever).
>
> So I would do:
> - import whatever you need into contrib/foo, commit normally.
> - munge /usr/src to have every kernel and userland stuff (not sure what
> other merge tools exist, just make sure to copy over file deletions as
> well :). You could rsync --del two times with the right source/dest
> pairs, or export a diff/patch from step 1 and apply it under the right
> prefixes. test, test, test.
> - write out this tree to git using: git write-tree
> - then commit this using: git commit-tree -m "my message" -p HEAD -p
> origin/vendor/illumos <tree hash from previous command>
> - bump main to point to that hash using git update-ref
> - git log --graph and inspect the hell out of this
> - git push, then curse that we disallow merge commits and you need to
> `git pull --rebase` to advance to the latest published head and that
> might mess up your merge commit pretty bad :(
Thanks, I'll give this a try. I need to make quite a few changes to
various base system files not included in the import, makefiles mainly.
Presumably these changes should be included in the merge commit?
> Maybe 2x git subtree merge + then rewriting and squashing them into 1
> would work. But I fear it will record 3 parents, not 2 parents.
>
> Whatever you do, maybe please push to your private Github clone or our
> dev repo first and tell us where to look, so we can inspect whether it
> looks ok.
More information about the freebsd-git
mailing list