Skydio / revup

Effortlessly create and manage pull requests without changing branches. Powers a stacked diffs workflow with python and git "plumbing" commands.
https://github.com/Skydio/revup
MIT License
310 stars 59 forks source link

git: Switch cherry-pick backend to git merge-tree #109

Closed jerry-skydio closed 1 year ago

jerry-skydio commented 1 year ago

Previously we used a git apply backend that did the job, but doesn't allow for in depth conflict info. git 2.39 introduces a new git merge-tree command that is simpler, faster, and provides in depth output about various conflict types, including conflict types that can't be represented by conflict markers.

Switch to using merge-tree for usages of synthetic cherry-pick and amend. Virtual diff sets still use the temp index mechanism for now since merge-tree does not handle that case.

Dump file conflict markers as well as conflict info whenever possible.

Topic: merge_tree Relative: cache Reviewers: brian-k

jerry-skydio commented 1 year ago

Reviews in this chain: └https://github.com/Skydio/revup/pull/109 git: Switch cherry-pick backend to git merge-tree

jerry-skydio commented 1 year ago
# head base diff date summary
0 43680e3a 9a01d118 diff Apr 5 3:09 AM 1 file changed, 32 insertions(+), 57 deletions(-)
1 916fb80c 9a01d118 diff Apr 5 3:25 AM 2 files changed, 6 insertions(+), 15 deletions(-)
2 23455118 9a01d118 diff Apr 5 3:27 AM 2 files changed, 3 deletions(-)
3 a665cb13 9a01d118 diff Apr 5 4:09 AM 0 files changed
4 df1165dd ee23a8f5 diff Apr 5 22:49 PM 6 files changed, 175 insertions(+), 61 deletions(-)
5 43f085a1 ee23a8f5 diff Apr 5 22:52 PM 1 file changed, 1 insertion(+), 1 deletion(-)
6 8ea41a81 ee23a8f5 diff Apr 5 22:53 PM 1 file changed, 2 insertions(+)
7 cc300bde ee23a8f5 diff Apr 5 23:04 PM 0 files changed
8 69834f65 ee23a8f5 diff Apr 5 23:08 PM 1 file changed, 1 insertion(+), 1 deletion(-)
9 190d9107 3f03c269 diff Apr 13 10:57 AM 2 files changed, 10 insertions(+), 5 deletions(-)