New Features
-
provide a way to record and apply index changes.
These changes will then be applicable to an index that is created
from the written tree editor. -
when blob-merging, clarify if something would have conflicted.
-
add
Conflict::is_unresolved()
as utility to see if multiple of them are considered unresolved. -
respect the
conflict-marker-size
attribute as well. -
add
tree()
andcommit()
merge support, en par withmerge-ORT
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. -
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.
Other
-
Fix code fences in gix-merge
ConflictStyle
andDriver
They are not Rust code (they are text with conflict markers and a
shell command, respectively) and they are not intended as doctests,
but the absence of anything on the opening line caused them to be
taken as doctests, socargo test --workspace --doc
would fail
with parsing errors.(Doctests for all crates have not always been run automatically on
CI, so this was not caught when these documentation comments were
introduced in #1585.)
New Features (BREAKING)
-
Add more modes for checking for unresolved conflicts.
They aim at making it possible to know if a conflict happened that was
automatically resolved. -
add
commit::virtual_merge_base()
to produce the single merge-base to use.
This allows more flexibility in conjunction with tree-merging, as
commits as input aren't required.This is breaking as it changes the return value of
commit()
. -
Repository::merge_trees()
now has a fully-wrapped outcome.
That way, more attached types are used for greater convenience. -
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.
Bug Fixes (BREAKING)
-
Adjust blob-merge baseline to also test the reverse of each operation
This also fixes an issue with blob merge computations.It's breaking because the marker-size was reduced to
u8
. -
prefer to receive borrowed
gix_command::Context
when it's just passed on.
That way, the clone occours only when needed, without forcing the caller
to pre-emptively clone each time it's called.
Commit Statistics
- 28 commits contributed to the release.
- 13 commits were understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
Commit Details
view details
- Uncategorized
- Release gix-date v0.9.2, gix-actor v0.33.1, gix-hash v0.15.1, gix-features v0.39.1, gix-validate v0.9.2, gix-object v0.46.0, gix-path v0.10.13, gix-quote v0.4.14, gix-attributes v0.23.1, gix-packetline-blocking v0.18.1, gix-filter v0.15.0, gix-chunk v0.4.10, gix-commitgraph v0.25.1, gix-revwalk v0.17.0, gix-traverse v0.43.0, gix-worktree-stream v0.17.0, gix-archive v0.17.0, gix-config-value v0.14.10, gix-lock v15.0.1, gix-ref v0.49.0, gix-config v0.42.0, gix-prompt v0.8.9, gix-url v0.28.1, gix-credentials v0.25.1, gix-bitmap v0.2.13, gix-index v0.37.0, gix-worktree v0.38.0, gix-diff v0.48.0, gix-discover v0.37.0, gix-pathspec v0.8.1, gix-dir v0.10.0, gix-mailmap v0.25.1, gix-revision v0.31.0, gix-merge v0.1.0, gix-negotiate v0.17.0, gix-pack v0.55.0, gix-odb v0.65.0, gix-packetline v0.18.1, gix-transport v0.43.1, gix-protocol v0.46.1, gix-refspec v0.27.0, gix-status v0.15.0, gix-submodule v0.16.0, gix-worktree-state v0.15.0, gix v0.68.0, gix-fsck v0.8.0, gitoxide-core v0.43.0, gitoxide v0.39.0, safety bump 25 crates (8ce4912)
- Prepare changelogs prior to release (bc9d994)
- Merge pull request #1661 from GitoxideLabs/merge (0b7abfb)
- Provide a way to record and apply index changes. (3ee8b62)
- Add more modes for checking for unresolved conflicts. (aff76f2)
- When blob-merging, clarify if something would have conflicted. (09213bc)
- Merge pull request #1662 from paolobarbolini/thiserror-v2 (7a40648)
- Upgrade thiserror to v2.0.0 (0f0e4fe)
- Merge pull request #1658 from GitoxideLabs/merge (905e5b4)
- Add
commit::virtual_merge_base()
to produce the single merge-base to use. (9d43b75) - Merge pull request #1654 from EliahKagan/doctest-workspace (1411289)
- Fix code fences in gix-merge
ConflictStyle
andDriver
(2fdbcfe) - Merge pull request #1651 from GitoxideLabs/merge (a876533)
Repository::merge_trees()
now has a fully-wrapped outcome. (1d2262f)- Add
Conflict::is_unresolved()
as utility to see if multiple of them are considered unresolved. (9e106c4) - Remove a TODO that turned out to be unnecessary. (5b428a9)
- Merge pull request #1652 from EliahKagan/run-ci/chmod (8e99eba)
- Update tree-baseline archive (ab45415)
- Set +x in index in added-file-changed-content-and-mode (6faf11a)
- Set +x in index in same-rename-different-mode baseline (041bdde)
- Merge pull request #1618 from GitoxideLabs/merge (3fb989b)
- Respect the
conflict-marker-size
attribute as well. (bd91d6a) - Add
tree()
andcommit()
merge support, en par withmerge-ORT
as far as tests go. (4b1764c) - Adjust blob-merge baseline to also test the reverse of each operation (de1cfb6)
- Add
blob::PlatformRef::id_by_pick()
to more efficiently pick merge results. (dd99991) - Don't fail on big files during blob-merge, but turn them into binary merges. (c1cf08c)
- Prefer to receive borrowed
gix_command::Context
when it's just passed on. (78a5355) - Merge pull request #1642 from GitoxideLabs/new-release (db5c9cf)