1488 lines · 136.4 KB · Markdown
RawDownload

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

0.17.0 (2022-08-24)

Chore

  • uniformize deny attributes

New Features

  • gix remote refs to list all remote references of a suitable remote. This takes into account either a named remote, or the remote associated with the current branch, or the default remote it could deduce or obtain from the configuration.
  • use docsrs feature in code to show what is feature-gated automatically on docs.rs
  • pass --cfg docsrs when compiling for https://docs.rs

Changed (BREAKING)

  • remove gix free remote ref-list in favor of gix remote refs The functinality is the same, but the latter is built on top of a repository which is slightly less flexible, but preferable over maintaining a non-repo version.

Commit Statistics

  • 20 commits contributed to the release over the course of 5 calendar days.
  • 6 days passed between releases.
  • 5 commits where understood as conventional.
  • 1 unique issue was worked on: #450

Commit Details

view details
  • #450
    • remove gix free remote ref-list in favor of gix remote refs (dda9957)
    • refactor (e0be6e9)
    • Add support for passing urls directly to bypass all remote repository logic. (df3cf18)
    • gix remote refs to list all remote references of a suitable remote. (5d6d5ca)
    • Try to use maybe async for the simplest of possibly blocking remote interactions (db4df25)
    • basic parsing of gix remote refs without any implementation. (f8f1249)
  • Uncategorized
    • update changelogs prior to release (23cb58f)
    • Release git-date v0.0.5, git-hash v0.9.8, git-features v0.22.2, git-actor v0.11.3, git-glob v0.3.2, git-quote v0.2.1, git-attributes v0.3.2, git-tempfile v2.0.4, git-lock v2.1.1, git-validate v0.5.5, git-object v0.20.2, git-ref v0.15.2, git-sec v0.3.1, git-config v0.7.0, git-credentials v0.4.0, git-diff v0.17.2, git-discover v0.4.1, git-bitmap v0.1.2, git-index v0.4.2, git-mailmap v0.3.2, git-chunk v0.3.1, git-traverse v0.16.2, git-pack v0.21.2, git-odb v0.31.2, git-packetline v0.12.7, git-url v0.7.2, git-transport v0.19.2, git-protocol v0.19.0, git-revision v0.4.2, git-refspec v0.1.0, git-worktree v0.4.2, git-repository v0.22.0, safety bump 4 crates (4974eca)
    • Merge branch 'example-write-blob' (afedd7f)
    • Merge pull request #494 from ultrasaurus/patch-1 (86fe22c)
    • Merge branch 'main' into remote-ls-refs (95f2f4f)
    • Merge branch 'example-new-repo' (946dd3a)
    • Merge branch 'main' into remote-ls-refs (e2ee3de)
    • use docsrs feature in code to show what is feature-gated automatically on docs.rs (b1c40b0)
    • uniformize deny attributes (f7f136d)
    • pass --cfg docsrs when compiling for https://docs.rs (5176771)
    • Merge branch 'main' into remote-ls-refs (c82bbfa)
    • prepare for release of git-repository (8aa5389)
    • Merge branch 'main' into remote-ls-refs (bd5f3e8)
    • greatly improve gix commit describe performance by adding an object cache (d07daaa)

0.16.0 (2022-08-17)

New Features

  • --cat-file flag for gix rev parse to cat instead of resolving.
  • gix rev previous-branches subcommand

Changed (BREAKING)

  • remove Repository::load_index() in favor of repo.worktree().open_index().

  • git_revision is now available in revision::plumbing. That way it won't clash with the higher-level constructs on top of it which use the same names.

  • adapt to changes in git-url and use BString to represent URLs. They can contain paths, which is why String can't repsent a URL losslessly.

    For HTTP urls these are ultimately UTF-8 strings though.

New Features (BREAKING)

  • gix rev resolve --explain
  • Repository::rev_parse() returns a RevSpec. This lays the foundation for actually handling rev-specs faithfully. Previous users should use rev_parse().single() to obtain a single object id which was the only supported usecase previously.

Commit Statistics

  • 42 commits contributed to the release over the course of 26 calendar days.
  • 26 days passed between releases.
  • 7 commits where understood as conventional.
  • 3 unique issues were worked on: #427, #450, #482

Thanks Clippy

Clippy helped 1 time to make code idiomatic.

Commit Details

