github GitoxideLabs/gitoxide gix-merge-v0.22.0
gix-merge v0.22.0

4 hours ago

Bug Fixes

  • don't remove a directory when removing the file it replaced during tree merges
    One side of a merge can delete or rename away the file a/b and fill a new directory
    a/b/ purely through renames. Rename tracking reports those renames before the unpaired
    deletion (or the rename away) of a/b, so the tree editor received a/b/g first and then
    removed a/b, dropping the whole new directory. The merge reported success, and the result
    silently lost every file under a/b/. It happened in both merge directions, whether or not
    the other side changed anything, and inside virtual merge bases, where it turned later edits
    below a/b/ into add/add conflicts.

    Every removal in the tree merge now goes through Editor::remove_leaf() and leaves a tree at
    the removed path in place, since tree changes are never applied directly and the leaf changes
    below a tree carry every update to it. Three baselines cover a deletion and a rename of the
    replaced file, the latter with the other side's edit following the rename, and the shape
    with two merge bases. Git 2.51.0 merge-tree keeps a/b/ in all of them.

Commit Statistics

  • 11 commits contributed to the release over the course of 13 calendar days.
  • 13 days passed between releases.
  • 1 commit was understood as conventional.
  • 0 issues like '(#ID)' were seen in commit messages

Commit Details

view details
  • Uncategorized
    • Prepare changelogs prior to release (794eeef)
    • Merge pull request #3032 from GitoxideLabs/sec-audit (1d7bac7)
    • Use bstr helpers for byte substring searches (21b210a)
    • Merge pull request #3033 from GitoxideLabs/gix-cli-progress-cleanup (80f4b03)
    • Merge pull request #3022 from GitoxideLabs/release-testtools (f819565)
    • Merge pull request #3027 from cruessler/remove-sha-1-default-in-pipeline (06b0098)
    • Merge pull request #3024 from goldjacobe/fix-tree-merge-keep-dir-on-leaf-removal (3f1ef3a)
    • Review (9ef2352)
    • Don't remove a directory when removing the file it replaced during tree merges (18f476c)
    • Merge pull request #3020 from GitoxideLabs/report-september (5fb3dcf)
    • Fix CI (b3080a6)

Don't miss a new gitoxide release

NewReleases is sending notifications on new releases.