v14.0.0
A massive release that increases performance up to 10x for diffing repositories1 and correctness at the same time. This release
wouldn't have been possible without the herculean efforts of Pascal Kuthe and I am grateful
for his contribution. Thank you!
Other
- try to rewrite delegate to be map based…
…but besides completely failing the normalization test which I don't
understand, it also doesn't manage to get the correct amount of
versions. - try to chunk up baseline, but changes do not line up.
When stepping through the changes in multiple steps, we end up with
more crates then there are even though we identify them by
checksum and consider deletions. Yanking doesn't remove them from
the iteration either.
New Features
-
a
max-performance
feature to tunegit-repository
.
The performance difference is rather drastic at about 2.5x, and
definitely worth having if there is no compatibility issue
due to shared C dependencies in the same binary.Additionally we setup the makefile to use big object caches
to avoid having to decompress the same object too often, accelerating
the diffing process about 4x, for a total of 10x performance boost.
Changed (BREAKING)
-
Change::Deleted
variant now hasversions
field to include all deleted versions.
That way it doesn't degenerate any information, previously the exact
version information was lost.Not doing so helps to be able to reproduce the current state by
aggregating all changes.
New Features (BREAKING)
- Reduce heap-allocations
CrateVersion
type and sub-types.
This improves performance slightly when dealing with a lot of versions,
like when all versions are obtained from the beginning of time.
Commit Statistics
- 21 commits contributed to the release over the course of 3 calendar days.
- 3 days passed between releases.
- 5 commits were understood as conventional.
- 1 unique issue was worked on: #26
Thanks Clippy
Clippy helped 1 time to make code idiomatic.
Commit Details
view details
- #26
- refactor (b42ac1e)
- revert previous to FAILed commits (3b52cfd)
- try to rewrite delegate to be map based… (4d53b04)
- try to chunk up baseline, but changes do not line up. (c0c01bb)
- refactor (097209c)
- Now the baseline result is the same. (02cdb2e)
- make baseline work with CI (b9a1850)
- a baseline test which shows that we cannot reproduce the status quo with changes just yet. (3fcf96b)
Change::Deleted
variant now asversions
to include all deleted versions. (b538ad6)- Reduce heap-allocations
CrateVersion
type and sub-types. (f9be536) - layout baseline for exhaustive test against the latest available index (7e9d3cd)
- Uncategorized
- prepare changelog prior to release (a93ba40)
- Merge branch 'fix-diff' (ec9842a)
- refactor (bd3bc22)
- remove unnecessary unsafe code (1b5684f)
- a
max-performance
feature to tunegit-repository
. (6f5b12a) - improve baseline tests to be more practical (bae80b0)
- add baseline tests that steps trough each commit individually (a377ca4)
- perform an unordered comparison instead of using a linear edit-sequence (8256cbb)
- Merge branch 'complete-baseline' (61c6272)
- thanks clippy (249d141)
-
Needs to build with
git-repository/max-performance
and setup a pack cache, for example withGITOXIDE_PACK_CACHE_MEMORY=1g <you-application>
↩