view details
  • #427
    • --cat-file flag for gix rev parse to cat instead of resolving. (b83f6bd)
    • gix rev resolve --explain (c5846e0)
    • make fmt (4b320e7)
    • gix rev previous-branches subcommand (e972aad)
    • support for parsing multiple specs in one invocation (84b5448)
    • adapt to changes in git-repository (ebb788c)
    • remove Repository::load_index() in favor of repo.worktree().open_index(). (ea35183)
    • Assure desirable performance by assuring an object cache exists. (af32128)
    • Use Display for revision printing instead of Debug (d194f15)
    • git_revision is now available in revision::plumbing. (4fd0968)
    • Make use of git-revision::Spec in RevSpec data structure. (004915e)
    • adjust to change in git-revision (51762bb)
    • adjust to changes in git-revision (df7da1f)
    • adjust to changes in git-revision (a70f262)
    • gix rev parse now uses Repository::rev_parse() (e191681)
    • Repository::rev_parse() returns a RevSpec. (e2aff28)
  • #450
  • #482
    • Bring back conversion from discovery kind to git-repository::Kind (ebb5bee)
  • Uncategorized
    • Release git-commitgraph v0.8.1, gitoxide-core v0.16.0, gitoxide v0.14.0 (183c048)
    • prepare for gitoxide release (6305d52)
    • Release git-date v0.0.3, git-actor v0.11.1, git-attributes v0.3.1, git-tempfile v2.0.3, git-object v0.20.1, git-ref v0.15.1, git-config v0.6.1, git-diff v0.17.1, git-discover v0.4.0, git-bitmap v0.1.1, git-index v0.4.1, git-mailmap v0.3.1, git-traverse v0.16.1, git-pack v0.21.1, git-odb v0.31.1, git-packetline v0.12.6, git-url v0.7.1, git-transport v0.19.1, git-protocol v0.18.1, git-revision v0.4.0, git-worktree v0.4.1, git-repository v0.21.0, safety bump 5 crates (c96473d)
    • Release git-hash v0.9.7, git-features v0.22.1 (232784a)
    • Merge branch 'main' into remote-ls-refs (c4bf958)
    • fix tree ext reading and writing; round-trip with long path works now (f93febe)
    • Merge branch 'format_git_date_time' (99e12be)
    • Merge branch 'main' into remote-ls-refs (de61c4d)
    • thanks clippy (4bd747c)
    • Merge branch 'main' into remote-ls-refs (e8fc89d)
    • Merge branch 'write-index-files' into write-index-v2 (cddc2ca)
    • Merge branch 'write-index-files' into rev-parse-delegate (370110d)
    • Merge branch 'main' into rev-parse-delegate (4ae2bed)
    • Merge branch 'main' into rev-parse-delegate (6da8250)
    • make fmt (47724c0)
    • Merge branch 'kianmeng-fix-typos' (4e7b343)
    • Fix typos (e9fcb70)

0.15.0 (2022-07-22)

Changed (BREAKING)

  • remove local-time-support feature toggle. We treat local time as default feature without a lot of fuzz, and will eventually document that definitive support needs a compile time switch in the compiler (--cfg unsound_local_offset or something).

    One day it will perish. Failure is possible anyway and we will write code to deal with it while minimizing the amount of system time fetches when asking for the current local time.

  • Associate file::Metadata with each File. This is the first step towards knowing more about the source of each value to filter them based on some properties.

    This breaks various methods handling the instantiation of configuration files as file::Metadata typically has to be provided by the caller now or be associated with each path to read configuration from.

New Features

  • gix config with section and sub-section filtering.
  • gix config lists all entries of all configuration files git considers. Filters allow to narrow down the output.
  • Use git-config to write config file on initialization, including logallrefupdates and precomposeunicode.

Bug Fixes

  • ein tool organize now ignores worktrees. Previously it would report an error due to invalid assumptions. The new behaviour acknowledges that worktrees are placed by hand and moving them is almost always not what the user would want, even ignoring the added complexity in doing so correctly.
  • improve error messages related to object decoding

Commit Statistics

  • 71 commits contributed to the release over the course of 101 calendar days.
  • 108 days passed between releases.
  • 7 commits where understood as conventional.
  • 3 unique issues were worked on: #301, #331, #427

Thanks Clippy

Clippy helped 2 times to make code idiomatic.

Commit Details

