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

octopus-merge (part 5: tree-merge-ORT three-way) #1618

Merged
merged 23 commits into from
Nov 2, 2024
Merged

octopus-merge (part 5: tree-merge-ORT three-way) #1618

merged 23 commits into from
Nov 2, 2024

Commits on Oct 31, 2024

  1. Configuration menu
    Copy the full SHA
    32d6bfb View commit details
    Browse the repository at this point in the history
  2. Add a link to OpenCollective

    Byron committed Oct 31, 2024
    Configuration menu
    Copy the full SHA
    1f40a89 View commit details
    Browse the repository at this point in the history
  3. Improve error message to be less elusive

    Co-authored-by: Eliah Kagan <degeneracypressure@gmail.com>
    Byron and EliahKagan committed Oct 31, 2024
    Configuration menu
    Copy the full SHA
    eb9f9c3 View commit details
    Browse the repository at this point in the history
  4. feat: Allow access to tree::State::buf1|2.

    This allows to re-use that memory at least, making this kind of state a little more useful.
    Also, these fields can certainly be considered stable.
    Byron committed Oct 31, 2024
    Configuration menu
    Copy the full SHA
    eb55c00 View commit details
    Browse the repository at this point in the history
  5. feat: add tree_with_rewrites::Change(Ref)::previous_location()

    That way, it's also possible to obtain the previous location in case of rewrites.
    Byron committed Oct 31, 2024
    Configuration menu
    Copy the full SHA
    76e6762 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    6740520 View commit details
    Browse the repository at this point in the history
  7. feat: Add tree::Editor::get() to get entries directly from the editor.

    This is useful if in the middle of an edit you'd like to lookup what's there
    to choose a non-conflicting name, for example.
    Byron committed Oct 31, 2024
    Configuration menu
    Copy the full SHA
    e2ea398 View commit details
    Browse the repository at this point in the history
  8. fix!: prefer to receive borrowed gix_command::Context when it's jus…

    …t passed on.
    
    That way, the clone occours only when needed, without forcing the caller
    to pre-emptively clone each time it's called.
    Byron committed Oct 31, 2024
    Configuration menu
    Copy the full SHA
    78a5355 View commit details
    Browse the repository at this point in the history
  9. feat!: Don't fail on big files during blob-merge, but turn them into …

    …binary merges.
    
    Binary merges are mere choices of which side to pick, which works well for big files
    as well. Git doesn't define this well during its own merges, so there is some room here.
    Byron committed Oct 31, 2024
    Configuration menu
    Copy the full SHA
    c1cf08c View commit details
    Browse the repository at this point in the history
  10. feat: add blob::PlatformRef::id_by_pick() to more efficiently pick …

    …merge results.
    
    This works by either selecting a possibly unchanged and not even loaded resource,
    instead of always loading it to provide a buffer, in case the user doesn't
    actually want a buffer.
    
    Note that this also alters `buffer_by_pick()` to enforce handling of the 'buffer-too-large'
    option.
    Byron committed Oct 31, 2024
    Configuration menu
    Copy the full SHA
    dd99991 View commit details
    Browse the repository at this point in the history
  11. adapt to changes in gix-merge

    Byron committed Oct 31, 2024
    Configuration menu
    Copy the full SHA
    278dd88 View commit details
    Browse the repository at this point in the history

Commits on Nov 1, 2024

  1. fix!: Adjust blob-merge baseline to also test the reverse of each ope…

    …ration
    
    This also fixes an issue with blob merge computations.
    
    It's breaking because the marker-size was reduced to `u8`.
    Byron committed Nov 1, 2024
    Configuration menu
    Copy the full SHA
    de1cfb6 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    29aad45 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    ba7b811 View commit details
    Browse the repository at this point in the history
  4. fix: make sure ordinary capitalized partial names can be found by par…

    …tial name.
    
    For instance, previously, a ref named `A` could not be found even though `refs/heads/A` existed.
    Byron committed Nov 1, 2024
    Configuration menu
    Copy the full SHA
    1fbb946 View commit details
    Browse the repository at this point in the history
  5. feat!: move gix-odb::Write trait to gix-object::Write.

    There it's far more useful and plumbing crates are enabled to write
    objects without pulling in `gix-odb` as dependency.
    Byron committed Nov 1, 2024
    Configuration menu
    Copy the full SHA
    7325c58 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    96488f7 View commit details
    Browse the repository at this point in the history

Commits on Nov 2, 2024

  1. feat: add tree() and commit() merge support, en par with `merge-O…

    …RT` as far as tests go.
    
    Note that this judgement of quality is based on a limited amount of partially complex
    test, but it's likely that in practice there will be deviations of sorts.
    
    Also, given the complexity of the implementation it is definitely under-tested,
    but with that it's mostly en par with Git, unfortunatly.
    
    On the bright side, some of the tests are very taxing and I'd hope this
    means something for real-world quality.
    Byron committed Nov 2, 2024
    Configuration menu
    Copy the full SHA
    4b1764c View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    80e006b View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    bd91d6a View commit details
    Browse the repository at this point in the history
  4. feat: gix::Repository implements all traits for object reading and …

    …writing.
    
    That way it becomes usable when merging trees, which benefits from automatic
    checking of hashes before writing loose objects.
    Byron committed Nov 2, 2024
    Configuration menu
    Copy the full SHA
    07746f3 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    d1ac584 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    84707c2 View commit details
    Browse the repository at this point in the history