Web lists-archives.com

How to add edges to visualize cherry-picks and ported patches


I hope this is the right place for this answer. If not, plaese point me
to a more appropriate place.

A project  "P2" [2] forked from another project "P1" [1]  quite some
time ago, both repos share a common history up to some point. After this
point, P2 cherry-picked commits from P1, but did not merge P1 any
longer. Unfortunately the author of P2 did not use any mechanism (e.g.
an intermediate branch) to allow tracking up to which point P1 commits
are considered. Thus the graph looks like this:

P1: --A--B--C--X--X--D--E--X--X--X--F--

P2: --Y--Y--A--B--C--D--E--Y--F--

I would like to add edges (say: another branch and merge-commits) to the
graph to make it look something like this:

P1:      --A--B--C--X--X--D--E--X--X--X--F--
                  \           \           \
                   o-----------o-----------o---new branch
                  /           /           /
P2: --Y--Y--A--B--C-------D--E----Y------F--

Of course the new branch should contain the same code as the respective
P2-commit. So at the end, the new branch couls become the P2's new
"master" branch.

How can I achieve this (which commands to use)?

Is there some way to automate this? (e.g. based on `git cherry`)

Thanks in advance for any answer

[1] https://github.com/siacs/Conversations
[2] https://github.com/kriztan/Pix-Art-Messenger

Hartmut Goebel

| Hartmut Goebel          | h.goebel@xxxxxxxxxxxxxxxxxxx               |
| www.crazy-compilers.com | compilers which you thought are impossible |