view details
  • #301
    • fix build (d7dac11)
    • refactor (7b5fe1d)
    • adjust to changes in git-repository (e1dbf85)
    • fix build (40b8d4c)
    • Allow reading patterns from stdin (0c597fe)
    • Add --show-ignore-patterns to gix repo exclude query (09f904b)
    • Basic prefix support as well the first working version of exclude query (9cb8385)
    • Support for overrides on the command-line (7d98b21)
    • preliminary access to a fully configured exclusion cache (259d015)
    • fix build (cb56f12)
    • sketch open_index() on Worktree, but… (ff76261)
    • a sketch of basic Worktree support (732f6fb)
    • refactor (3ff991d)
    • frame for gix repo exclude query (a331314)
    • adapt to changes in git-path (cc2d810)
    • Use git-path crate instead of git_features::path (47e607d)
    • fix build (ffe92ca)
    • Make attributes and ignore configuration possible, but… (8a75fd7)
    • make fmt (50ff7aa)
  • #331
    • Group similarly named sections together more by not separating them with newline (4c69541)
    • Make lossy-configuration configurable (b0e4da6)
    • update README with gix config information (c19d9fd)
    • remove local-time-support feature toggle. (89a41bf)
    • gix config with section and sub-section filtering. (eda39ec)
    • gix config lists all entries of all configuration files git considers. (d99453e)
    • Associate file::Metadata with each File. (6f4eea9)
    • Use git-config to write config file on initialization, including logallrefupdates and precomposeunicode. (7f67b23)
    • adjust to changes in git-config (c52cb95)
  • #427
    • fix build (4355e6b)
    • improve describe hinting to allow hinting with describe-anchors as well (d993992)
    • support disambiguation of describe prefixes (637dcb0)
    • Add rough but working version of rev-parse (f3f176d)
    • improve error messages related to object decoding (761695c)
    • First implementation of object peeling (b1ef03a)
    • refactor (a3cb4da)
    • Handle 'kind' changes which completes 'explain' (45022a0)
    • Support for explaining all navitation (ace9c89)
    • start navigation implementation (ea1c009)
    • Implement Revision anchors (a1f0e3d)
    • basic infrastructure for delegate implementation (d3c0bc6)
    • Hookup explain command (1049b00)
  • Uncategorized
    • Release git-worktree v0.4.0, git-repository v0.20.0, git-commitgraph v0.8.0, gitoxide-core v0.15.0, gitoxide v0.13.0 (d4df661)
    • Release git-config v0.6.0, git-credentials v0.3.0, git-diff v0.17.0, git-discover v0.3.0, git-index v0.4.0, git-mailmap v0.3.0, git-traverse v0.16.0, git-pack v0.21.0, git-odb v0.31.0, git-url v0.7.0, git-transport v0.19.0, git-protocol v0.18.0, git-revision v0.3.0, git-worktree v0.4.0, git-repository v0.20.0, git-commitgraph v0.8.0, gitoxide-core v0.15.0, gitoxide v0.13.0 (aa639d8)
    • Release git-hash v0.9.6, git-features v0.22.0, git-date v0.0.2, git-actor v0.11.0, git-glob v0.3.1, git-path v0.4.0, git-attributes v0.3.0, git-tempfile v2.0.2, git-object v0.20.0, git-ref v0.15.0, git-sec v0.3.0, git-config v0.6.0, git-credentials v0.3.0, git-diff v0.17.0, git-discover v0.3.0, git-index v0.4.0, git-mailmap v0.3.0, git-traverse v0.16.0, git-pack v0.21.0, git-odb v0.31.0, git-url v0.7.0, git-transport v0.19.0, git-protocol v0.18.0, git-revision v0.3.0, git-worktree v0.4.0, git-repository v0.20.0, git-commitgraph v0.8.0, gitoxide-core v0.15.0, gitoxide v0.13.0, safety bump 22 crates (4737b1e)
    • prepare changelog prior to release (3c50625)
    • make fmt (0700b09)
    • fix build after changes to git-url and git-config (1f02420)
    • Merge branch 'main' into cont_include_if (daa71c3)
    • Merge branch 'main' into cont_include_if (0e9df36)
    • Merge branch 'main' into cont_include_if (41ea8ba)
    • Release git-path v0.3.0, safety bump 14 crates (400c9be)
    • Release git-date v0.0.1, git-hash v0.9.5, git-features v0.21.1, git-actor v0.10.1, git-path v0.2.0, git-attributes v0.2.0, git-ref v0.14.0, git-sec v0.2.0, git-config v0.5.0, git-credentials v0.2.0, git-discover v0.2.0, git-pack v0.20.0, git-odb v0.30.0, git-url v0.6.0, git-transport v0.18.0, git-protocol v0.17.0, git-revision v0.2.1, git-worktree v0.3.0, git-repository v0.19.0, safety bump 13 crates (a417177)
    • update changelogs prior to release (bb424f5)
    • Merge branch 'main' into svetli-n-cont_include_if (315c87e)
    • Refact. (a342e53)
    • ein tool organize now ignores worktrees. (5667a7c)
    • Revert "ignore worktrees in 'organize', but…" (f59471f)
    • ignore worktrees in 'organize', but… (e501c9e)
    • Merge branch 'davidkna-admin-sec' (3d0e2c2)
    • Release git-path v0.1.3, git-discover v0.1.2, git-repository v0.18.1, cargo-smart-release v0.10.1 (b7399cc)
    • Merge branch 'davidkna-discover-x-fs' (9abaeda)
    • Release git-path v0.1.2, git-sec v0.1.1, git-config v0.4.0, git-discover v0.1.1, git-pack v0.19.1, git-repository v0.18.0, cargo-smart-release v0.10.0, safety bump 2 crates (ceb6dff)
    • fix most of docs (1fe053f)
    • refactor (07e0f5e)
    • Release git-hash v0.9.4, git-features v0.21.0, git-actor v0.10.0, git-glob v0.3.0, git-path v0.1.1, git-attributes v0.1.0, git-sec v0.1.0, git-config v0.3.0, git-credentials v0.1.0, git-validate v0.5.4, git-object v0.19.0, git-diff v0.16.0, git-lock v2.1.0, git-ref v0.13.0, git-discover v0.1.0, git-index v0.3.0, git-mailmap v0.2.0, git-traverse v0.15.0, git-pack v0.19.0, git-odb v0.29.0, git-packetline v0.12.5, git-url v0.5.0, git-transport v0.17.0, git-protocol v0.16.0, git-revision v0.2.0, git-worktree v0.2.0, git-repository v0.17.0, safety bump 20 crates (654cf39)
    • make fmt (e043807)
    • make fmt (251b6df)
    • Merge branch 'git_includeif' of https://github.com/svetli-n/gitoxide into svetli-n-git_includeif (0e01da7)
    • thanks clippy (d011d4e)
    • thanks clippy (fdec111)
    • Release git-glob v0.2.0, safety bump 3 crates (ab6bed7)

