Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Separate "fast forward" and empty merges #3274

Open
arielshaqed opened this issue Apr 28, 2022 · 7 comments
Open

Separate "fast forward" and empty merges #3274

arielshaqed opened this issue Apr 28, 2022 · 7 comments
Labels
no stale Using this label will prevent items from being marked as stale team/versioning-engine Team versioning engine

Comments

@arielshaqed
Copy link
Contributor

This case is currently mishandled, even after #3270.

Say we develop the exact same 5 files on two branches, but with different orderings:

    gitGraph
       commit id:"1111"
       commit id:"2222"
       branch develop
       checkout develop
       commit id:"+a,b,c"
       commit id:"+d,e"
       checkout main
       commit id:"+a,c,e"
       commit id:"+b,d"
       merge develop
Loading

Here, branch develop first added a,b,c, and then d,e, while branch main first added a,c,e, and then b,d. These are the exact same files, so there is no new metarange to write in the merge: either both branches ended up with the same ranges structures and therefore share a metarange ID, or the ranges structures are different and the merge can pick either one or create a third metarange ID.

But it is a new commit! This merge commit says that main and develop were the same, but it has different parents than both last commit IDs (+d,e on develop, +b,d on main). It's not even a fast-forward merge.

Current code (correctly!) identifies that no new metarange ID is needed, but then (incorrectly!) fails with an error and prevents the new merge commit from being created.

@johnmantios
Copy link
Contributor

this seems a bit more complex than what I've taken up so far but I am willing to give it a try! Assign it to me please :)

@arielshaqed
Copy link
Contributor Author

  • @ozkatz does this make sense to you product-wise?
  • @itaiad200 are you okay with @johnmantios taking this one? (Of course I will review as required...)

@ozkatz
Copy link
Collaborator

ozkatz commented Mar 12, 2023

makes sense!

@itaiad200
Copy link
Contributor

With pleasure. @johnmantios here's some material for ramping up on lakeFS internals:

  1. Versioning internals
  2. Merge
  3. Glossary

Copy link

github-actions bot commented Nov 1, 2023

This issue is now marked as stale after 90 days of inactivity, and will be closed soon. To keep it, mark it with the "no stale" label.

@github-actions github-actions bot added the stale label Nov 1, 2023
@arielshaqed arielshaqed added the no stale Using this label will prevent items from being marked as stale label Nov 7, 2023
@johnnyaug johnnyaug removed the stale label Nov 8, 2023
@github-actions github-actions bot added the stale label Mar 20, 2024
@arielshaqed arielshaqed removed the stale label Mar 27, 2024
@arielshaqed
Copy link
Contributor Author

@johnmantios please let me know if you still want this issue, of course!

@johnmantios
Copy link
Contributor

Hey @arielshaqed 👋
Unfortunately I cannot take this: my current job takes almost all of my time 😔

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
no stale Using this label will prevent items from being marked as stale team/versioning-engine Team versioning engine
Projects
None yet
Development

No branches or pull requests

6 participants