From ef24de24a82fe681581cc130f342363c47c0969a Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Fri, 7 Jun 2024 07:48:48 +0200 Subject: Merging upstream version 1.75.0+dfsg1. Signed-off-by: Daniel Baumann --- vendor/gix/.cargo-checksum.json | 2 +- vendor/gix/CHANGELOG.md | 138 ++++++++++++++++++++- vendor/gix/Cargo.lock | 180 +++++++++++++++------------- vendor/gix/Cargo.toml | 74 ++++++------ vendor/gix/src/clone/fetch/mod.rs | 4 +- vendor/gix/src/clone/fetch/util.rs | 2 +- vendor/gix/src/config/cache/access.rs | 10 +- vendor/gix/src/config/tree/keys.rs | 2 +- vendor/gix/src/config/tree/sections/core.rs | 3 +- vendor/gix/src/filter.rs | 4 +- vendor/gix/src/head/peel.rs | 4 + vendor/gix/src/lib.rs | 8 +- vendor/gix/src/object/blob.rs | 26 ++++ vendor/gix/src/object/commit.rs | 8 ++ vendor/gix/src/object/impls.rs | 56 +++++++-- vendor/gix/src/object/mod.rs | 19 ++- vendor/gix/src/object/tag.rs | 26 +++- vendor/gix/src/object/tree/mod.rs | 26 +++- vendor/gix/src/reference/errors.rs | 23 +++- vendor/gix/src/reference/mod.rs | 2 +- vendor/gix/src/repository/cache.rs | 2 +- vendor/gix/src/repository/index.rs | 10 ++ vendor/gix/src/repository/location.rs | 1 + vendor/gix/src/repository/object.rs | 49 ++++++-- vendor/gix/src/repository/reference.rs | 9 ++ vendor/gix/src/types.rs | 20 ++++ 26 files changed, 540 insertions(+), 168 deletions(-) (limited to 'vendor/gix') diff --git a/vendor/gix/.cargo-checksum.json b/vendor/gix/.cargo-checksum.json index 4c3735e08..7ac96fdd7 100644 --- a/vendor/gix/.cargo-checksum.json +++ b/vendor/gix/.cargo-checksum.json @@ -1 +1 @@ -{"files":{"CHANGELOG.md":"1d19c01836b4304d7ff947d7d708c920c82bb3e890c409bc3a595f04e8a53f7c","Cargo.lock":"a6d5cde82a8ae844af84ae8aeea87244b431b9d89625e5fcc7fd75659dd40a0b","Cargo.toml":"411958a94d8058aaffc2ba36b91605162a10d5387475e58cf8f48e49eedb874c","LICENSE-APACHE":"cb4780590812826851ba250f90bed0ed19506ec98f6865a0e2e20bbf62391ff9","LICENSE-MIT":"49df47913ab2beafe8dc45607877ae64198bf0eee64aaad3e82ed9e4d27424e8","src/assets/init/HEAD":"28d25bf82af4c0e2b72f50959b2beb859e3e60b9630a5e8c603dad4ddb2b6e80","src/assets/init/description":"47aad2f8621afc777c66085c31f5ed14656df9bcfa5a2ae445680f175d0d2d0c","src/assets/init/hooks/applypatch-msg.sample":"1ae81b995a5c8c54582e1977084babed1e947a5a5c247ad29563142e432955ab","src/assets/init/hooks/commit-msg.sample":"b1451a4c89ee4406ba56f003a7e3d142e24a7452861fddddc23bfc77163c8650","src/assets/init/hooks/docs.url":"4424200fb80650f5063a3ec0a3864af4aaa3103f1319fe576b64d3bfc74f8a67","src/assets/init/hooks/fsmonitor-watchman.sample":"99ed87d785ada3687b4d86b8d9aa562f3430ce7061834e5381166b6a35a0d495","src/assets/init/hooks/post-update.sample":"e6d88132de729f20c45f66c2df51cc2e223a4b8b1512a2ce1cfdd0033ee53e53","src/assets/init/hooks/pre-applypatch.sample":"4c9754cac1c73109e4113ffd76070ae528a42667a85135e87fb826d572d13a4c","src/assets/init/hooks/pre-commit.sample":"1dd0fb2a11956784eb184e72af2fd87feca9050903400f163b90d4db7f19ce78","src/assets/init/hooks/pre-merge-commit.sample":"fca192309544e8e23638bd0987be7a5d00e271599b55382c1c6a4812070da223","src/assets/init/hooks/pre-push.sample":"0e6762e0b35b2475849d11c71d504cfae10cab2be0b947d7caa1e0d5959f2cec","src/assets/init/hooks/pre-rebase.sample":"d7c629ddbaa5f984d21c97a14889599d2019230220d3459aa103648316500968","src/assets/init/hooks/prepare-commit-msg.sample":"f804b4efd22ef832b49506a815a6a6b1103b8f77b6d6556fc3756232727396d8","src/assets/init/info/exclude":"df4c844761dc873ca9ea2f6fabcc2e2460b2f804ca65f8470e39ffbda7c3446e","src/attribute_stack.rs":"835abb1ed1477b26d6e57eb25b418096ad09b3c2d4781bc5f21bf72741846a42","src/clone/access.rs":"285795cc8f32a66cfb7a98ad7458dad29415ef8331eff995ca0b87a63aa39410","src/clone/checkout.rs":"bfb9f26cb9e471e0af0cdcd417a87bbbf28f4f7cabe3443480be5471f35c0be1","src/clone/fetch/mod.rs":"f00acfadcd4f9a1759ca029593be6692a1a913b5b41308464d163e9eac2f6bbe","src/clone/fetch/util.rs":"27ab217f25aa73690e3a31acf5655bd412c1f47653860bcb6a9a668d0b7ef01d","src/clone/mod.rs":"f4238d146b6cd29bbb12c77f08efc25efd33f50eb4834daecead2176154fab79","src/commit.rs":"3cf4f1f485c025982e9bb398c48d356af321d9fd8775de7c1a911de1052a1ece","src/config/cache/access.rs":"d7942372d42748ee5a04c8cb8dbff8c0fcb710109c9b56f53eb4edfe0ac0914c","src/config/cache/incubate.rs":"75a949861c7c2d11eec84dea92c80059b68a6ebedaf399690305544836e0a7d3","src/config/cache/init.rs":"37fee4c9c661a37d2186940b832c2a067cfcaa2ea9ebc185ce8fb4bbb6ec72f5","src/config/cache/mod.rs":"3cce2cf0fafbc4f828870b85fef411a826ad6d1fe3ac5b6cbd2f5e049331aebf","src/config/cache/util.rs":"6dbd15b84e47d3d32c6535d1b9f6a9ad73171137411d5a8bb764c5d1f60b005e","src/config/mod.rs":"7895c0860c3b84faaf5df05a2cf06065fc2ade4b0e01e1322040713b559d8d67","src/config/overrides.rs":"ca3b08e3ab4d292c904ef3a0746e937c4e90440ae19389b03321c5645177e39e","src/config/snapshot/_impls.rs":"edae9b731c69828effbdfe01d32b7caa8c536df81d33de1cb67b88ece01a7218","src/config/snapshot/access.rs":"c08dfa7bb0c969913efb6e08692203c5bed7ef2502053a89f6181846aec5918a","src/config/snapshot/credential_helpers.rs":"cd269ffb60aab86a752839294b3514b31bd59de5b4ae941f25111dfba25aad33","src/config/snapshot/mod.rs":"21f6eaeb511e470df6f3d8948dfd65b688741b39d534fbaf78e3ee620bc6a5c5","src/config/tree/keys.rs":"16b9625821e1d7bba9dc79181fbf34b0266cea4ffda5108c36fd23325c157253","src/config/tree/mod.rs":"be9654a1c844b8444c2f5d0003937fbc06bae7f934073eb206e0541df3b81425","src/config/tree/sections/author.rs":"a27cf6ad5150aa5ccbd64d2786183983e1567c094a221b016875864c9e8f6980","src/config/tree/sections/branch.rs":"105211bb0eefbdc718923d5e770261889163a5d61dc8f0c22af33473cfb32100","src/config/tree/sections/checkout.rs":"329ebe10cca7c5414f9e6229d6dce3178cdb5821a1b7e72bbfac3a60b5b42dc2","src/config/tree/sections/clone.rs":"bbc86890044721ac34ae7610b14987035ab8714c856cec2787fae49c286a6d6d","src/config/tree/sections/committer.rs":"2f99b8bc6e2c4ad9bdba3a85bc6b717acb5b09d1ada2723d3ba5954f804368eb","src/config/tree/sections/core.rs":"e5f04b31611fab9252ff0f00b8e95e1e06ad36c0e5e8fcc2fa5495537152c9f4","src/config/tree/sections/credential.rs":"e1ce72dc24b9d2f06827b9fc6e8c963f888844ab5a4b48f6d867ad8542909b94","src/config/tree/sections/diff.rs":"9c577772d544d9c9c0d06485955aecab0c64d8e1a0117e71a33f75dd281baa83","src/config/tree/sections/extensions.rs":"f73c444f2e2c8fbc8d1b1991c0d63532c792362e42833f3ae06059c07387cf66","src/config/tree/sections/fetch.rs":"437a6a13df2e1da4a06e9a28d9da020eccab395f13150d398e94bf4cd3e690f8","src/config/tree/sections/gitoxide.rs":"a483361a58e3221bbaf64847cfe70698fc4a73d24ce80875e4970af889fbf5b7","src/config/tree/sections/http.rs":"58c9a9b8abcee4066eb4e20f9679dbbf888c04c21f4dbfff0d2ad7f0a18d4fcd","src/config/tree/sections/index.rs":"30166326b339c9d0b171ebfd1c1f0fb90e38dc8b2edcd66dfead2a87c38eb938","src/config/tree/sections/init.rs":"e87e33ac5091797bde302f78c8fb7cefce0fb1752610409c1db53c3f7b4179af","src/config/tree/sections/mod.rs":"31f480fde038af3532667fb3ff511b6b978de262fa6cef4e19e1e64655060bc8","src/config/tree/sections/pack.rs":"0a6dcdc7603b0d7a84159a70789b63b6c26d539f98808c520a8e644fc9dbd2f3","src/config/tree/sections/protocol.rs":"feae4977f6576adb446d0599f018d41421a7b1b0871a74e8fcfe5e2b7104de74","src/config/tree/sections/remote.rs":"eb06d89125dc72b5754b642cf561e6e430cad4fbbd57dcd1049d306291afc41f","src/config/tree/sections/safe.rs":"4e96f49ff56d6ebb8944406fe2ae3c4a1fa80c5383f08935015ddc6036b583c3","src/config/tree/sections/ssh.rs":"7db83236912bcb7aa1770f0eb1a388ee0fac94c1548bd9a19051b34c25622841","src/config/tree/sections/url.rs":"e342edcd20979feaf54663a919a0751aaf32b4e1f2e47cf5d028faec62e6b731","src/config/tree/sections/user.rs":"8f02172a5db830832b4edf28693fdef33cece6ba1990c4d7a338e4c9291375ab","src/config/tree/traits.rs":"524f1752e9131c27db3a9016ee6c3abc61175345c2167426ffd5a41602cb950d","src/create.rs":"7da6fbdf8c18a32ad4ab9cea8a062fb8aadb08d8478c9d1c3de09c7e6e4448fe","src/diff.rs":"52bc752a2a8decff56b7a41d1ae97b90c0f3422332f999ced67fc884d6b25d18","src/discover.rs":"41631f880b7880f62d77bfb0511f4d85a82a574ca5f53b8cb8fe35edd5b886f6","src/env.rs":"57da96b315b6fe057a326639cd3e85849793449c4c8f3477b79a032b1a029b31","src/ext/mod.rs":"cc6a4c10c2eb53eb261e0186ee51411dada06bbb245c205356fce1de9d4628f5","src/ext/object_id.rs":"a70afd79c84731df0023d738332b3688a2adbcbdda802f8ee70297fc8fe0ca38","src/ext/reference.rs":"a51fe4f63e5708afa4fbabd13638b88c34845a64263db77308cd1b974a0f325f","src/ext/rev_spec.rs":"c196f21a3981b7ad84e9385ba3924a554accf9c7a3b4f8e2bba13cb74f108ec8","src/ext/tree.rs":"60753a38cfd6cbb43b794236de0258a5af40f0a88864dde9e1f7d6cdb8cbb04f","src/filter.rs":"5f106fe06646beb2beb3f181258e7b717f7b3111ed41380c5e22fb3db215bd89","src/head/log.rs":"0de9d5f834b633756001bdd246e98266084d521d7f775537e6e6ead5ed93d7e4","src/head/mod.rs":"5be9b17e6ffb5dd4c9548b8a4d9e25d6ab6600450762293c43ca0bcbd2a6284f","src/head/peel.rs":"4d92eb96c94abfcc653fbd00fcb0800985105d9b7804f5dbe81756da3b8b8bae","src/id.rs":"1f5f97d24d8c00460d085e2815c08b89632ae1e3cde283a4362798cc4b1276ea","src/init.rs":"ac6f329feb2d33cd8a5f0ce21bb77a166e18656a9952d4cba147196242558c9a","src/interrupt.rs":"217d8611ebe2932e7cb52f77a90cec4a6dbe0bd69eb16b951a70fbd8b5e95853","src/lib.rs":"28fabd0194e9cb3168a46f6552752dd02f21736dc42b301653e74ae619d21428","src/mailmap.rs":"415301bdcb3d6991675c7ea86a92eea152cf65df7b2d14da4b58b3b605039e4e","src/object/blob.rs":"5b613976f017190b857e1ace8140ae0b2656da5d94389dfc84525919eeea54f6","src/object/commit.rs":"533da4ff0639db444548bcb3345fb34db505af997dd477f7ad53a8000ef24e75","src/object/errors.rs":"b2b456480e10dc4cdd213650dacb619d96bd9770e19d6042a80621991acd5255","src/object/impls.rs":"6b9f76d332da496148adaa9b5b5de5dcf98c3fd92deba245dd2e6c2a3895eb77","src/object/mod.rs":"158263fe6f6a8db6ecebc741dac012a517508d5041e70909228e1c0ae9cee1c7","src/object/peel.rs":"c23ac9baac1216d9320c71926f56548d18f7f3964bdbcccd8ca81f6b756f7ad9","src/object/tag.rs":"b40e2b908de9dd500d297f1bcbd969facfe7beadcf62cc6a7cb975169f2da8be","src/object/tree/diff/change.rs":"95df7e1fb3b58fa2a0086f205c39940fb590ccdac92aee53a6cff5f29181f30c","src/object/tree/diff/for_each.rs":"da534722f9dbfdf26e66dc564de0c7e694e92cf54f33e29f3364ed056cea8c78","src/object/tree/diff/mod.rs":"672ef727e70da7a6f214e59ea45b16833c68c5b57a95fe7e71c89aac054eaaf4","src/object/tree/diff/rewrites.rs":"d91983f629bf3f0256da17d0067daf8271503345423f725d3a23fb5a40eac4d2","src/object/tree/diff/tracked.rs":"4b8226a3722b08e41b00c800efc81ee611f801cf42606203c26d568f2d6d16fa","src/object/tree/iter.rs":"cf3ae9dfd5018b55228ccc0b4b707b39a3fa2c5d2b130e209da5dcf9080e10ca","src/object/tree/mod.rs":"b0ba34a7227ce7ff82cc7686061251e8e6789d9ef04f5b9d6590cc5242488909","src/object/tree/traverse.rs":"ae0342857d42b6afb82167423dfdac9611ce1b7281b6b9b542e230960c564c0f","src/open/mod.rs":"d25c11246536e7d57172b375569bd8545b8060f13bbfbc49cbf0f85636627076","src/open/options.rs":"1ffda0517724d1328b2fb296a782d89305a482be65ed24a1d9d867bead8eb5a5","src/open/permissions.rs":"5a55970e738ba7a9af7b51cdeb03955af533b3306baaef278b398cf99f8a312b","src/open/repository.rs":"ae4100ee1dd30890d961dc12a57dcf03dee1ffa9a99c54a6704dde5493416764","src/path.rs":"3cd4c92a626384f8f4db89b2f7594923b922d7b841681c167748a01abc7dc3f7","src/pathspec.rs":"bddfa7360ee13ac72a97fa0e1388c9605518da3fc96fd35e76e245f25b73b813","src/prelude.rs":"8dc6fa25bb01fbc1e012364949982e406b17ab22bde464e154f12286fba293cf","src/progress.rs":"a9ba8ec6cc21eea78121b02d1feaba8f6aab04be441bfe8be9f3dffe4c5e0ba5","src/reference/edits.rs":"5d857cd65d7415d4de5aed1ea8acc9c227000a71b2e202293546cd23be1f62b2","src/reference/errors.rs":"f0699048b34163a8e9fb19306827f16dd0d8376660787646ee75e73c70fe7497","src/reference/iter.rs":"1feb3aaed665b39780136f0d703f67f4b34f6239e90cd2a0c632aad40523e025","src/reference/log.rs":"f1eab69b8272b15bd23beeb68e88a8b53f003f74d86783196b2de4a84f0497fd","src/reference/mod.rs":"1920cf8657100d1ea50efdc510333fc073ae756d9778553d06ee0a17ea5f4414","src/reference/remote.rs":"4467c1bf9d463d1781a3254a3874c7fc763201e33d51e1a92a6f0dcbc6776135","src/remote/access.rs":"76e75baca0155710c2eea0e439df0774ecb0cd6c7e6b950876dd9e6e75be5e9f","src/remote/build.rs":"0bfcf98ee6b96c401a410c71b749426e84a78c17eff944ea7d6229ef2dc3e5e8","src/remote/connect.rs":"a147cf33f7ac1413e07d7b5aae0c6a557ee9b29f9172e7ea2413446d670ac71b","src/remote/connection/access.rs":"075f04705680959074cf3db6856bf34180d68d1a3065011ca56b67a861e2b168","src/remote/connection/fetch/config.rs":"93b1392fdc409dba073e96272f13ad7ab996522d59df819edc800431ee36975b","src/remote/connection/fetch/error.rs":"21ccf5ff0cba287247581849c510aa3dd1acdd510cfbb858a579dd85b2c7b050","src/remote/connection/fetch/mod.rs":"c88b8b968debe3192ecc6a5e46a1587f590b1ae45b76df4c13d8a64df956860c","src/remote/connection/fetch/negotiate.rs":"7258ddb2d5adf92f5041709bda16f1d19313ec867717ed270c6a191fdc92b3b9","src/remote/connection/fetch/receive_pack.rs":"d3d4809a7e4ae52868d5975c5de8d16e1218f662ee83e35498291ee582accdc9","src/remote/connection/fetch/update_refs/mod.rs":"f28b33d42f0992b3e91b7eba3672d6fe4d41811f8ea170e9bf11fac688c6e882","src/remote/connection/fetch/update_refs/tests.rs":"69a25df4dc1f84b5a7cb603e2451114cf0a7e356c026317995f3d14bfd07a345","src/remote/connection/fetch/update_refs/update.rs":"729ae1cfef895df37ae5a34c19d9aac9b77e664f107f3adf81a79ae58412e960","src/remote/connection/mod.rs":"863f4a7f2476f5b5d8622959d5069424decea29ba7f66619f679344e6fb5a5d1","src/remote/connection/ref_map.rs":"35913d6c4d8976025ff880ac71bd8e5af0b73fd83e6ca53be1ec275b6dc009e4","src/remote/errors.rs":"6c4986618c55c2a86e4623b02837918dc61849c3d634e7d474a123eb7e01bcbc","src/remote/fetch.rs":"cf78b682074ad700ea6eb4d511401a737a905bd4af0dcfd639b7f850227f5978","src/remote/init.rs":"87576486ae399945b2134dbce70e960ff4c2b3a3046988449f6da0c25f6d646c","src/remote/mod.rs":"14a1532470cc76cf3b727657439923f3515dd781ebfc7030d9481056c6bbf162","src/remote/name.rs":"9fa7e81a157375ecb40ddfba5da850fef7513296a68014a50f5148d57f40b8b7","src/remote/save.rs":"a8b2160cde235c9a2ecddc0181d1cca57a01e046eae8d3b11fa7b29e43ca6866","src/remote/url/mod.rs":"a3279f5330fc83193e583f2b839ab08006c293b0040db6cc74969d50813fbbaa","src/remote/url/rewrite.rs":"4d43167909020458abc5e3e7310e3efaddb9fc7c783581fbc9422fa8b057d95d","src/remote/url/scheme_permission.rs":"4f6e528260c67af54171477d97707050f048c0c35e77f088f8ddc4ae135e6386","src/repository/attributes.rs":"6c28910869eafda6c4c9d6a2b06a2a881f2d5fcf6f5c084ac501850ced2af810","src/repository/cache.rs":"72d41c8f90d2e49c10b884582613fa5941ea0e1d15cc7d0a4d0d7be0b0243d4d","src/repository/config/mod.rs":"b6d7d9b3fb86f0e76cc585efb110aec0bdee4b82c8bdbe6a3bb67d65ffd31de9","src/repository/config/transport.rs":"78683c40947e95d9835809d6b9adc89bbce4e8a06345279c56554b2a76dc4e7c","src/repository/filter.rs":"cc65692a78e3cc28166f595d3bf05c0d3f12757fc8d320512638f6edb724c209","src/repository/graph.rs":"07763932b3215ac25e3981a60ab0750449af992475da7fd47bb0412cdf0fc727","src/repository/identity.rs":"0d7c575578eef869d16d99ce465696f41b1c7e8d2bdba93945219d7453b3d717","src/repository/impls.rs":"b07dd79074b3a175df1ec43042c6cd0ad98b884885e25deae6828a59cc290e2a","src/repository/index.rs":"44e74a6f5be41da88a42a1b5fc5f9b4a70fb42302696a6b4394822fab918ba05","src/repository/init.rs":"f72f56ff1ebb225d043a088c922adb24495d4031d4de2edf6a144156f1f6305e","src/repository/kind.rs":"a32375689f9de7c74d29079caa2f025db8a4b13a3dc31a587039548343b23ade","src/repository/location.rs":"31204869db066e0a1ea58be0b5c41b247f581b16a2ea011942d8d6b5702403b8","src/repository/mailmap.rs":"3ca35665ac2d2c6f100826169822750e1b6647b1f284206f408126e749718030","src/repository/mod.rs":"2154ccecc6167644cd02b88906597d735632a8ed8c5f60dfac5934a7dc7198ea","src/repository/object.rs":"dd2ea672c630aacfda15366349562f3e2dbabcf8bc9201775dc4c0e86633f488","src/repository/pathspec.rs":"6da21d9a2f75ace735cc96aa6dd709bf323f2c5fc05daa40dfc3d393b2485187","src/repository/permissions.rs":"9f7f41fd250d043cea7ee6ff0cdc315838dbb6226bde3dca2a7666f01d648090","src/repository/reference.rs":"9a5f7109bee3bb165bf7da31ef7ae3b3a9018573da1b82407fe158a0ffb13851","src/repository/remote.rs":"4ecc9021f3369d9530a130fe2dbe3c98dc50b593a5194c8584293808fc2bc4a4","src/repository/revision.rs":"c2d50c2bed8b465e5e2f24483d5cc54791fa68c6f558feea5871dfdcc7f6c4ec","src/repository/shallow.rs":"ce0b3358ed0ccca6ac52a985555793013f7c2d5de83291cd9810181ac22e714a","src/repository/state.rs":"040cca4a26463211aef85e4539d084969240f30d985c1bd3ae9bb3cd01009d1d","src/repository/submodule.rs":"a44ebd1132a898bbd8454628888bb8ce41611066ca8d78004242fcc522aac27c","src/repository/thread_safe.rs":"40e455ea3b5637da6e2acae4f5d13c4b8e8a25b8944a4c2870243e31f7f13632","src/repository/worktree.rs":"1a7eaf3eb18d55018fd5a3a04b9faa8db96d05aa9debf553cd15ea1ad4e9e928","src/revision/mod.rs":"d3c83f7ae1ac71a18f79cb73a95997432936b11b94f2ad6a2fe6b3fc23554f96","src/revision/spec/mod.rs":"aa1516ed667a49bfa0db55fdea0bfbcc3227411be105496f0867bd7efb5d5dda","src/revision/spec/parse/delegate/mod.rs":"8ee9c646a16c8f46551c03f1bdf450a71fda79ce691dfcd0e1b56631a3fa3d9a","src/revision/spec/parse/delegate/navigate.rs":"2d720500c83e9b80ff1e33e8ad3faf59502116a9e29ee44385510c9a6c8114c8","src/revision/spec/parse/delegate/revision.rs":"b3ee71f7ec701a202c8e1b9fcc6a9397a8dfb251f195fa218429e630b0280ab4","src/revision/spec/parse/error.rs":"48c0c2e7dcffe80aac5563094787e0502c4275619fc35467a2687499bbad0fef","src/revision/spec/parse/mod.rs":"5f16d2141f7e5959b0a83b4f4035ceaadbaef6b7f563bc05d45257fcec9d340e","src/revision/spec/parse/types.rs":"8876e1b5caf323d4c671f31fc06c07043df10592cecec6dcd62714826ba09bfe","src/revision/walk.rs":"aa84696ba6ea7a293e834121ae2e6b79428b637333d2f7673083adbd1a18c522","src/shallow.rs":"4296fb5298ef71eb1d78aae21d11bfb129a4f5a5f3cf43bf6d5256fec40f8dc3","src/state.rs":"1e3c5e1df4016e8b3e60028def84b0f706c4fcffaba11b1152d9240e144f21e8","src/submodule/errors.rs":"996617b2e707f903de4316e775b8bac03a925959c2c70278aa84f56fa68a9fb0","src/submodule/mod.rs":"00c860ed710f4eab48dfdf54b640750f24721be89fda168cfc1c529492901f9c","src/tag.rs":"f60043aaa7afb54652ab6cf64765ebd61607f19a83dd5960abf8077d2cb91d44","src/types.rs":"daa1706f19f9b257de8d875b73553561da107429e0988f610972354d1d8a85e3","src/worktree/mod.rs":"2053c334a780377e12679a363df6441605f5ca1893237304490cb69b8d7068ca","src/worktree/proxy.rs":"07ff3cfc6a8f326fb7d62f6762f682498e9e5f131ece935acfd26b5223a338f1"},"package":"ad6d32e74454459690d57d18ea4ebec1629936e6b130b51d12cb4a81630ac953"} \ No newline at end of file +{"files":{"CHANGELOG.md":"d7458903f64e1f690bc0e45ecc850476dafe90ff0618e92db40ed38c865070fd","Cargo.lock":"a680b27e388f17f6d528775fbddde500223fa88744892913394b693762e92710","Cargo.toml":"52ccf36b026646ed3d9763311a33138b1f38c80b1445323fb765df7d83cf2b78","LICENSE-APACHE":"cb4780590812826851ba250f90bed0ed19506ec98f6865a0e2e20bbf62391ff9","LICENSE-MIT":"49df47913ab2beafe8dc45607877ae64198bf0eee64aaad3e82ed9e4d27424e8","src/assets/init/HEAD":"28d25bf82af4c0e2b72f50959b2beb859e3e60b9630a5e8c603dad4ddb2b6e80","src/assets/init/description":"47aad2f8621afc777c66085c31f5ed14656df9bcfa5a2ae445680f175d0d2d0c","src/assets/init/hooks/applypatch-msg.sample":"1ae81b995a5c8c54582e1977084babed1e947a5a5c247ad29563142e432955ab","src/assets/init/hooks/commit-msg.sample":"b1451a4c89ee4406ba56f003a7e3d142e24a7452861fddddc23bfc77163c8650","src/assets/init/hooks/docs.url":"4424200fb80650f5063a3ec0a3864af4aaa3103f1319fe576b64d3bfc74f8a67","src/assets/init/hooks/fsmonitor-watchman.sample":"99ed87d785ada3687b4d86b8d9aa562f3430ce7061834e5381166b6a35a0d495","src/assets/init/hooks/post-update.sample":"e6d88132de729f20c45f66c2df51cc2e223a4b8b1512a2ce1cfdd0033ee53e53","src/assets/init/hooks/pre-applypatch.sample":"4c9754cac1c73109e4113ffd76070ae528a42667a85135e87fb826d572d13a4c","src/assets/init/hooks/pre-commit.sample":"1dd0fb2a11956784eb184e72af2fd87feca9050903400f163b90d4db7f19ce78","src/assets/init/hooks/pre-merge-commit.sample":"fca192309544e8e23638bd0987be7a5d00e271599b55382c1c6a4812070da223","src/assets/init/hooks/pre-push.sample":"0e6762e0b35b2475849d11c71d504cfae10cab2be0b947d7caa1e0d5959f2cec","src/assets/init/hooks/pre-rebase.sample":"d7c629ddbaa5f984d21c97a14889599d2019230220d3459aa103648316500968","src/assets/init/hooks/prepare-commit-msg.sample":"f804b4efd22ef832b49506a815a6a6b1103b8f77b6d6556fc3756232727396d8","src/assets/init/info/exclude":"df4c844761dc873ca9ea2f6fabcc2e2460b2f804ca65f8470e39ffbda7c3446e","src/attribute_stack.rs":"835abb1ed1477b26d6e57eb25b418096ad09b3c2d4781bc5f21bf72741846a42","src/clone/access.rs":"285795cc8f32a66cfb7a98ad7458dad29415ef8331eff995ca0b87a63aa39410","src/clone/checkout.rs":"bfb9f26cb9e471e0af0cdcd417a87bbbf28f4f7cabe3443480be5471f35c0be1","src/clone/fetch/mod.rs":"155a0ef9d742ee32325a60c613590bfe8dbb6ec393a2c84b272569d50904a921","src/clone/fetch/util.rs":"7a630bb12215431b5f9ea2f54b14819cc8611b6a78b60a08dce76f4112ca6262","src/clone/mod.rs":"f4238d146b6cd29bbb12c77f08efc25efd33f50eb4834daecead2176154fab79","src/commit.rs":"3cf4f1f485c025982e9bb398c48d356af321d9fd8775de7c1a911de1052a1ece","src/config/cache/access.rs":"9284a3cfa5e95c843f37f813129e269bf6515dc02c6ee1cce69da213a9144bc1","src/config/cache/incubate.rs":"75a949861c7c2d11eec84dea92c80059b68a6ebedaf399690305544836e0a7d3","src/config/cache/init.rs":"37fee4c9c661a37d2186940b832c2a067cfcaa2ea9ebc185ce8fb4bbb6ec72f5","src/config/cache/mod.rs":"3cce2cf0fafbc4f828870b85fef411a826ad6d1fe3ac5b6cbd2f5e049331aebf","src/config/cache/util.rs":"6dbd15b84e47d3d32c6535d1b9f6a9ad73171137411d5a8bb764c5d1f60b005e","src/config/mod.rs":"7895c0860c3b84faaf5df05a2cf06065fc2ade4b0e01e1322040713b559d8d67","src/config/overrides.rs":"ca3b08e3ab4d292c904ef3a0746e937c4e90440ae19389b03321c5645177e39e","src/config/snapshot/_impls.rs":"edae9b731c69828effbdfe01d32b7caa8c536df81d33de1cb67b88ece01a7218","src/config/snapshot/access.rs":"c08dfa7bb0c969913efb6e08692203c5bed7ef2502053a89f6181846aec5918a","src/config/snapshot/credential_helpers.rs":"cd269ffb60aab86a752839294b3514b31bd59de5b4ae941f25111dfba25aad33","src/config/snapshot/mod.rs":"21f6eaeb511e470df6f3d8948dfd65b688741b39d534fbaf78e3ee620bc6a5c5","src/config/tree/keys.rs":"604c522d4b456d162a33adfef52ec0ef35dd83b0ab86a6a9bdcedb0c5de7e46a","src/config/tree/mod.rs":"be9654a1c844b8444c2f5d0003937fbc06bae7f934073eb206e0541df3b81425","src/config/tree/sections/author.rs":"a27cf6ad5150aa5ccbd64d2786183983e1567c094a221b016875864c9e8f6980","src/config/tree/sections/branch.rs":"105211bb0eefbdc718923d5e770261889163a5d61dc8f0c22af33473cfb32100","src/config/tree/sections/checkout.rs":"329ebe10cca7c5414f9e6229d6dce3178cdb5821a1b7e72bbfac3a60b5b42dc2","src/config/tree/sections/clone.rs":"bbc86890044721ac34ae7610b14987035ab8714c856cec2787fae49c286a6d6d","src/config/tree/sections/committer.rs":"2f99b8bc6e2c4ad9bdba3a85bc6b717acb5b09d1ada2723d3ba5954f804368eb","src/config/tree/sections/core.rs":"48ffa3a7c71706287a85ad2867b97f04983069bc274c22d02c309294376ca112","src/config/tree/sections/credential.rs":"e1ce72dc24b9d2f06827b9fc6e8c963f888844ab5a4b48f6d867ad8542909b94","src/config/tree/sections/diff.rs":"9c577772d544d9c9c0d06485955aecab0c64d8e1a0117e71a33f75dd281baa83","src/config/tree/sections/extensions.rs":"f73c444f2e2c8fbc8d1b1991c0d63532c792362e42833f3ae06059c07387cf66","src/config/tree/sections/fetch.rs":"437a6a13df2e1da4a06e9a28d9da020eccab395f13150d398e94bf4cd3e690f8","src/config/tree/sections/gitoxide.rs":"a483361a58e3221bbaf64847cfe70698fc4a73d24ce80875e4970af889fbf5b7","src/config/tree/sections/http.rs":"58c9a9b8abcee4066eb4e20f9679dbbf888c04c21f4dbfff0d2ad7f0a18d4fcd","src/config/tree/sections/index.rs":"30166326b339c9d0b171ebfd1c1f0fb90e38dc8b2edcd66dfead2a87c38eb938","src/config/tree/sections/init.rs":"e87e33ac5091797bde302f78c8fb7cefce0fb1752610409c1db53c3f7b4179af","src/config/tree/sections/mod.rs":"31f480fde038af3532667fb3ff511b6b978de262fa6cef4e19e1e64655060bc8","src/config/tree/sections/pack.rs":"0a6dcdc7603b0d7a84159a70789b63b6c26d539f98808c520a8e644fc9dbd2f3","src/config/tree/sections/protocol.rs":"feae4977f6576adb446d0599f018d41421a7b1b0871a74e8fcfe5e2b7104de74","src/config/tree/sections/remote.rs":"eb06d89125dc72b5754b642cf561e6e430cad4fbbd57dcd1049d306291afc41f","src/config/tree/sections/safe.rs":"4e96f49ff56d6ebb8944406fe2ae3c4a1fa80c5383f08935015ddc6036b583c3","src/config/tree/sections/ssh.rs":"7db83236912bcb7aa1770f0eb1a388ee0fac94c1548bd9a19051b34c25622841","src/config/tree/sections/url.rs":"e342edcd20979feaf54663a919a0751aaf32b4e1f2e47cf5d028faec62e6b731","src/config/tree/sections/user.rs":"8f02172a5db830832b4edf28693fdef33cece6ba1990c4d7a338e4c9291375ab","src/config/tree/traits.rs":"524f1752e9131c27db3a9016ee6c3abc61175345c2167426ffd5a41602cb950d","src/create.rs":"7da6fbdf8c18a32ad4ab9cea8a062fb8aadb08d8478c9d1c3de09c7e6e4448fe","src/diff.rs":"52bc752a2a8decff56b7a41d1ae97b90c0f3422332f999ced67fc884d6b25d18","src/discover.rs":"41631f880b7880f62d77bfb0511f4d85a82a574ca5f53b8cb8fe35edd5b886f6","src/env.rs":"57da96b315b6fe057a326639cd3e85849793449c4c8f3477b79a032b1a029b31","src/ext/mod.rs":"cc6a4c10c2eb53eb261e0186ee51411dada06bbb245c205356fce1de9d4628f5","src/ext/object_id.rs":"a70afd79c84731df0023d738332b3688a2adbcbdda802f8ee70297fc8fe0ca38","src/ext/reference.rs":"a51fe4f63e5708afa4fbabd13638b88c34845a64263db77308cd1b974a0f325f","src/ext/rev_spec.rs":"c196f21a3981b7ad84e9385ba3924a554accf9c7a3b4f8e2bba13cb74f108ec8","src/ext/tree.rs":"60753a38cfd6cbb43b794236de0258a5af40f0a88864dde9e1f7d6cdb8cbb04f","src/filter.rs":"484a6b55008eb4a1a337dffdde477ad6013dcaacb5383ab7791ef7d8f53a2b3d","src/head/log.rs":"0de9d5f834b633756001bdd246e98266084d521d7f775537e6e6ead5ed93d7e4","src/head/mod.rs":"5be9b17e6ffb5dd4c9548b8a4d9e25d6ab6600450762293c43ca0bcbd2a6284f","src/head/peel.rs":"ee6a605878d5146e388417db7dce963b70a6ccfd2659bb0f6a14c7291b042537","src/id.rs":"1f5f97d24d8c00460d085e2815c08b89632ae1e3cde283a4362798cc4b1276ea","src/init.rs":"ac6f329feb2d33cd8a5f0ce21bb77a166e18656a9952d4cba147196242558c9a","src/interrupt.rs":"217d8611ebe2932e7cb52f77a90cec4a6dbe0bd69eb16b951a70fbd8b5e95853","src/lib.rs":"ae780106efabe63365db85d404dc289c52b9006283d4706e135e6d772a1419e8","src/mailmap.rs":"415301bdcb3d6991675c7ea86a92eea152cf65df7b2d14da4b58b3b605039e4e","src/object/blob.rs":"6afd58e1ac97490e22e46abc948f08a3843df53fd0fe7480426d9961beba199e","src/object/commit.rs":"d61d8de2c8ae76afab284e38a18b33a9c3ca1ae872a1cfc37aea59d7286702be","src/object/errors.rs":"b2b456480e10dc4cdd213650dacb619d96bd9770e19d6042a80621991acd5255","src/object/impls.rs":"16467413024515d6805b1f0d47ed568d19f70a317b3fb806023028a31357bbbd","src/object/mod.rs":"e436e50c2b4d24e24215481213951404f73d2726499b4ef650c75d147654efec","src/object/peel.rs":"c23ac9baac1216d9320c71926f56548d18f7f3964bdbcccd8ca81f6b756f7ad9","src/object/tag.rs":"ab212a0d5d82e787000fbac1aa3769b97b01a0df8b851f31c7d5c8534fe2191a","src/object/tree/diff/change.rs":"95df7e1fb3b58fa2a0086f205c39940fb590ccdac92aee53a6cff5f29181f30c","src/object/tree/diff/for_each.rs":"da534722f9dbfdf26e66dc564de0c7e694e92cf54f33e29f3364ed056cea8c78","src/object/tree/diff/mod.rs":"672ef727e70da7a6f214e59ea45b16833c68c5b57a95fe7e71c89aac054eaaf4","src/object/tree/diff/rewrites.rs":"d91983f629bf3f0256da17d0067daf8271503345423f725d3a23fb5a40eac4d2","src/object/tree/diff/tracked.rs":"4b8226a3722b08e41b00c800efc81ee611f801cf42606203c26d568f2d6d16fa","src/object/tree/iter.rs":"cf3ae9dfd5018b55228ccc0b4b707b39a3fa2c5d2b130e209da5dcf9080e10ca","src/object/tree/mod.rs":"151d4e50a054aa0dbeecb1e084aac5a1f6f35044a4edda1289e9ee4ed5fb0bba","src/object/tree/traverse.rs":"ae0342857d42b6afb82167423dfdac9611ce1b7281b6b9b542e230960c564c0f","src/open/mod.rs":"d25c11246536e7d57172b375569bd8545b8060f13bbfbc49cbf0f85636627076","src/open/options.rs":"1ffda0517724d1328b2fb296a782d89305a482be65ed24a1d9d867bead8eb5a5","src/open/permissions.rs":"5a55970e738ba7a9af7b51cdeb03955af533b3306baaef278b398cf99f8a312b","src/open/repository.rs":"ae4100ee1dd30890d961dc12a57dcf03dee1ffa9a99c54a6704dde5493416764","src/path.rs":"3cd4c92a626384f8f4db89b2f7594923b922d7b841681c167748a01abc7dc3f7","src/pathspec.rs":"bddfa7360ee13ac72a97fa0e1388c9605518da3fc96fd35e76e245f25b73b813","src/prelude.rs":"8dc6fa25bb01fbc1e012364949982e406b17ab22bde464e154f12286fba293cf","src/progress.rs":"a9ba8ec6cc21eea78121b02d1feaba8f6aab04be441bfe8be9f3dffe4c5e0ba5","src/reference/edits.rs":"5d857cd65d7415d4de5aed1ea8acc9c227000a71b2e202293546cd23be1f62b2","src/reference/errors.rs":"1ac9e6e902ee561b0c6ad08ebf110216a34405948200a9aff177ebe0395a23a4","src/reference/iter.rs":"1feb3aaed665b39780136f0d703f67f4b34f6239e90cd2a0c632aad40523e025","src/reference/log.rs":"f1eab69b8272b15bd23beeb68e88a8b53f003f74d86783196b2de4a84f0497fd","src/reference/mod.rs":"29610488dc03b6a98cbdfb06e1c29b80d2d2ade9f4e555f4acaf4b5948688e19","src/reference/remote.rs":"4467c1bf9d463d1781a3254a3874c7fc763201e33d51e1a92a6f0dcbc6776135","src/remote/access.rs":"76e75baca0155710c2eea0e439df0774ecb0cd6c7e6b950876dd9e6e75be5e9f","src/remote/build.rs":"0bfcf98ee6b96c401a410c71b749426e84a78c17eff944ea7d6229ef2dc3e5e8","src/remote/connect.rs":"a147cf33f7ac1413e07d7b5aae0c6a557ee9b29f9172e7ea2413446d670ac71b","src/remote/connection/access.rs":"075f04705680959074cf3db6856bf34180d68d1a3065011ca56b67a861e2b168","src/remote/connection/fetch/config.rs":"93b1392fdc409dba073e96272f13ad7ab996522d59df819edc800431ee36975b","src/remote/connection/fetch/error.rs":"21ccf5ff0cba287247581849c510aa3dd1acdd510cfbb858a579dd85b2c7b050","src/remote/connection/fetch/mod.rs":"c88b8b968debe3192ecc6a5e46a1587f590b1ae45b76df4c13d8a64df956860c","src/remote/connection/fetch/negotiate.rs":"7258ddb2d5adf92f5041709bda16f1d19313ec867717ed270c6a191fdc92b3b9","src/remote/connection/fetch/receive_pack.rs":"d3d4809a7e4ae52868d5975c5de8d16e1218f662ee83e35498291ee582accdc9","src/remote/connection/fetch/update_refs/mod.rs":"f28b33d42f0992b3e91b7eba3672d6fe4d41811f8ea170e9bf11fac688c6e882","src/remote/connection/fetch/update_refs/tests.rs":"69a25df4dc1f84b5a7cb603e2451114cf0a7e356c026317995f3d14bfd07a345","src/remote/connection/fetch/update_refs/update.rs":"729ae1cfef895df37ae5a34c19d9aac9b77e664f107f3adf81a79ae58412e960","src/remote/connection/mod.rs":"863f4a7f2476f5b5d8622959d5069424decea29ba7f66619f679344e6fb5a5d1","src/remote/connection/ref_map.rs":"35913d6c4d8976025ff880ac71bd8e5af0b73fd83e6ca53be1ec275b6dc009e4","src/remote/errors.rs":"6c4986618c55c2a86e4623b02837918dc61849c3d634e7d474a123eb7e01bcbc","src/remote/fetch.rs":"cf78b682074ad700ea6eb4d511401a737a905bd4af0dcfd639b7f850227f5978","src/remote/init.rs":"87576486ae399945b2134dbce70e960ff4c2b3a3046988449f6da0c25f6d646c","src/remote/mod.rs":"14a1532470cc76cf3b727657439923f3515dd781ebfc7030d9481056c6bbf162","src/remote/name.rs":"9fa7e81a157375ecb40ddfba5da850fef7513296a68014a50f5148d57f40b8b7","src/remote/save.rs":"a8b2160cde235c9a2ecddc0181d1cca57a01e046eae8d3b11fa7b29e43ca6866","src/remote/url/mod.rs":"a3279f5330fc83193e583f2b839ab08006c293b0040db6cc74969d50813fbbaa","src/remote/url/rewrite.rs":"4d43167909020458abc5e3e7310e3efaddb9fc7c783581fbc9422fa8b057d95d","src/remote/url/scheme_permission.rs":"4f6e528260c67af54171477d97707050f048c0c35e77f088f8ddc4ae135e6386","src/repository/attributes.rs":"6c28910869eafda6c4c9d6a2b06a2a881f2d5fcf6f5c084ac501850ced2af810","src/repository/cache.rs":"daa9e03d59475b99d3e5c736a66f8b2f82035566906e900502195cf93adc3e1b","src/repository/config/mod.rs":"b6d7d9b3fb86f0e76cc585efb110aec0bdee4b82c8bdbe6a3bb67d65ffd31de9","src/repository/config/transport.rs":"78683c40947e95d9835809d6b9adc89bbce4e8a06345279c56554b2a76dc4e7c","src/repository/filter.rs":"cc65692a78e3cc28166f595d3bf05c0d3f12757fc8d320512638f6edb724c209","src/repository/graph.rs":"07763932b3215ac25e3981a60ab0750449af992475da7fd47bb0412cdf0fc727","src/repository/identity.rs":"0d7c575578eef869d16d99ce465696f41b1c7e8d2bdba93945219d7453b3d717","src/repository/impls.rs":"b07dd79074b3a175df1ec43042c6cd0ad98b884885e25deae6828a59cc290e2a","src/repository/index.rs":"92902245189577362acd6e0f2ef58d9b55def7dfa4ad4409759ca020ddd889ca","src/repository/init.rs":"f72f56ff1ebb225d043a088c922adb24495d4031d4de2edf6a144156f1f6305e","src/repository/kind.rs":"a32375689f9de7c74d29079caa2f025db8a4b13a3dc31a587039548343b23ade","src/repository/location.rs":"542c6db1c9781de566a6996c4211ddcb748d5c48ce3a49004c638fa6a461bc12","src/repository/mailmap.rs":"3ca35665ac2d2c6f100826169822750e1b6647b1f284206f408126e749718030","src/repository/mod.rs":"2154ccecc6167644cd02b88906597d735632a8ed8c5f60dfac5934a7dc7198ea","src/repository/object.rs":"76dd9b13d79e3ebef592410285681d85ea0c91ad295fe724dafb5617b7045491","src/repository/pathspec.rs":"6da21d9a2f75ace735cc96aa6dd709bf323f2c5fc05daa40dfc3d393b2485187","src/repository/permissions.rs":"9f7f41fd250d043cea7ee6ff0cdc315838dbb6226bde3dca2a7666f01d648090","src/repository/reference.rs":"51a794c69e54bbf441ad27a98289167c338c37107c680e6e57042acc33647e3b","src/repository/remote.rs":"4ecc9021f3369d9530a130fe2dbe3c98dc50b593a5194c8584293808fc2bc4a4","src/repository/revision.rs":"c2d50c2bed8b465e5e2f24483d5cc54791fa68c6f558feea5871dfdcc7f6c4ec","src/repository/shallow.rs":"ce0b3358ed0ccca6ac52a985555793013f7c2d5de83291cd9810181ac22e714a","src/repository/state.rs":"040cca4a26463211aef85e4539d084969240f30d985c1bd3ae9bb3cd01009d1d","src/repository/submodule.rs":"a44ebd1132a898bbd8454628888bb8ce41611066ca8d78004242fcc522aac27c","src/repository/thread_safe.rs":"40e455ea3b5637da6e2acae4f5d13c4b8e8a25b8944a4c2870243e31f7f13632","src/repository/worktree.rs":"1a7eaf3eb18d55018fd5a3a04b9faa8db96d05aa9debf553cd15ea1ad4e9e928","src/revision/mod.rs":"d3c83f7ae1ac71a18f79cb73a95997432936b11b94f2ad6a2fe6b3fc23554f96","src/revision/spec/mod.rs":"aa1516ed667a49bfa0db55fdea0bfbcc3227411be105496f0867bd7efb5d5dda","src/revision/spec/parse/delegate/mod.rs":"8ee9c646a16c8f46551c03f1bdf450a71fda79ce691dfcd0e1b56631a3fa3d9a","src/revision/spec/parse/delegate/navigate.rs":"2d720500c83e9b80ff1e33e8ad3faf59502116a9e29ee44385510c9a6c8114c8","src/revision/spec/parse/delegate/revision.rs":"b3ee71f7ec701a202c8e1b9fcc6a9397a8dfb251f195fa218429e630b0280ab4","src/revision/spec/parse/error.rs":"48c0c2e7dcffe80aac5563094787e0502c4275619fc35467a2687499bbad0fef","src/revision/spec/parse/mod.rs":"5f16d2141f7e5959b0a83b4f4035ceaadbaef6b7f563bc05d45257fcec9d340e","src/revision/spec/parse/types.rs":"8876e1b5caf323d4c671f31fc06c07043df10592cecec6dcd62714826ba09bfe","src/revision/walk.rs":"aa84696ba6ea7a293e834121ae2e6b79428b637333d2f7673083adbd1a18c522","src/shallow.rs":"4296fb5298ef71eb1d78aae21d11bfb129a4f5a5f3cf43bf6d5256fec40f8dc3","src/state.rs":"1e3c5e1df4016e8b3e60028def84b0f706c4fcffaba11b1152d9240e144f21e8","src/submodule/errors.rs":"996617b2e707f903de4316e775b8bac03a925959c2c70278aa84f56fa68a9fb0","src/submodule/mod.rs":"00c860ed710f4eab48dfdf54b640750f24721be89fda168cfc1c529492901f9c","src/tag.rs":"f60043aaa7afb54652ab6cf64765ebd61607f19a83dd5960abf8077d2cb91d44","src/types.rs":"285a14e8447c1b646c690cdb1b8430463adb4d4a236370447c81f26cad2e7887","src/worktree/mod.rs":"2053c334a780377e12679a363df6441605f5ca1893237304490cb69b8d7068ca","src/worktree/proxy.rs":"07ff3cfc6a8f326fb7d62f6762f682498e9e5f131ece935acfd26b5223a338f1"},"package":"002667cd1ebb789313d0d0afe3d23b2821cf3b0e91605095f0e6d8751f0ceeea"} \ No newline at end of file diff --git a/vendor/gix/CHANGELOG.md b/vendor/gix/CHANGELOG.md index eec514b03..5aea6d751 100644 --- a/vendor/gix/CHANGELOG.md +++ b/vendor/gix/CHANGELOG.md @@ -5,6 +5,141 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## 0.55.2 (2023-10-13) + +### Bug Fixes + + - bump `gix-transport` version to prevent it from being picked up. + `gix-transport` v0.37.1 could accidentally be picked up by older, incompatible, + `gix` versions which now fail to build. + + Thus v0.37.1 is now yanked and replaced with v0.38.0 along with a new + release of `gix` to go with it. + +### Commit Statistics + + + + - 2 commits contributed to the release. + - 1 commit was understood as [conventional](https://www.conventionalcommits.org). + - 0 issues like '(#ID)' were seen in commit messages + +### Commit Details + + + +
view details + + * **Uncategorized** + - Prepare changelogs prior to release ([`12b5caf`](https://github.com/Byron/gitoxide/commit/12b5cafc49baf07d00313de468970a2db33ac1f8)) + - Bump `gix-transport` version to prevent it from being picked up. ([`8011c73`](https://github.com/Byron/gitoxide/commit/8011c73ee401bfca03811a249c46a4dd468af1b8)) +
+ +## 0.55.1 (2023-10-12) + +### New Features + + - Add `take_data()` to all primitive object types. + That is the new, most direct way to obtain its data which otherwise + is immovable. + - Add `detach()` and `detached()` too all object types. + That way, the detachment API is symmetric. + It's required to overcome the `Drop` implementation of each of these types + which prevents moving data out of the object (easily). + +### Commit Statistics + + + + - 3 commits contributed to the release. + - 2 commits were understood as [conventional](https://www.conventionalcommits.org). + - 0 issues like '(#ID)' were seen in commit messages + +### Commit Details + + + +
view details + + * **Uncategorized** + - Release gix v0.55.1 ([`4642c0c`](https://github.com/Byron/gitoxide/commit/4642c0c78f45b1956837bc874f6757fc302bee4a)) + - Add `take_data()` to all primitive object types. ([`5732303`](https://github.com/Byron/gitoxide/commit/5732303180d26374016b70bdd7fa0278dd84cff3)) + - Add `detach()` and `detached()` too all object types. ([`88f2e6c`](https://github.com/Byron/gitoxide/commit/88f2e6c4c540b9c8032e6eee9c5da65a9bcfeef8)) +
+ +## 0.55.0 (2023-10-12) + + + +This release contains a complete rewrite of the internal url parsing logic, the public interface stays mostly the same however. Gitoxide will now be +more correct, interpreting more urls the same way Git does. Improvements include the added support for ssh aliases (`github:byron/gitoxide` has previously +been parsed as local path), adjustments around the interpretation of colons in file names (previously we disallowed colons that were not followed up +with a slash character) and some smaller changes that bring the interpretation of file urls more in line with Git's implementation. Additionally, the +error types have been adjusted to print a more comprehensive message by default, making sure they stay helpful even when bubbled up through multiple abstraction +layers. + +There are still many (edge) cases in Git's url parsing implementation which are not handled correctly by Gitoxide. If you notice any such deviation please +open a new issue to help us making Gitoxide even more correct. + +### Other + + - inform about the absence of strict hash verification and strict object creation. + Those are present in `git2` and enabled by default, and `gitoxde` definitely + wants to do the same at some point. + +### New Features + + - add `Repository::head_tree()` to more easily obtain the current tree. + - Add `Repository::has_object()` as a high-level alternative. + Previously, one would have to call `repo.objects.contains()`, which + is fine, but this method is necessary for symmetry of the API + and one shouldn't have to drop down a level to do this. + + This method also knows empty trees as special case. + - add `Object::try_into_blob()` and `into_blob()` and `Repository::empty_blob()` + This way it's easier to assert that an object is actually a blob. + - add `Repository::index_or_empty()`. + This is useful if a missing index should mean it's empty. + +### Commit Statistics + + + + - 15 commits contributed to the release over the course of 16 calendar days. + - 17 days passed between releases. + - 5 commits were understood as [conventional](https://www.conventionalcommits.org). + - 0 issues like '(#ID)' were seen in commit messages + +### Thanks Clippy + + + +[Clippy](https://github.com/rust-lang/rust-clippy) helped 1 time to make code idiomatic. + +### Commit Details + + + +
view details + + * **Uncategorized** + - Release gix-transport v0.37.1, gix-protocol v0.41.0, gix-revision v0.23.0, gix-refspec v0.19.0, gix-worktree v0.27.0, gix-status v0.2.0, gix-submodule v0.5.0, gix-worktree-state v0.4.0, gix v0.55.0 ([`14ddbd4`](https://github.com/Byron/gitoxide/commit/14ddbd4c15128b1d5631a2388a00e024842b7b83)) + - Release gix-hash v0.13.1, gix-features v0.36.0, gix-actor v0.28.0, gix-object v0.38.0, gix-glob v0.14.0, gix-attributes v0.20.0, gix-command v0.2.10, gix-filter v0.6.0, gix-fs v0.8.0, gix-commitgraph v0.22.0, gix-revwalk v0.9.0, gix-traverse v0.34.0, gix-worktree-stream v0.6.0, gix-archive v0.6.0, gix-tempfile v11.0.0, gix-lock v11.0.0, gix-ref v0.38.0, gix-config v0.31.0, gix-url v0.25.0, gix-credentials v0.21.0, gix-diff v0.37.0, gix-discover v0.26.0, gix-ignore v0.9.0, gix-index v0.26.0, gix-mailmap v0.20.0, gix-negotiate v0.9.0, gix-pack v0.44.0, gix-odb v0.54.0, gix-pathspec v0.4.0, gix-packetline v0.16.7, gix-transport v0.37.0, gix-protocol v0.41.0, gix-revision v0.23.0, gix-refspec v0.19.0, gix-worktree v0.27.0, gix-status v0.2.0, gix-submodule v0.5.0, gix-worktree-state v0.4.0, gix v0.55.0, safety bump 37 crates ([`68e5432`](https://github.com/Byron/gitoxide/commit/68e54326e527a55dd5b5079921fc251615833040)) + - Prepare changelogs prior to release ([`1347a54`](https://github.com/Byron/gitoxide/commit/1347a54f84599d8f0aa935d6e64b16c2298d25cf)) + - Merge branch 'improvements' ([`429e7b2`](https://github.com/Byron/gitoxide/commit/429e7b25f93c8a7947db19bafa74babf199a1aa6)) + - Inform about the absence of strict hash verification and strict object creation. ([`f478a37`](https://github.com/Byron/gitoxide/commit/f478a3722f0be35c109ea60b79cd4ac6e607480b)) + - Add `Repository::head_tree()` to more easily obtain the current tree. ([`c79a7da`](https://github.com/Byron/gitoxide/commit/c79a7daa30fe90d14d8e3387ec48116b37faf460)) + - Add `Repository::has_object()` as a high-level alternative. ([`787a9aa`](https://github.com/Byron/gitoxide/commit/787a9aa91c1abaa7572f5d19f8a2acbb7ecc0732)) + - Add `Object::try_into_blob()` and `into_blob()` and `Repository::empty_blob()` ([`3cec935`](https://github.com/Byron/gitoxide/commit/3cec935e692eeb33ffcac98988e34a390f755bf3)) + - Thanks clippy ([`345712d`](https://github.com/Byron/gitoxide/commit/345712dcdfddcccc630bbfef2ed4f461b21550d3)) + - Merge branch 'reset' ([`b842691`](https://github.com/Byron/gitoxide/commit/b8426919a491dc3a7df01ee3f258fc0d8a3a327c)) + - Trust Ctime again ([`f929d42`](https://github.com/Byron/gitoxide/commit/f929d420cb768f2df1d7886564ca03b3c3254a82)) + - Add `Repository::index_or_empty()`. ([`7d9ecdd`](https://github.com/Byron/gitoxide/commit/7d9ecdd1c230204468a965f703d5efd00fa7fb79)) + - Adapt to changes in `gix-status` ([`54fb7c2`](https://github.com/Byron/gitoxide/commit/54fb7c24a97cb2339a67ad269344ce65166a545d)) + - Merge branch 'gix-url-parse-rewrite' ([`a12e4a8`](https://github.com/Byron/gitoxide/commit/a12e4a88d5f5636cd694c72ce45a8b75aa754d28)) + - Update changelogs ([`4349353`](https://github.com/Byron/gitoxide/commit/43493531bbf3049bee3d7b14b7a6dbe874e37ebc)) +
+ ## 0.54.1 (2023-09-25) ### Bug Fixes @@ -19,7 +154,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - - 1 commit contributed to the release. + - 2 commits contributed to the release. - 1 commit was understood as [conventional](https://www.conventionalcommits.org). - 0 issues like '(#ID)' were seen in commit messages @@ -30,6 +165,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
view details * **Uncategorized** + - Release gix v0.54.1 ([`f603fd7`](https://github.com/Byron/gitoxide/commit/f603fd7a68206a6989a9f959216eba6cca0a6733)) - Local refs created during fetching will now always be valid. ([`300a838`](https://github.com/Byron/gitoxide/commit/300a83821358f2a43649515606ebb84741e82780))
diff --git a/vendor/gix/Cargo.lock b/vendor/gix/Cargo.lock index 9f8f5a075..b87494c7e 100644 --- a/vendor/gix/Cargo.lock +++ b/vendor/gix/Cargo.lock @@ -289,12 +289,6 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "38fcc2979eff34a4b84e1cf9a1e3da42a7d44b3b690a40cdcb23e3d556cfb2e5" -[[package]] -name = "byteyarn" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7534301c0ea17abb4db06d75efc7b4b0fa360fce8e175a4330d721c71c942ff" - [[package]] name = "cc" version = "1.0.79" @@ -751,7 +745,7 @@ checksum = "b6c80984affa11d98d1b88b66ac8853f143217b399d3c74116778ff8fdb4ed2e" [[package]] name = "gix" -version = "0.54.1" +version = "0.55.2" dependencies = [ "anyhow", "async-std", @@ -818,9 +812,9 @@ dependencies = [ [[package]] name = "gix-actor" -version = "0.27.0" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08c60e982c5290897122d4e2622447f014a2dadd5a18cb73d50bb91b31645e27" +checksum = "948a5f9e43559d16faf583694f1c742eb401ce24ce8e6f2238caedea7486433c" dependencies = [ "bstr", "btoi", @@ -833,9 +827,9 @@ dependencies = [ [[package]] name = "gix-archive" -version = "0.5.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab71635f7fb38ad4cc7da7e98af79e3010e35b05de5cb6eb79b2da68ab93eac7" +checksum = "909f8417346ebae6a8ca4e947966541a30a1eaac0d67c816f735cba03f0ff09d" dependencies = [ "bstr", "gix-date", @@ -846,16 +840,16 @@ dependencies = [ [[package]] name = "gix-attributes" -version = "0.19.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2451665e70709ba4753b623ef97511ee98c4a73816b2c5b5df25678d607ed820" +checksum = "dca120f0c6562d2d7cae467f2466e576d9f7f189beec2af2e026145107c729e2" dependencies = [ "bstr", - "byteyarn", "gix-glob", "gix-path", "gix-quote", "gix-trace", + "kstring", "serde", "smallvec", "thiserror", @@ -882,18 +876,18 @@ dependencies = [ [[package]] name = "gix-command" -version = "0.2.9" +version = "0.2.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f28f654184b5f725c5737c7e4f466cbd8f0102ac352d5257eeab19647ee4256" +checksum = "3c576cfbf577f72c097b5f88aedea502cd62952bdc1fb3adcab4531d5525a4c7" dependencies = [ "bstr", ] [[package]] name = "gix-commitgraph" -version = "0.21.0" +version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e75a975ee22cf0a002bfe9b5d5cb3d2a88e263a8a178cd7509133cff10f4df8a" +checksum = "7e8bc78b1a6328fa6d8b3a53b6c73997af37fd6bfc1d6c49f149e63bda5cbb36" dependencies = [ "bstr", "gix-chunk", @@ -906,9 +900,9 @@ dependencies = [ [[package]] name = "gix-config" -version = "0.30.0" +version = "0.31.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c171514b40487d3f677ae37efc0f45ac980e3169f23c27eb30a70b47fdf88ab5" +checksum = "5cae98c6b4c66c09379bc35274b172587d6b0ac369a416c39128ad8c6454f9bb" dependencies = [ "bstr", "gix-config-value", @@ -940,9 +934,9 @@ dependencies = [ [[package]] name = "gix-credentials" -version = "0.20.0" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46900b884cc5af6a6c141ee741607c0c651a4e1d33614b8d888a1ba81cc0bc8a" +checksum = "1c5c5d74069b842a1861e581027ac6b7ad9ff66f5911c89b9f45484d7ebda6a4" dependencies = [ "bstr", "gix-command", @@ -970,9 +964,9 @@ dependencies = [ [[package]] name = "gix-diff" -version = "0.36.0" +version = "0.37.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "788ddb152c388206e81f36bcbb574e7ed7827c27d8fa62227b34edc333d8928c" +checksum = "931394f69fb8c9ed6afc0aae3487bd869e936339bcc13ed8884472af072e0554" dependencies = [ "gix-hash", "gix-object", @@ -982,9 +976,9 @@ dependencies = [ [[package]] name = "gix-discover" -version = "0.25.0" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69507643d75a0ea9a402fcf73ced517d2b95cc95385904ac09d03e0b952fde33" +checksum = "a45d5cf0321178883e38705ab2b098f625d609a7d4c391b33ac952eff2c490f2" dependencies = [ "bstr", "dunce", @@ -997,9 +991,9 @@ dependencies = [ [[package]] name = "gix-features" -version = "0.35.0" +version = "0.36.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b9ff423ae4983f762659040d13dd7a5defbd54b6a04ac3cc7347741cec828cd" +checksum = "51f4365ba17c4f218d7fd9ec102b8d2d3cb0ca200a835e81151ace7778aec827" dependencies = [ "bytes", "bytesize", @@ -1021,9 +1015,9 @@ dependencies = [ [[package]] name = "gix-filter" -version = "0.5.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1be40d28cd41445bb6cd52c4d847d915900e5466f7433eaee6a9e0a3d1d88b08" +checksum = "92f674d3fdb6b1987b04521ec9a5b7be8650671f2c4bbd17c3c81e2a364242ff" dependencies = [ "bstr", "encoding_rs", @@ -1041,18 +1035,18 @@ dependencies = [ [[package]] name = "gix-fs" -version = "0.7.0" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09815faba62fe9b32d918b75a554686c98e43f7d48c43a80df58eb718e5c6635" +checksum = "8cd171c0cae97cd0dc57e7b4601cb1ebf596450e263ef3c02be9107272c877bd" dependencies = [ "gix-features", ] [[package]] name = "gix-glob" -version = "0.13.0" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9d76e85f11251dcf751d2c5e918a14f562db5be6f727fd24775245653e9b19d" +checksum = "8fac08925dbc14d414bd02eb45ffb4cecd912d1fce3883f867bd0103c192d3e4" dependencies = [ "bitflags 2.3.3", "bstr", @@ -1063,9 +1057,9 @@ dependencies = [ [[package]] name = "gix-hash" -version = "0.13.0" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ccf425543779cddaa4a7c62aba3fa9d90ea135b160be0a72dd93c063121ad4a" +checksum = "1884c7b41ea0875217c1be9ce91322f90bde433e91d374d0e1276073a51ccc60" dependencies = [ "faster-hex", "serde", @@ -1085,9 +1079,9 @@ dependencies = [ [[package]] name = "gix-ignore" -version = "0.8.0" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b048f443a1f6b02da4205c34d2e287e3fd45d75e8e2f06cfb216630ea9bff5e3" +checksum = "1e73c07763a8005ae02cb5cf83040729cea9bb70c7cef68ec6c24159904c499a" dependencies = [ "bstr", "gix-glob", @@ -1098,9 +1092,9 @@ dependencies = [ [[package]] name = "gix-index" -version = "0.25.0" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f54d63a9d13c13088f41f5a3accbec284e492ac8f4f707fcc307c139622e17b7" +checksum = "c83a4fcc121b2f2e109088f677f89f85e7a8ebf39e8e6659c0ae54d4283b1650" dependencies = [ "bitflags 2.3.3", "bstr", @@ -1122,9 +1116,9 @@ dependencies = [ [[package]] name = "gix-lock" -version = "10.0.0" +version = "11.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47fc96fa8b6b6d33555021907c81eb3b27635daecf6e630630bdad44f8feaa95" +checksum = "f4feb1dcd304fe384ddc22edba9dd56a42b0800032de6537728cea2f033a4f37" dependencies = [ "gix-tempfile", "gix-utils", @@ -1144,9 +1138,9 @@ dependencies = [ [[package]] name = "gix-mailmap" -version = "0.19.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40f00fa96e29e066ef208f5d13e0f5f95fa70c3ae4bd4f0234272ed4d708a7db" +checksum = "496141bc97ca2074401dfd3049a958554ab5a80c7f00a9dcfb41d29a7396f9e2" dependencies = [ "bstr", "gix-actor", @@ -1157,9 +1151,9 @@ dependencies = [ [[package]] name = "gix-negotiate" -version = "0.8.0" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f1697bf9911c6d1b8d709b9e6ef718cb5ea5821a1b7991520125a8134448004" +checksum = "2a5cdcf491ecc9ce39dcc227216c540355fe0024ae7c38e94557752ca5ebb67f" dependencies = [ "bitflags 2.3.3", "gix-commitgraph", @@ -1173,9 +1167,9 @@ dependencies = [ [[package]] name = "gix-object" -version = "0.37.0" +version = "0.38.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e7e19616c67967374137bae83e950e9b518a9ea8a605069bd6716ada357fd6f" +checksum = "740f2a44267f58770a1cb3a3d01d14e67b089c7136c48d4bddbb3cfd2bf86a51" dependencies = [ "bstr", "btoi", @@ -1193,9 +1187,9 @@ dependencies = [ [[package]] name = "gix-odb" -version = "0.53.0" +version = "0.54.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d6a392c6ba3a2f133cdc63120e9bc7aec81eef763db372c817de31febfe64bf" +checksum = "8630b56cb80d8fa684d383dad006a66401ee8314e12fbf0e566ddad8c115143b" dependencies = [ "arc-swap", "gix-date", @@ -1213,9 +1207,9 @@ dependencies = [ [[package]] name = "gix-pack" -version = "0.43.0" +version = "0.44.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7536203a45b31e1bc5694bbf90ba8da1b736c77040dd6a520db369f371eb1ab3" +checksum = "1431ba2e30deff1405920693d54ab231c88d7c240dd6ccc936ee223d8f8697c3" dependencies = [ "clru", "gix-chunk", @@ -1235,9 +1229,9 @@ dependencies = [ [[package]] name = "gix-packetline" -version = "0.16.6" +version = "0.16.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6df0b75361353e7c0a6d72d49617a37379a7a22cba4569ae33a7720a4c8755a" +checksum = "8a8384b1e964151aff0d5632dd9b191059d07dff358b96bd940f1b452600d7ab" dependencies = [ "bstr", "faster-hex", @@ -1273,9 +1267,9 @@ dependencies = [ [[package]] name = "gix-pathspec" -version = "0.3.0" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3e26c9b47c51be73f98d38c84494bd5fb99334c5d6fda14ef5d036d50a9e5fd" +checksum = "e9cc7194fdcf43b4a1ccfa13ffae1d79f83beb4becff7761d88dd99faeafe625" dependencies = [ "bitflags 2.3.3", "bstr", @@ -1301,9 +1295,9 @@ dependencies = [ [[package]] name = "gix-protocol" -version = "0.40.0" +version = "0.41.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc7b700dc20cc9be8a5130a1fd7e10c34117ffa7068431c8c24d963f0a2e0c9b" +checksum = "391e3feabdfa5f90dad6673ce59e3291ac28901b2ff248d86c5a7fbde0391e0e" dependencies = [ "async-trait", "bstr", @@ -1334,9 +1328,9 @@ dependencies = [ [[package]] name = "gix-ref" -version = "0.37.0" +version = "0.38.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22e6b749660b613641769edc1954132eb8071a13c32224891686091bef078de4" +checksum = "0ec2f6d07ac88d2fb8007ee3fa3e801856fb9d82e7366ec0ca332eb2c9d74a52" dependencies = [ "gix-actor", "gix-date", @@ -1356,9 +1350,9 @@ dependencies = [ [[package]] name = "gix-refspec" -version = "0.18.0" +version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0895cb7b1e70f3c3bd4550c329e9f5caf2975f97fcd4238e05754e72208ef61e" +checksum = "ccb0974cc41dbdb43a180c7f67aa481e1c1e160fcfa8f4a55291fd1126c1a6e7" dependencies = [ "bstr", "gix-hash", @@ -1370,9 +1364,9 @@ dependencies = [ [[package]] name = "gix-revision" -version = "0.22.0" +version = "0.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8c4b15cf2ab7a35f5bcb3ef146187c8d36df0177e171ca061913cbaaa890e89" +checksum = "2ca97ac73459a7f3766aa4a5638a6e37d56d4c7962bc1986fbaf4883d0772588" dependencies = [ "bstr", "gix-date", @@ -1387,9 +1381,9 @@ dependencies = [ [[package]] name = "gix-revwalk" -version = "0.8.0" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9870c6b1032f2084567710c3b2106ac603377f8d25766b8a6b7c33e6e3ca279" +checksum = "a16d8c892e4cd676d86f0265bf9d40cefd73d8d94f86b213b8b77d50e77efae0" dependencies = [ "gix-commitgraph", "gix-date", @@ -1415,27 +1409,29 @@ dependencies = [ [[package]] name = "gix-status" -version = "0.1.0" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "082801c42ba707f2407b5cce3d99b89cfa84f3794962946dc94cfdc00ae522fa" +checksum = "1c54271ffb47bce5826be9214a3993d595c5285c1ec23c036d9b1012920f6ab0" dependencies = [ "bstr", "filetime", "gix-features", + "gix-filter", "gix-fs", "gix-hash", "gix-index", "gix-object", "gix-path", "gix-pathspec", + "gix-worktree", "thiserror", ] [[package]] name = "gix-submodule" -version = "0.4.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd0150e82e9282d3f2ab2dd57a22f9f6c3447b9d9856e5321ac92d38e3e0e2b7" +checksum = "bba78c8d12aa24370178453ec3a472ff08dfaa657d116229f57f2c9cd469a1c2" dependencies = [ "bstr", "gix-config", @@ -1448,9 +1444,9 @@ dependencies = [ [[package]] name = "gix-tempfile" -version = "10.0.0" +version = "11.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ae0978f3e11dc57290ee75ac2477c815bca1ce2fa7ed5dc5f16db067410ac4d" +checksum = "05cc2205cf10d99f70b96e04e16c55d4c7cf33efc151df1f793e29fd12a931f8" dependencies = [ "dashmap", "gix-fs", @@ -1470,9 +1466,9 @@ checksum = "96b6d623a1152c3facb79067d6e2ecdae48130030cf27d6eb21109f13bd7b836" [[package]] name = "gix-transport" -version = "0.37.0" +version = "0.38.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9ec726e6a245e68ace59a34126a1d679de60360676612985e70b0d3b102fb4e" +checksum = "2f209a93364e24f20319751bc11092272e2f3fe82bb72592b2822679cf5be752" dependencies = [ "async-std", "async-trait", @@ -1496,9 +1492,9 @@ dependencies = [ [[package]] name = "gix-traverse" -version = "0.33.0" +version = "0.34.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22ef04ab3643acba289b5cedd25d6f53c0430770b1d689d1d654511e6fb81ba0" +checksum = "14d050ec7d4e1bb76abf0636cf4104fb915b70e54e3ced9a4427c999100ff38a" dependencies = [ "gix-commitgraph", "gix-date", @@ -1512,9 +1508,9 @@ dependencies = [ [[package]] name = "gix-url" -version = "0.24.0" +version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6125ecf46e8c68bf7202da6cad239831daebf0247ffbab30210d72f3856e420f" +checksum = "fa9a4e69d57162242b32cc05e1b96681cb8e513210e3a0b4e89ff647a5b2ab50" dependencies = [ "bstr", "gix-features", @@ -1546,9 +1542,9 @@ dependencies = [ [[package]] name = "gix-worktree" -version = "0.26.0" +version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f5e32972801bd82d56609e6fc84efc358fa1f11f25c5e83b7807ee2280f14fe" +checksum = "ddaf79e721dba64fe726a42f297a3c8ed42e55cdc0d81ca68452f2def3c2d7fd" dependencies = [ "bstr", "gix-attributes", @@ -1565,9 +1561,9 @@ dependencies = [ [[package]] name = "gix-worktree-state" -version = "0.3.0" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3aeb06960f2c5ac9e4cdb6b38eb3c2b99d5e525e68285fef21ed17dfbd597ad" +checksum = "34a2fcccdcaf3c71c00a03df31c9aa459d444cabbec4ed9ca1fa64e43406bed4" dependencies = [ "bstr", "gix-features", @@ -1585,9 +1581,9 @@ dependencies = [ [[package]] name = "gix-worktree-stream" -version = "0.5.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c89fe93a12e45cc3ad6ba429a7dd7506b03d7d406374a65ad9998b5cb2627569" +checksum = "ee4b34b6f8c9347327682064627e3e72c1fc545849b6d4c183fdfa84af71af2c" dependencies = [ "gix-attributes", "gix-features", @@ -1887,6 +1883,16 @@ dependencies = [ "rayon", ] +[[package]] +name = "kstring" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec3066350882a1cd6d950d055997f379ac37fd39f81cd4d8ed186032eb3c5747" +dependencies = [ + "serde", + "static_assertions", +] + [[package]] name = "kv-log-macro" version = "1.0.7" @@ -2720,6 +2726,12 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" +[[package]] +name = "static_assertions" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" + [[package]] name = "syn" version = "1.0.109" diff --git a/vendor/gix/Cargo.toml b/vendor/gix/Cargo.toml index a6ec392f3..bedeebaeb 100644 --- a/vendor/gix/Cargo.toml +++ b/vendor/gix/Cargo.toml @@ -13,7 +13,7 @@ edition = "2021" rust-version = "1.65" name = "gix" -version = "0.54.1" +version = "0.55.2" authors = ["Sebastian Thiel "] include = [ "src/**/*", @@ -55,90 +55,90 @@ version = "0.2.0" optional = true [dependencies.gix-actor] -version = "^0.27.0" +version = "^0.28.0" [dependencies.gix-archive] -version = "^0.5.0" +version = "^0.6.0" optional = true default-features = false [dependencies.gix-attributes] -version = "^0.19.0" +version = "^0.20.0" optional = true [dependencies.gix-commitgraph] -version = "^0.21.0" +version = "^0.22.0" [dependencies.gix-config] -version = "^0.30.0" +version = "^0.31.0" [dependencies.gix-credentials] -version = "^0.20.0" +version = "^0.21.0" optional = true [dependencies.gix-date] version = "^0.8.0" [dependencies.gix-diff] -version = "^0.36.0" +version = "^0.37.0" default-features = false [dependencies.gix-discover] -version = "^0.25.0" +version = "^0.26.0" [dependencies.gix-features] -version = "^0.35.0" +version = "^0.36.0" features = [ "progress", "once_cell", ] [dependencies.gix-filter] -version = "^0.5.0" +version = "^0.6.0" optional = true [dependencies.gix-fs] -version = "^0.7.0" +version = "^0.8.0" [dependencies.gix-glob] -version = "^0.13.0" +version = "^0.14.0" [dependencies.gix-hash] -version = "^0.13.0" +version = "^0.13.1" [dependencies.gix-hashtable] version = "^0.4.0" [dependencies.gix-ignore] -version = "^0.8.0" +version = "^0.9.0" optional = true [dependencies.gix-index] -version = "^0.25.0" +version = "^0.26.0" optional = true [dependencies.gix-lock] -version = "^10.0.0" +version = "^11.0.0" [dependencies.gix-macros] version = "^0.1.0" [dependencies.gix-mailmap] -version = "^0.19.0" +version = "^0.20.0" optional = true [dependencies.gix-negotiate] -version = "^0.8.0" +version = "^0.9.0" optional = true [dependencies.gix-object] -version = "^0.37.0" +version = "^0.38.0" [dependencies.gix-odb] -version = "^0.53.0" +version = "^0.54.0" [dependencies.gix-pack] -version = "^0.43.0" +version = "^0.44.0" features = ["object-cache-dynamic"] default-features = false @@ -146,7 +146,7 @@ default-features = false version = "^0.10.0" [dependencies.gix-pathspec] -version = "^0.3.0" +version = "^0.4.0" optional = true [dependencies.gix-prompt] @@ -154,49 +154,49 @@ version = "^0.7.0" optional = true [dependencies.gix-protocol] -version = "^0.40.0" +version = "^0.41.1" optional = true [dependencies.gix-ref] -version = "^0.37.0" +version = "^0.38.0" [dependencies.gix-refspec] -version = "^0.18.0" +version = "^0.19.0" [dependencies.gix-revision] -version = "^0.22.0" +version = "^0.23.0" default-features = false [dependencies.gix-revwalk] -version = "^0.8.0" +version = "^0.9.0" [dependencies.gix-sec] version = "^0.10.0" [dependencies.gix-status] -version = "^0.1.0" +version = "^0.2.0" optional = true [dependencies.gix-submodule] -version = "^0.4.0" +version = "^0.5.0" optional = true [dependencies.gix-tempfile] -version = "^10.0.0" +version = "^11.0.0" default-features = false [dependencies.gix-trace] version = "^0.1.3" [dependencies.gix-transport] -version = "^0.37.0" +version = "^0.38.0" optional = true [dependencies.gix-traverse] -version = "^0.33.0" +version = "^0.34.0" [dependencies.gix-url] -version = "^0.24.0" +version = "^0.25.0" [dependencies.gix-utils] version = "^0.1.5" @@ -205,16 +205,16 @@ version = "^0.1.5" version = "^0.8.0" [dependencies.gix-worktree] -version = "^0.26.0" +version = "^0.27.0" optional = true default-features = false [dependencies.gix-worktree-state] -version = "^0.3.0" +version = "^0.4.0" optional = true [dependencies.gix-worktree-stream] -version = "^0.5.0" +version = "^0.6.0" optional = true [dependencies.once_cell] diff --git a/vendor/gix/src/clone/fetch/mod.rs b/vendor/gix/src/clone/fetch/mod.rs index c03b8f839..663822212 100644 --- a/vendor/gix/src/clone/fetch/mod.rs +++ b/vendor/gix/src/clone/fetch/mod.rs @@ -94,7 +94,7 @@ impl PrepareFetch { .expect("valid static spec"); let mut clone_fetch_tags = None; if let Some(f) = self.configure_remote.as_mut() { - remote = f(remote).map_err(|err| Error::RemoteConfiguration(err))?; + remote = f(remote).map_err(Error::RemoteConfiguration)?; } else { clone_fetch_tags = remote::fetch::Tags::All.into(); } @@ -117,7 +117,7 @@ impl PrepareFetch { let pending_pack: remote::fetch::Prepare<'_, '_, _> = { let mut connection = remote.connect(remote::Direction::Fetch).await?; if let Some(f) = self.configure_connection.as_mut() { - f(&mut connection).map_err(|err| Error::RemoteConnection(err))?; + f(&mut connection).map_err(Error::RemoteConnection)?; } connection .prepare_fetch(&mut *progress, { diff --git a/vendor/gix/src/clone/fetch/util.rs b/vendor/gix/src/clone/fetch/util.rs index ab90435d0..db9bc0a1c 100644 --- a/vendor/gix/src/clone/fetch/util.rs +++ b/vendor/gix/src/clone/fetch/util.rs @@ -189,7 +189,7 @@ fn setup_branch_config( remote_name: &BStr, ) -> Result<(), Error> { let short_name = match branch.category_and_short_name() { - Some((cat, shortened)) if cat == gix_ref::Category::LocalBranch => match shortened.to_str() { + Some((gix_ref::Category::LocalBranch, shortened)) => match shortened.to_str() { Ok(s) => s, Err(_) => return Ok(()), }, diff --git a/vendor/gix/src/config/cache/access.rs b/vendor/gix/src/config/cache/access.rs index 352bc9712..3e763c028 100644 --- a/vendor/gix/src/config/cache/access.rs +++ b/vendor/gix/src/config/cache/access.rs @@ -158,13 +158,7 @@ impl Cache { pub(crate) fn stat_options(&self) -> Result { use crate::config::tree::gitoxide; Ok(gix_index::entry::stat::Options { - trust_ctime: boolean( - self, - "core.trustCTime", - &Core::TRUST_C_TIME, - // For now, on MacOS it's known to not be trust-worthy at least with the Rust STDlib, being 2s off - !cfg!(target_os = "macos"), - )?, + trust_ctime: boolean(self, "core.trustCTime", &Core::TRUST_C_TIME, true)?, use_nsec: boolean(self, "gitoxide.core.useNsec", &gitoxide::Core::USE_NSEC, false)?, use_stdev: boolean(self, "gitoxide.core.useStdev", &gitoxide::Core::USE_STDEV, false)?, check_stat: self @@ -309,7 +303,7 @@ impl Cache { &gitoxide::Pathspec::LITERAL, ] .iter() - .find_map(|key| (key.environment_override().expect("set") == name).then_some(key)) + .find(|key| key.environment_override().expect("set") == name) .expect("we must know all possible input variable names"); let val = self diff --git a/vendor/gix/src/config/tree/keys.rs b/vendor/gix/src/config/tree/keys.rs index 5a5257af5..15cfba2d9 100644 --- a/vendor/gix/src/config/tree/keys.rs +++ b/vendor/gix/src/config/tree/keys.rs @@ -237,7 +237,7 @@ mod lock_timeout { let value = value.map_err(|err| config::lock_timeout::Error::from(self).with_source(err))?; Ok(match value { val if val < 0 => Fail::AfterDurationWithBackoff(Duration::from_secs(u64::MAX)), - val if val == 0 => Fail::Immediately, + 0 => Fail::Immediately, val => Fail::AfterDurationWithBackoff(Duration::from_millis( val.try_into().expect("i64 to u64 always works if positive"), )), diff --git a/vendor/gix/src/config/tree/sections/core.rs b/vendor/gix/src/config/tree/sections/core.rs index ab3e2bab9..2ec5c279e 100644 --- a/vendor/gix/src/config/tree/sections/core.rs +++ b/vendor/gix/src/config/tree/sections/core.rs @@ -45,8 +45,7 @@ impl Core { /// The `core.symlinks` key. pub const SYMLINKS: keys::Boolean = keys::Boolean::new_boolean("symlinks", &config::Tree::CORE); /// The `core.trustCTime` key. - pub const TRUST_C_TIME: keys::Boolean = keys::Boolean::new_boolean("trustCTime", &config::Tree::CORE) - .with_deviation("Currently the default is false, instead of true, as it seems to be 2s off in tests"); + pub const TRUST_C_TIME: keys::Boolean = keys::Boolean::new_boolean("trustCTime", &config::Tree::CORE); /// The `core.worktree` key. pub const WORKTREE: keys::Any = keys::Any::new("worktree", &config::Tree::CORE) .with_environment_override("GIT_WORK_TREE") diff --git a/vendor/gix/src/filter.rs b/vendor/gix/src/filter.rs index 935c91108..b106840a7 100644 --- a/vendor/gix/src/filter.rs +++ b/vendor/gix/src/filter.rs @@ -150,8 +150,8 @@ impl<'repo> Pipeline<'repo> { &mut |_, attrs| { entry.matching_attributes(attrs); }, - &mut |rela_path, buf| -> Result<_, gix_odb::find::Error> { - let entry = match index.entry_by_path(rela_path) { + &mut |buf| -> Result<_, gix_odb::find::Error> { + let entry = match index.entry_by_path(gix_path::into_bstr(rela_path).as_ref()) { None => return Ok(None), Some(entry) => entry, }; diff --git a/vendor/gix/src/head/peel.rs b/vendor/gix/src/head/peel.rs index a4f7c71b0..88e23636f 100644 --- a/vendor/gix/src/head/peel.rs +++ b/vendor/gix/src/head/peel.rs @@ -47,6 +47,10 @@ impl<'repo> Head<'repo> { } // TODO: tests + // TODO: Fix this! It's not consistently peeling tags. The whole peeling business should be reconsidered to do what people usually + // want which is to peel references, if present, and then peel objects with control over which object type to end at. + // Finding a good interface for that isn't easy as ideally, it's an iterator that shows the intermediate objects so the user + // can select which tag of a chain to choose. /// Follow the symbolic reference of this head until its target object and peel it by following tag objects until there is no /// more object to follow, and return that object id. /// diff --git a/vendor/gix/src/lib.rs b/vendor/gix/src/lib.rs index 672d5c91c..8218defc8 100644 --- a/vendor/gix/src/lib.rs +++ b/vendor/gix/src/lib.rs @@ -75,6 +75,11 @@ //! * [`git2::build::CheckoutBuilder::disable_filters()](https://docs.rs/git2/*/git2/build/struct.CheckoutBuilder.html#method.disable_filters) ➡ ❌ *(filters are always applied during checkouts)* //! * [`git2::Repository::submodule_status()`](https://docs.rs/git2/*/git2/struct.Repository.html#method.submodule_status) ➡ [`Submodule::state()`] - status provides more information and conveniences though, and an actual worktree status isn't performed. //! +//! #### Integrity checks +//! +//! `git2` by default performs integrity checks via [`strict_hash_verification()`](https://docs.rs/git2/latest/git2/opts/fn.strict_hash_verification.html) and +//! [`strict_object_creation`](https://docs.rs/git2/latest/git2/opts/fn.strict_object_creation.html) which `gitoxide` *currently* **does not have**. +//! //! ### Feature Flags #![cfg_attr( feature = "document-features", @@ -158,7 +163,8 @@ mod types; #[cfg(any(feature = "excludes", feature = "attributes"))] pub use types::AttributeStack; pub use types::{ - Commit, Head, Id, Object, ObjectDetached, Reference, Remote, Repository, Tag, ThreadSafeRepository, Tree, Worktree, + Blob, Commit, Head, Id, Object, ObjectDetached, Reference, Remote, Repository, Tag, ThreadSafeRepository, Tree, + Worktree, }; #[cfg(feature = "attributes")] pub use types::{Pathspec, PathspecDetached, Submodule}; diff --git a/vendor/gix/src/object/blob.rs b/vendor/gix/src/object/blob.rs index 00b3519ed..ef19c302a 100644 --- a/vendor/gix/src/object/blob.rs +++ b/vendor/gix/src/object/blob.rs @@ -1,3 +1,5 @@ +use crate::{Blob, ObjectDetached}; + /// #[cfg(feature = "blob-diff")] pub mod diff { @@ -147,3 +149,27 @@ pub mod diff { } } } + +/// Remove Lifetime +impl Blob<'_> { + /// Create an owned instance of this object, copying our data in the process. + pub fn detached(&self) -> ObjectDetached { + ObjectDetached { + id: self.id, + kind: gix_object::Kind::Blob, + data: self.data.clone(), + } + } + + /// Sever the connection to the `Repository` and turn this instance into a standalone object. + pub fn detach(self) -> ObjectDetached { + self.into() + } + + /// Retrieve this instance's data, leaving its own data empty. + /// + /// This method works around the immovability of members of this type. + pub fn take_data(&mut self) -> Vec { + std::mem::take(&mut self.data) + } +} diff --git a/vendor/gix/src/object/commit.rs b/vendor/gix/src/object/commit.rs index 1fb9eff67..bb2e3a99e 100644 --- a/vendor/gix/src/object/commit.rs +++ b/vendor/gix/src/object/commit.rs @@ -20,6 +20,7 @@ mod error { pub use error::Error; +/// Remove Lifetime impl<'repo> Commit<'repo> { /// Create an owned instance of this object, copying our data in the process. pub fn detached(&self) -> ObjectDetached { @@ -34,6 +35,13 @@ impl<'repo> Commit<'repo> { pub fn detach(self) -> ObjectDetached { self.into() } + + /// Retrieve this instance's encoded data, leaving its own data empty. + /// + /// This method works around the immovability of members of this type. + pub fn take_data(&mut self) -> Vec { + std::mem::take(&mut self.data) + } } impl<'repo> Commit<'repo> { diff --git a/vendor/gix/src/object/impls.rs b/vendor/gix/src/object/impls.rs index 3453b1b3c..5d2ad8160 100644 --- a/vendor/gix/src/object/impls.rs +++ b/vendor/gix/src/object/impls.rs @@ -1,13 +1,13 @@ use std::convert::TryFrom; -use crate::{object, Commit, Object, ObjectDetached, Tag, Tree}; +use crate::{object, Blob, Commit, Object, ObjectDetached, Tag, Tree}; impl<'repo> From> for ObjectDetached { fn from(mut v: Object<'repo>) -> Self { ObjectDetached { id: v.id, kind: v.kind, - data: std::mem::take(&mut v.data), + data: steal_from_freelist(&mut v.data), } } } @@ -17,7 +17,7 @@ impl<'repo> From> for ObjectDetached { ObjectDetached { id: v.id, kind: gix_object::Kind::Commit, - data: std::mem::take(&mut v.data), + data: steal_from_freelist(&mut v.data), } } } @@ -27,7 +27,27 @@ impl<'repo> From> for ObjectDetached { ObjectDetached { id: v.id, kind: gix_object::Kind::Tag, - data: std::mem::take(&mut v.data), + data: steal_from_freelist(&mut v.data), + } + } +} + +impl<'repo> From> for ObjectDetached { + fn from(mut v: Blob<'repo>) -> Self { + ObjectDetached { + id: v.id, + kind: gix_object::Kind::Blob, + data: steal_from_freelist(&mut v.data), + } + } +} + +impl<'repo> From> for ObjectDetached { + fn from(mut v: Tree<'repo>) -> Self { + ObjectDetached { + id: v.id, + kind: gix_object::Kind::Tree, + data: steal_from_freelist(&mut v.data), } } } @@ -59,11 +79,11 @@ impl<'repo> TryFrom> for Commit<'repo> { type Error = Object<'repo>; fn try_from(mut value: Object<'repo>) -> Result { - let handle = value.repo; + let repo = value.repo; match value.kind { object::Kind::Commit => Ok(Commit { id: value.id, - repo: handle, + repo, data: steal_from_freelist(&mut value.data), }), _ => Err(value), @@ -75,11 +95,11 @@ impl<'repo> TryFrom> for Tag<'repo> { type Error = Object<'repo>; fn try_from(mut value: Object<'repo>) -> Result { - let handle = value.repo; + let repo = value.repo; match value.kind { object::Kind::Tag => Ok(Tag { id: value.id, - repo: handle, + repo, data: steal_from_freelist(&mut value.data), }), _ => Err(value), @@ -91,11 +111,27 @@ impl<'repo> TryFrom> for Tree<'repo> { type Error = Object<'repo>; fn try_from(mut value: Object<'repo>) -> Result { - let handle = value.repo; + let repo = value.repo; match value.kind { object::Kind::Tree => Ok(Tree { id: value.id, - repo: handle, + repo, + data: steal_from_freelist(&mut value.data), + }), + _ => Err(value), + } + } +} + +impl<'repo> TryFrom> for Blob<'repo> { + type Error = Object<'repo>; + + fn try_from(mut value: Object<'repo>) -> Result { + let repo = value.repo; + match value.kind { + object::Kind::Blob => Ok(Blob { + id: value.id, + repo, data: steal_from_freelist(&mut value.data), }), _ => Err(value), diff --git a/vendor/gix/src/object/mod.rs b/vendor/gix/src/object/mod.rs index d0a37db6c..ca2b07f8b 100644 --- a/vendor/gix/src/object/mod.rs +++ b/vendor/gix/src/object/mod.rs @@ -4,7 +4,7 @@ use std::convert::TryInto; use gix_hash::ObjectId; pub use gix_object::Kind; -use crate::{Commit, Id, Object, ObjectDetached, Tag, Tree}; +use crate::{Blob, Commit, Id, Object, ObjectDetached, Tag, Tree}; mod errors; pub(crate) mod cache { @@ -74,6 +74,14 @@ impl<'repo> Object<'repo> { } } + /// Transform this object into a blob, or panic if it is none. + pub fn into_blob(self) -> Blob<'repo> { + match self.try_into() { + Ok(tree) => tree, + Err(this) => panic!("Tried to use {} as tree, but was {}", this.id, this.kind), + } + } + /// Transform this object into a tree, or panic if it is none. pub fn into_tree(self) -> Tree<'repo> { match self.try_into() { @@ -124,6 +132,15 @@ impl<'repo> Object<'repo> { expected: gix_object::Kind::Tree, }) } + + /// Transform this object into a blob, or return it as part of the `Err` if it is no blob. + pub fn try_into_blob(self) -> Result, try_into::Error> { + self.try_into().map_err(|this: Self| try_into::Error { + id: this.id, + actual: this.kind, + expected: gix_object::Kind::Blob, + }) + } } impl<'repo> Object<'repo> { diff --git a/vendor/gix/src/object/tag.rs b/vendor/gix/src/object/tag.rs index 77eaaa259..1a7a3de86 100644 --- a/vendor/gix/src/object/tag.rs +++ b/vendor/gix/src/object/tag.rs @@ -1,4 +1,4 @@ -use crate::{ext::ObjectIdExt, Tag}; +use crate::{ext::ObjectIdExt, ObjectDetached, Tag}; impl<'repo> Tag<'repo> { /// Decode the entire tag object and return it for accessing all tag information. @@ -24,3 +24,27 @@ impl<'repo> Tag<'repo> { gix_object::TagRefIter::from_bytes(&self.data).tagger() } } + +/// Remove Lifetime +impl Tag<'_> { + /// Create an owned instance of this object, copying our data in the process. + pub fn detached(&self) -> ObjectDetached { + ObjectDetached { + id: self.id, + kind: gix_object::Kind::Tag, + data: self.data.clone(), + } + } + + /// Sever the connection to the `Repository` and turn this instance into a standalone object. + pub fn detach(self) -> ObjectDetached { + self.into() + } + + /// Retrieve this instance's encoded data, leaving its own data empty. + /// + /// This method works around the immovability of members of this type. + pub fn take_data(&mut self) -> Vec { + std::mem::take(&mut self.data) + } +} diff --git a/vendor/gix/src/object/tree/mod.rs b/vendor/gix/src/object/tree/mod.rs index 5bf59a25c..e4dac24f8 100644 --- a/vendor/gix/src/object/tree/mod.rs +++ b/vendor/gix/src/object/tree/mod.rs @@ -4,7 +4,7 @@ pub use gix_object::tree::EntryMode; use gix_object::{bstr::BStr, TreeRefIter}; use gix_odb::FindExt; -use crate::{object::find, Id, Tree}; +use crate::{object::find, Id, ObjectDetached, Tree}; /// Initialization impl<'repo> Tree<'repo> { @@ -250,3 +250,27 @@ mod _impls { } } } + +/// Remove Lifetime +impl Tree<'_> { + /// Create an owned instance of this object, copying our data in the process. + pub fn detached(&self) -> ObjectDetached { + ObjectDetached { + id: self.id, + kind: gix_object::Kind::Tree, + data: self.data.clone(), + } + } + + /// Sever the connection to the `Repository` and turn this instance into a standalone object. + pub fn detach(self) -> ObjectDetached { + self.into() + } + + /// Retrieve this instance's encoded data, leaving its own data empty. + /// + /// This method works around the immovability of members of this type. + pub fn take_data(&mut self) -> Vec { + std::mem::take(&mut self.data) + } +} diff --git a/vendor/gix/src/reference/errors.rs b/vendor/gix/src/reference/errors.rs index a931b3974..ff3802e94 100644 --- a/vendor/gix/src/reference/errors.rs +++ b/vendor/gix/src/reference/errors.rs @@ -22,8 +22,8 @@ pub mod edit { /// pub mod peel { - /// The error returned by [`Reference::peel_to_id_in_place(…)`][crate::Reference::peel_to_id_in_place()] and - /// [`Reference::into_fully_peeled_id(…)`][crate::Reference::into_fully_peeled_id()]. + /// The error returned by [`Reference::peel_to_id_in_place(…)`](crate::Reference::peel_to_id_in_place()) and + /// [`Reference::into_fully_peeled_id(…)`](crate::Reference::into_fully_peeled_id()). #[derive(Debug, thiserror::Error)] #[allow(missing_docs)] pub enum Error { @@ -36,7 +36,7 @@ pub mod peel { /// pub mod head_id { - /// The error returned by [`Repository::head_id(…)`][crate::Repository::head_id()]. + /// The error returned by [`Repository::head_id(…)`](crate::Repository::head_id()). #[derive(Debug, thiserror::Error)] #[allow(missing_docs)] pub enum Error { @@ -51,7 +51,7 @@ pub mod head_id { /// pub mod head_commit { - /// The error returned by [`Repository::head_commit`(…)][crate::Repository::head_commit()]. + /// The error returned by [`Repository::head_commit`(…)](crate::Repository::head_commit()). #[derive(Debug, thiserror::Error)] #[allow(missing_docs)] pub enum Error { @@ -62,6 +62,21 @@ pub mod head_commit { } } +/// +pub mod head_tree_id { + /// The error returned by [`Repository::head_tree_id`(…)](crate::Repository::head_tree_id()). + #[derive(Debug, thiserror::Error)] + #[allow(missing_docs)] + pub enum Error { + #[error(transparent)] + Head(#[from] crate::reference::find::existing::Error), + #[error(transparent)] + PeelToCommit(#[from] crate::head::peel::to_commit::Error), + #[error(transparent)] + DecodeCommit(#[from] gix_object::decode::Error), + } +} + /// pub mod find { /// diff --git a/vendor/gix/src/reference/mod.rs b/vendor/gix/src/reference/mod.rs index e80057fb4..2d32f595d 100644 --- a/vendor/gix/src/reference/mod.rs +++ b/vendor/gix/src/reference/mod.rs @@ -10,7 +10,7 @@ pub mod iter; pub mod remote; mod errors; -pub use errors::{edit, find, head_commit, head_id, peel}; +pub use errors::{edit, find, head_commit, head_id, head_tree_id, peel}; use crate::ext::ObjectIdExt; diff --git a/vendor/gix/src/repository/cache.rs b/vendor/gix/src/repository/cache.rs index 7dcd844e6..03c2ff019 100644 --- a/vendor/gix/src/repository/cache.rs +++ b/vendor/gix/src/repository/cache.rs @@ -11,7 +11,7 @@ impl crate::Repository { pub fn object_cache_size(&mut self, bytes: impl Into>) { let bytes = bytes.into(); match bytes { - Some(bytes) if bytes == 0 => self.objects.unset_object_cache(), + Some(0) => self.objects.unset_object_cache(), Some(bytes) => self .objects .set_object_cache(move || Box::new(crate::object::cache::MemoryCappedHashmap::new(bytes))), diff --git a/vendor/gix/src/repository/index.rs b/vendor/gix/src/repository/index.rs index a21b138a5..59666fc5f 100644 --- a/vendor/gix/src/repository/index.rs +++ b/vendor/gix/src/repository/index.rs @@ -55,6 +55,16 @@ impl crate::Repository { }) } + /// Return the shared worktree index if present, or return a new empty one which has an association to the place where the index would be. + pub fn index_or_empty(&self) -> Result { + Ok(self.try_index()?.unwrap_or_else(|| { + worktree::Index::new(gix_fs::FileSnapshot::new(gix_index::File::from_state( + gix_index::State::new(self.object_hash()), + self.index_path(), + ))) + })) + } + /// Return a shared worktree index which is updated automatically if the in-memory snapshot has become stale as the underlying file /// on disk has changed, or `None` if no such file exists. /// diff --git a/vendor/gix/src/repository/location.rs b/vendor/gix/src/repository/location.rs index 5811e7bf9..8ee907ca9 100644 --- a/vendor/gix/src/repository/location.rs +++ b/vendor/gix/src/repository/location.rs @@ -37,6 +37,7 @@ impl crate::Repository { } /// Return the work tree containing all checked out files, if there is one. + #[doc(alias = "workdir", alias = "git2")] pub fn work_dir(&self) -> Option<&std::path::Path> { self.work_tree.as_deref() } diff --git a/vendor/gix/src/repository/object.rs b/vendor/gix/src/repository/object.rs index c156971d0..0b894939f 100644 --- a/vendor/gix/src/repository/object.rs +++ b/vendor/gix/src/repository/object.rs @@ -10,7 +10,7 @@ use gix_ref::{ }; use smallvec::SmallVec; -use crate::{commit, ext::ObjectIdExt, object, tag, Id, Object, Reference, Tree}; +use crate::{commit, ext::ObjectIdExt, object, tag, Blob, Id, Object, Reference, Tree}; /// Methods related to object creation. impl crate::Repository { @@ -26,7 +26,7 @@ impl crate::Repository { #[momo] pub fn find_object(&self, id: impl Into) -> Result, object::find::existing::Error> { let id = id.into(); - if id == gix_hash::ObjectId::empty_tree(self.object_hash()) { + if id == ObjectId::empty_tree(self.object_hash()) { return Ok(Object { id, kind: gix_object::Kind::Tree, @@ -46,7 +46,7 @@ impl crate::Repository { #[momo] pub fn find_header(&self, id: impl Into) -> Result { let id = id.into(); - if id == gix_hash::ObjectId::empty_tree(self.object_hash()) { + if id == ObjectId::empty_tree(self.object_hash()) { return Ok(gix_odb::find::Header::Loose { kind: gix_object::Kind::Tree, size: 0, @@ -55,6 +55,25 @@ impl crate::Repository { self.objects.header(id) } + /// Return `true` if `id` exists in the object database. + /// + /// # Performance + /// + /// This method can be slow if the underlying [object database](crate::Repository::objects) has + /// an unsuitable [RefreshMode](gix_odb::store::RefreshMode) and `id` is not likely to exist. + /// Use [`repo.objects.refresh_never()`](gix_odb::store::Handle::refresh_never) to avoid expensive + /// IO-bound refreshes if an object wasn't found. + #[doc(alias = "exists", alias = "git2")] + #[momo] + pub fn has_object(&self, id: impl AsRef) -> bool { + let id = id.as_ref(); + if id == ObjectId::empty_tree(self.object_hash()) { + true + } else { + self.objects.contains(id) + } + } + /// Obtain information about an object without fully decoding it, or `None` if the object doesn't exist. /// /// Note that despite being cheaper than [`Self::try_find_object()`], there is still some effort traversing delta-chains. @@ -64,7 +83,7 @@ impl crate::Repository { id: impl Into, ) -> Result, object::find::Error> { let id = id.into(); - if id == gix_hash::ObjectId::empty_tree(self.object_hash()) { + if id == ObjectId::empty_tree(self.object_hash()) { return Ok(Some(gix_odb::find::Header::Loose { kind: gix_object::Kind::Tree, size: 0, @@ -77,7 +96,7 @@ impl crate::Repository { #[momo] pub fn try_find_object(&self, id: impl Into) -> Result>, object::find::Error> { let id = id.into(); - if id == gix_hash::ObjectId::empty_tree(self.object_hash()) { + if id == ObjectId::empty_tree(self.object_hash()) { return Ok(Some(Object { id, kind: gix_object::Kind::Tree, @@ -236,7 +255,7 @@ impl crate::Repository { reference: FullName, message: &str, tree: ObjectId, - parents: SmallVec<[gix_hash::ObjectId; 1]>, + parents: SmallVec<[ObjectId; 1]>, ) -> Result, commit::Error> { use gix_ref::{ transaction::{Change, RefEdit}, @@ -310,13 +329,25 @@ impl crate::Repository { self.commit_as(committer, author, reference, message, tree, parents) } - /// Return an empty tree object, suitable for [getting changes](crate::Tree::changes()). + /// Return an empty tree object, suitable for [getting changes](Tree::changes()). /// - /// Note that it is special and doesn't physically exist in the object database even though it can be returned. + /// Note that the returned object is special and doesn't necessarily physically exist in the object database. /// This means that this object can be used in an uninitialized, empty repository which would report to have no objects at all. pub fn empty_tree(&self) -> Tree<'_> { - self.find_object(gix_hash::ObjectId::empty_tree(self.object_hash())) + self.find_object(ObjectId::empty_tree(self.object_hash())) .expect("always present") .into_tree() } + + /// Return an empty blob object. + /// + /// Note that the returned object is special and doesn't necessarily physically exist in the object database. + /// This means that this object can be used in an uninitialized, empty repository which would report to have no objects at all. + pub fn empty_blob(&self) -> Blob<'_> { + Blob { + id: gix_hash::ObjectId::empty_blob(self.object_hash()), + data: Vec::new(), + repo: self, + } + } } diff --git a/vendor/gix/src/repository/reference.rs b/vendor/gix/src/repository/reference.rs index 5a14c60b5..e57ca63c0 100644 --- a/vendor/gix/src/repository/reference.rs +++ b/vendor/gix/src/repository/reference.rs @@ -212,6 +212,15 @@ impl crate::Repository { Ok(self.head()?.peel_to_commit_in_place()?) } + /// Return the tree id the `HEAD` reference currently points to after peeling it fully. + /// + /// Note that this may fail for various reasons, most notably because the repository + /// is freshly initialized and doesn't have any commits yet. It could also fail if the + /// head does not point to a commit. + pub fn head_tree_id(&self) -> Result, reference::head_tree_id::Error> { + Ok(self.head()?.peel_to_commit_in_place()?.tree_id()?) + } + /// Find the reference with the given partial or full `name`, like `main`, `HEAD`, `heads/branch` or `origin/other`, /// or return an error if it wasn't found. /// diff --git a/vendor/gix/src/types.rs b/vendor/gix/src/types.rs index 0739cdd25..0dc81abae 100644 --- a/vendor/gix/src/types.rs +++ b/vendor/gix/src/types.rs @@ -31,6 +31,7 @@ pub struct Id<'r> { } /// A decoded object with a reference to its owning repository. +#[derive(Clone)] pub struct Object<'repo> { /// The id of the object pub id: ObjectId, @@ -47,7 +48,24 @@ impl<'a> Drop for Object<'a> { } } +/// A blob along with access to its owning repository. +#[derive(Clone)] +pub struct Blob<'repo> { + /// The id of the tree + pub id: ObjectId, + /// The blob's data. + pub data: Vec, + pub(crate) repo: &'repo Repository, +} + +impl<'a> Drop for Blob<'a> { + fn drop(&mut self) { + self.repo.reuse_buffer(&mut self.data); + } +} + /// A decoded tree object with access to its owning repository. +#[derive(Clone)] pub struct Tree<'repo> { /// The id of the tree pub id: ObjectId, @@ -63,6 +81,7 @@ impl<'a> Drop for Tree<'a> { } /// A decoded tag object with access to its owning repository. +#[derive(Clone)] pub struct Tag<'repo> { /// The id of the tree pub id: ObjectId, @@ -78,6 +97,7 @@ impl<'a> Drop for Tag<'a> { } /// A decoded commit object with access to its owning repository. +#[derive(Clone)] pub struct Commit<'repo> { /// The id of the commit pub id: ObjectId, -- cgit v1.2.3