0.14.0 (2022-04-05)

New Features

  • Add gix repo commit describe It supports typical but basic flags mostly similar to the ones in git.

  • Commit::describe() A way to fluidly configure a git describe operation and run it.

    Along that, a new Tag top-level object was added as well to provide convenient access to otherwise lower-level objects. It's not strictly required for our implementation here but it's needed for a symmetric API.

Commit Statistics

  • 8 commits contributed to the release.
  • 2 days passed between releases.
  • 2 commits where understood as conventional.
  • 1 unique issue was worked on: #298

Commit Details

view details
  • #298
  • Uncategorized
    • Release git-revision v0.1.0, git-repository v0.16.0, gitoxide-core v0.14.0, gitoxide v0.12.0 (f041c00)
    • Release git-config v0.2.1, git-diff v0.15.0, git-traverse v0.14.0, git-pack v0.18.0, git-odb v0.28.0, git-ref v0.12.1, git-revision v0.1.0, git-repository v0.16.0, gitoxide-core v0.14.0, gitoxide v0.12.0, safety bump 6 crates (b612021)

0.13.0 (2022-04-03)

Refactor (BREAKING)

  • clarify different repository types much better
  • Remove light* features, add 'lean-async' in its place; remove termion support
  • remove pack-cache from Find::try_find(…) With the new architecture this can be an implementation detail without forcing it to be Sync.
  • move git_pack::data::Object to git_object::Data, massively alter git_odb::Find trait This will break a lot, but has to happen to prepare these traits for the next generation of object databases.

Other

  • Try to make Handle usable for pack creation It's nearly there, but for some reason the boxed dyn traits don't get to be Send even though it's specified.

Bug Fixes

  • Allow resolution of in-pack ref-deltas This finally allows delta tree caches to be used on typical small packs returned by GitHub.

  • keep non "git" repository name extensions When converting a remote URL to a destination directory name, keep extension strings if they are not equal to "git". For example,

  • Avoid the dashmap being cloned for each thread Intead, share it by reference, it's sync after all.

    This issue was introduced when switching to a Send + Clone model, instead of Send + Sync, to allow thread-local caches in database handles of all kinds.

New Features

  • ein tool estimate-hours with shallow clone support
  • ein tool estimate-hours now supports mailmaps
  • gix repository mailmap entries
  • gix mailmap verify command
  • unstable mailmap module
  • ein find with support for worktree checkouts
  • ein find --debug to learn why it is slow
  • --counting-threads flag to configure amount of threads when counting The efficiency of multi-threaded counting is low per core, and despite some speedups might be desirable, one might not want to commit all cores to this amount of waste.
  • in-manifest and in-lib documentation of feature toggles

