Skip to content
Draft
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
72 changes: 72 additions & 0 deletions crates/git-vendor/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,77 @@
# Changelog

## [1.0.0-alpha.1](https://github.com/git-ents/git-vendor/compare/git-vendor-v1.0.0-alpha.1...git-vendor-v1.0.0-alpha.1) (2026-05-26)


### Features

* Add `ConflictStages` carrying `[base, ours, theirs]` stage versions ([0993c27](https://github.com/git-ents/git-vendor/commit/0993c27e42e976f10921cd7c8acea678a5e26077))
* Add `Error::Conflict` ([395b29c](https://github.com/git-ents/git-vendor/commit/395b29c42ceee1d136bb0348bc2468161767a5b6))
* Add `Error::InvalidName` ([e535fcf](https://github.com/git-ents/git-vendor/commit/e535fcfc62f9cf2a6e64c7ed0e7d2ee1a47e2eba))
* Add `Error::InvalidUrl` and `Error::Fetch` variants ([b9d4407](https://github.com/git-ents/git-vendor/commit/b9d4407e3bce2b0373dd43958d477bcc6a656ecd))
* Add `From<gix::repository::merge_base::Error>` to `Error` ([73df0c5](https://github.com/git-ents/git-vendor/commit/73df0c558ae7674d6b78658688523b207e1599e5))
* Add `From<merge_trees::Error>` and `From<tree_merge_options::Error>` to `Error` ([31d98a9](https://github.com/git-ents/git-vendor/commit/31d98a9254c03cd5f629ec306383055811621db8))
* Add `mode` config key with `squash` integration strategy ([b6d305e](https://github.com/git-ents/git-vendor/commit/b6d305e300e26dcd818985cf0dd4dee19da92c0f))
* Add `vendor_overlay` to `VendorRepository` ([4799cb0](https://github.com/git-ents/git-vendor/commit/4799cb0c601a2d8f3d629d9952aabbd9e9c1dc78))
* Add `VendorMode` enum replacing `VendorEntry::squash` ([b6d305e](https://github.com/git-ents/git-vendor/commit/b6d305e300e26dcd818985cf0dd4dee19da92c0f))
* Add `VendorName` validated newtype ([e535fcf](https://github.com/git-ents/git-vendor/commit/e535fcfc62f9cf2a6e64c7ed0e7d2ee1a47e2eba))
* Add `VendorWorktree::checkout_vendor_conflicted` ([395b29c](https://github.com/git-ents/git-vendor/commit/395b29c42ceee1d136bb0348bc2468161767a5b6))
* Add committer, author, and message params to `commit_vendor` ([cc46448](https://github.com/git-ents/git-vendor/commit/cc464483f24e0e5f5646b16d6881e5ac1f170e5d))
* Add DepotRepository trait and VendorEntry ([24f21a7](https://github.com/git-ents/git-vendor/commit/24f21a7a3bdb455a6f6a9cc0b9157d38be3bd0a6))
* Add Error type with thiserror and impl_gix_from! macro ([24f21a7](https://github.com/git-ents/git-vendor/commit/24f21a7a3bdb455a6f6a9cc0b9157d38be3bd0a6))
* Add exe module with VendorWorktree trait (checkout/track/untrack/sync) ([1da7741](https://github.com/git-ents/git-vendor/commit/1da774161074166a9f06e9d52953691ee33640c8))
* Add explicit `ours` commit parameter to `VendorRepository::vendor_paths` ([a5c94e6](https://github.com/git-ents/git-vendor/commit/a5c94e6a117100120d6f860fe733537dea8a05db))
* Add gix index-from-tree and attribute-stack error conversions to `Error` ([098de11](https://github.com/git-ents/git-vendor/commit/098de11cfdc52699c98d8ed679f9743303fb88d0))
* Add gix tree-editor and traverse error conversions to `Error` ([f7fe174](https://github.com/git-ents/git-vendor/commit/f7fe174c07c846afe03055165df6e4c6e2b6484e))
* Add PatternMapping, VendorStatus, VendorMerge, VendorConfig types ([1da7741](https://github.com/git-ents/git-vendor/commit/1da774161074166a9f06e9d52953691ee33640c8))
* Add VendorConfig::open_from_bytes ([33cd3ba](https://github.com/git-ents/git-vendor/commit/33cd3ba7fc61ae461d653a1913e2006a1e4ddab4))
* Carry merge-stage versions on `VendorMerge` conflicts ([0993c27](https://github.com/git-ents/git-vendor/commit/0993c27e42e976f10921cd7c8acea678a5e26077))
* Define DepotRepository trait and Error type ([24f21a7](https://github.com/git-ents/git-vendor/commit/24f21a7a3bdb455a6f6a9cc0b9157d38be3bd0a6))
* Derive `Error::Config` for invalid vendor glob patterns ([f7fe174](https://github.com/git-ents/git-vendor/commit/f7fe174c07c846afe03055165df6e4c6e2b6484e))
* Enable gix `blocking-network-client` feature ([b9d4407](https://github.com/git-ents/git-vendor/commit/b9d4407e3bce2b0373dd43958d477bcc6a656ecd))
* Enable gix `worktree-mutation` feature ([5bb39fb](https://github.com/git-ents/git-vendor/commit/5bb39fb45ed2d3303aee3cb4362240ec1d8c2cd2))
* Enforce vendor name invariant via validated `VendorName` newtype ([e535fcf](https://github.com/git-ents/git-vendor/commit/e535fcfc62f9cf2a6e64c7ed0e7d2ee1a47e2eba))
* Filter and remap upstream blobs into local path space in `upstream_tree` ([f7fe174](https://github.com/git-ents/git-vendor/commit/f7fe174c07c846afe03055165df6e4c6e2b6484e))
* Implement `base_tree` as `upstream_tree` at the recorded base ([e1c0593](https://github.com/git-ents/git-vendor/commit/e1c05931bb2b1d6314f4101ef4fcdc7d12e7c161))
* Implement `checkout_vendor` working-copy projection ([5bb39fb](https://github.com/git-ents/git-vendor/commit/5bb39fb45ed2d3303aee3cb4362240ec1d8c2cd2))
* Implement `commit_vendor` ([b8da2b3](https://github.com/git-ents/git-vendor/commit/b8da2b3c32fc9fbaa13a2f6096d2a047e8a1f049))
* Implement `commit_vendor` using `gix::objs::Commit` and `write_object` ([b8da2b3](https://github.com/git-ents/git-vendor/commit/b8da2b3c32fc9fbaa13a2f6096d2a047e8a1f049))
* Implement `fetch_vendor` for `gix::Repository` ([b9d4407](https://github.com/git-ents/git-vendor/commit/b9d4407e3bce2b0373dd43958d477bcc6a656ecd))
* Implement `fetch_vendor` with anonymous remote fetch and ref projection ([b9d4407](https://github.com/git-ents/git-vendor/commit/b9d4407e3bce2b0373dd43958d477bcc6a656ecd))
* Implement `merge_vendor` in `VendorRepository for gix::Repository` ([31d98a9](https://github.com/git-ents/git-vendor/commit/31d98a9254c03cd5f629ec306383055811621db8))
* Implement `merge_vendor` three-way merge in local path space ([31d98a9](https://github.com/git-ents/git-vendor/commit/31d98a9254c03cd5f629ec306383055811621db8))
* Implement `ours_tree` attribute-filtered local snapshot ([098de11](https://github.com/git-ents/git-vendor/commit/098de11cfdc52699c98d8ed679f9743303fb88d0))
* Implement `upstream_tree` pattern filtering and remapping ([f7fe174](https://github.com/git-ents/git-vendor/commit/f7fe174c07c846afe03055165df6e4c6e2b6484e))
* Implement `vendor_paths`, resolving the local selection from `.gitattributes` ([a7bd9d2](https://github.com/git-ents/git-vendor/commit/a7bd9d279dd26502afa80e6f203f8905b1ff1f28))
* Implement `vendor_status` ([73df0c5](https://github.com/git-ents/git-vendor/commit/73df0c558ae7674d6b78658688523b207e1599e5))
* Implement `vendor_tip` via `try_find_reference` ([e1c0593](https://github.com/git-ents/git-vendor/commit/e1c05931bb2b1d6314f4101ef4fcdc7d12e7c161))
* Implement PatternMapping and VendorConfig ([33cd3ba](https://github.com/git-ents/git-vendor/commit/33cd3ba7fc61ae461d653a1913e2006a1e4ddab4))
* Implement VendorConfig and PatternMapping with tests ([33cd3ba](https://github.com/git-ents/git-vendor/commit/33cd3ba7fc61ae461d653a1913e2006a1e4ddab4))
* Preserve non-UTF-8 `ours` paths byte-for-byte in `ours_tree` ([098de11](https://github.com/git-ents/git-vendor/commit/098de11cfdc52699c98d8ed679f9743303fb88d0))
* Record squashed upstream OID as a `Squashed-upstream` git trailer ([b6d305e](https://github.com/git-ents/git-vendor/commit/b6d305e300e26dcd818985cf0dd4dee19da92c0f))
* Refuse to commit conflicted vendor merges and stub conflict checkout ([395b29c](https://github.com/git-ents/git-vendor/commit/395b29c42ceee1d136bb0348bc2468161767a5b6))
* Reject conflicted `VendorMerge` in `commit_vendor` ([395b29c](https://github.com/git-ents/git-vendor/commit/395b29c42ceee1d136bb0348bc2468161767a5b6))
* Select `vendor=<name>` attributed paths from the ours commit tree in `ours_tree` ([098de11](https://github.com/git-ents/git-vendor/commit/098de11cfdc52699c98d8ed679f9743303fb88d0))
* Wire `vendor_paths` to `resolve_vendor_paths` ([a7bd9d2](https://github.com/git-ents/git-vendor/commit/a7bd9d279dd26502afa80e6f203f8905b1ff1f28))


### Bug Fixes

* Build the merge commit's tree by overlaying `result_tree` onto the parent ([881d96c](https://github.com/git-ents/git-vendor/commit/881d96cca6aab7a7f40d867438e117d17e3dff67))
* Error when all configured patterns are invalid instead of silently emptying the tree ([6561041](https://github.com/git-ents/git-vendor/commit/656104187478faba9ec4c89ccd20b8b9cb7d6318))
* Gate `raw_paths` helper on `#[cfg(unix)]` ([48f6f51](https://github.com/git-ents/git-vendor/commit/48f6f515e403c444ae8d805aea15c611dd8c1777))
* Handle unborn HEAD with no `.git/index` in `checkout_vendor` ([5bb39fb](https://github.com/git-ents/git-vendor/commit/5bb39fb45ed2d3303aee3cb4362240ec1d8c2cd2))
* Harden `upstream_tree` glob matching and path remapping ([3caa4ac](https://github.com/git-ents/git-vendor/commit/3caa4acf6fc818f74a6ce81a48af9a92e389fa6d))
* Harden upstream_tree pattern indexing, path safety, and traversal ([6561041](https://github.com/git-ents/git-vendor/commit/656104187478faba9ec4c89ccd20b8b9cb7d6318))
* Import `ByteSlice` trait in `non_utf8_filename_is_preserved` ([48f6f51](https://github.com/git-ents/git-vendor/commit/48f6f515e403c444ae8d805aea15c611dd8c1777))
* Pair compiled globs with their PatternMapping to prevent index desync ([6561041](https://github.com/git-ents/git-vendor/commit/656104187478faba9ec4c89ccd20b8b9cb7d6318))
* Refuse local transports ([23a6e4e](https://github.com/git-ents/git-vendor/commit/23a6e4e3d4201aa1a7157a96bf0e4c345b026697))
* Reject escaping or empty synthesized local paths via gix::validate::path::component ([6561041](https://github.com/git-ents/git-vendor/commit/656104187478faba9ec4c89ccd20b8b9cb7d6318))
* Remove stale vendor symlinks during `checkout_vendor` ([5bb39fb](https://github.com/git-ents/git-vendor/commit/5bb39fb45ed2d3303aee3cb4362240ec1d8c2cd2))
* Report `Error::Config` when a pattern maps to an empty local path ([3caa4ac](https://github.com/git-ents/git-vendor/commit/3caa4acf6fc818f74a6ce81a48af9a92e389fa6d))
* Splice vendored content into the full tree on `commit_vendor` ([881d96c](https://github.com/git-ents/git-vendor/commit/881d96cca6aab7a7f40d867438e117d17e3dff67))
* Use gitignore-like glob semantics in `upstream_tree` so `*` no longer crosses `/` ([3caa4ac](https://github.com/git-ents/git-vendor/commit/3caa4acf6fc818f74a6ce81a48af9a92e389fa6d))

## [1.0.0-alpha.1](https://github.com/git-ents/git-vendor/compare/git-vendor-v0.2.0...git-vendor-v1.0.0-alpha.1) (2026-03-26)


Expand Down