Changed (BREAKING)

  • file::Store::(try_)find(…, packed) was removed The packed buffer is now handled internally while loading it on demand. When compiled with git-features/parallel the file::Store remains send and sync.

    The packed refs buffer is shared across clones and it's recommended to clone one file::Store instance per thread, each of which can use its own namespace.

  • parallel utilities now use Send + Clone insted of Send + Sync This helps to assure that thread-local computations always work with the kind of types we provide. The ones that are carrying out actions are notably not Sync anymore.

    We cater to that by defining our bounds accordingly, but for those who want to use other utilities that need Sync, using types like Repository and thread_local!() is the only way to make this work.

  • Rename gix->ein and gixp->gix

  • remove Option<impl Progress> in favor of impl Progress

  • multi-index integrity check; use integrity::Outcome for various integrity checks

  • remove unnecessary Arc around should_interrupt flag

  • remove Sha1 mentions in index::verify::Mode::* variants The hash is repository defined and not hard-coded

  • introduce index::File::verify_integrity(…, pack: Option<PackContext>, …), replacing tuple This allows for more documentation on what input is required there and generally makes for an easier to use API.

  • consistently use object_hash instead of hash_kind

Commit Statistics

Commit Details

view details
  • #215
    • Remove light* features, add 'lean-async' in its place; remove termion support (4d2d433)
  • #247
    • Rename gix->ein and gixp->gix (e8b0919)
  • #263
    • Adjust to chagne signature of peel_to_id_in_place (again?) (dd5341f)
    • file::Store::(try_)find(…, packed) was removed (15d429b)
    • parallel utilities now use Send + Clone insted of Send + Sync (e7526b2)
    • A mad attempt to use thread-local everywhere and avoid Sync… (0af5077)
  • #266
    • upgrade dependencies (c301abe)
    • Make single-threaded programs possible to use with git-repository (dde5c6b)
    • Use new store in git-repository (2f9e342)
    • Adjust object-acess to test new contains method (8488b41)
    • Use handle with default cache configuration in 'ein hours' (f71806f)
    • adapt to changes in git-repository (fae309b)
    • Adjustments to match changes in git-repository (117d5f8)
    • Adapt to changes in git-repository (3ab9b03)
    • Adapt to changes in git-repository (3266c47)
    • Adjust pack-create to changes in git-pack (12db899)
    • Cache-creators are indeed shared across threads, must be sync (c326cb3)
    • Try to make Handle usable for pack creation (424c9b3)
    • Inform when multi-threaded counting is rejected (cc3b070)
    • remove pack-cache from Find::try_find(…) (ebc7f47)
    • move git_pack::data::Object to git_object::Data, massively alter git_odb::Find trait (2290d00)
  • #279
    • Fast-path multi-pack index verification in the CLI (bcde935)
    • Add a less thorough and faster way of verifying multi-indices (7517482)
    • Handle large multi-pack indices correctly (4f6b030)
    • Fix progress and handling of large of multi-pack index offsets (5dc1f81)
    • Basic multi-pack index creation (89428b2)
    • Add frame for writing a multi-pack index (9ce1e7f)
    • adjust to changes in git_pack (7907ca8)
    • even nicer printing (d2bea27)
    • nicer printing of index verification results (e3dfa12)
    • very first experimental support for multi-pack index verification (bb35c69)
    • remove Option<impl Progress> in favor of impl Progress (bf04644)
    • multi-index integrity check; use integrity::Outcome for various integrity checks (6829e5e)
    • remove unnecessary Arc around should_interrupt flag (d851bed)
    • remove Sha1 mentions in index::verify::Mode::* variants (c2679a0)
    • introduce index::File::verify_integrity(…, pack: Option<PackContext>, …), replacing tuple (80b120d)
    • Adjust to changes in git-odb (710780c)
    • refactor (005fba7)
    • consistently use object_hash instead of hash_kind (de4fa64)
    • adapt to changes in git-pack (28dba20)
    • Deal with changes to git-odb Write trait (4d67122)
    • adapt to changes to git-odb (5b0e2b9)
    • adapt to changes in git-hash (82fec95)
  • #287
    • lower-case json fields for consistency (f6c0e6d)
    • basic output for 'repo verify' json only (9f8d61f)
    • share and pass cli arguments for pack verification (db43e47)
    • Allow resolution of in-pack ref-deltas (84ade1d)
    • Very rough version of repository verification (80a4a7a)
    • frame for loose-db validation (a24307d)
    • Adjustments to deal with changes to git-pack/git-odb (fcf8fde)
  • #293
    • Assert store tree cache matches actual source objects (b062bec)
    • Sketch a surprisingly difficult way of loading objects in verify_extension() (3baeab4)

Lines 1–500 of 1488.