├── .config └── nextest.toml ├── .devcontainer ├── Dockerfile └── devcontainer.json ├── .editorconfig ├── .gitattributes ├── .github ├── FUNDING.yml ├── ISSUE_TEMPLATE │ ├── bug_report.yml │ └── feature_request.yml ├── dependabot.yml └── workflows │ ├── ci.yml │ ├── cifuzz.yml │ ├── cron.yml │ └── release.yml ├── .gitignore ├── .gov ├── accounting.csv └── info.yml ├── .mailmap ├── CHANGELOG.md ├── CODE_OF_CONDUCT.md ├── COLLABORATING.md ├── CONTRIBUTING.md ├── Cargo.lock ├── Cargo.toml ├── DEVELOPMENT.md ├── FUNDING.json ├── LICENSE-APACHE ├── LICENSE-MIT ├── Makefile ├── README.md ├── SECURITY.md ├── SHORTCOMINGS.md ├── STABILITY.md ├── _typos.toml ├── build.rs ├── crate-status.md ├── deny.toml ├── etc ├── check-package-size.sh ├── copy-packetline.sh ├── corpus │ ├── README.md │ ├── clone-repos.sh │ ├── json-to-jsonl.sh │ └── repo_metadata.sample.jsonl ├── crate-structure.monopic ├── discovery │ └── odb.md ├── docker │ ├── Dockerfile.alpine │ ├── Dockerfile.test-cross │ ├── test-cross-context │ │ └── customize.sh │ └── test-cross.toml ├── gix-components.monopic ├── gix-components.txt ├── msrv-badge.svg ├── msrv-badge.template.svg ├── reports │ ├── 21-05.md │ ├── 21-06.md │ ├── 21-07.md │ ├── 21-08.md │ ├── 21-09.md │ ├── 21-10.md │ ├── 21-11.md │ ├── 21-12.md │ ├── 22-01.md │ ├── 22-02.md │ ├── 22-03.md │ ├── 22-04.md │ ├── 22-05.md │ ├── 22-06.md │ ├── 22-07.md │ ├── 22-08.md │ ├── 22-09.md │ ├── 22-10.md │ ├── 22-11.md │ ├── 22-12.md │ ├── 22-EOY.md │ ├── 23-01.md │ ├── 23-02.md │ ├── 23-03.md │ ├── 23-04.md │ ├── 23-05.md │ ├── 23-06.md │ ├── 23-07.md │ ├── 23-08.md │ ├── 23-09.md │ ├── 23-10.md │ ├── 23-11.md │ ├── 23-12.md │ ├── 23-EOY.md │ ├── 24-01.md │ ├── 24-02.md │ ├── 24-03.md │ ├── 24-04.md │ ├── 24-05.md │ ├── 24-06.md │ ├── 24-07.md │ ├── 24-08.md │ ├── 24-09.md │ ├── 24-10.md │ ├── 24-11.md │ ├── 24-12.md │ ├── 24-EOY.md │ ├── 25-01.md │ ├── 25-02.md │ ├── 25-03.md │ ├── 25-04.md │ └── 25-05.md ├── speak │ ├── gitmerge-2024.marp.html │ └── gitmerge-2024.marp.md └── test-fixtures-windows-expected-failures-see-issue-1358.txt ├── examples ├── log.rs └── ls-tree.rs ├── general-tasks.md ├── gitoxide-core ├── CHANGELOG.md ├── Cargo.toml ├── LICENSE-APACHE ├── LICENSE-MIT └── src │ ├── commitgraph │ ├── mod.rs │ └── verify.rs │ ├── corpus │ ├── db.rs │ ├── engine.rs │ ├── mod.rs │ ├── run.rs │ └── trace.rs │ ├── discover.rs │ ├── hours │ ├── core.rs │ ├── mod.rs │ └── util.rs │ ├── index │ ├── checkout.rs │ ├── information.rs │ └── mod.rs │ ├── lib.rs │ ├── mailmap.rs │ ├── net.rs │ ├── organize.rs │ ├── pack │ ├── create.rs │ ├── explode.rs │ ├── index.rs │ ├── mod.rs │ ├── multi_index.rs │ ├── receive.rs │ └── verify.rs │ ├── query │ ├── db.rs │ ├── engine │ │ ├── command.rs │ │ ├── mod.rs │ │ └── update.rs │ └── mod.rs │ └── repository │ ├── archive.rs │ ├── attributes │ ├── mod.rs │ ├── query.rs │ └── validate_baseline.rs │ ├── blame.rs │ ├── cat.rs │ ├── clean.rs │ ├── clone.rs │ ├── commit.rs │ ├── commitgraph │ ├── list.rs │ ├── mod.rs │ └── verify.rs │ ├── config.rs │ ├── credential.rs │ ├── diff.rs │ ├── dirty.rs │ ├── exclude.rs │ ├── fetch.rs │ ├── fsck.rs │ ├── index │ ├── entries.rs │ └── mod.rs │ ├── log.rs │ ├── mailmap.rs │ ├── merge │ ├── commit.rs │ ├── file.rs │ ├── mod.rs │ └── tree.rs │ ├── merge_base.rs │ ├── mod.rs │ ├── odb.rs │ ├── remote.rs │ ├── revision │ ├── explain.rs │ ├── list.rs │ ├── mod.rs │ ├── previous_branches.rs │ └── resolve.rs │ ├── status.rs │ ├── submodule.rs │ ├── tree.rs │ ├── verify.rs │ └── worktree.rs ├── gix-actor ├── CHANGELOG.md ├── Cargo.toml ├── LICENSE-APACHE ├── LICENSE-MIT ├── src │ ├── identity.rs │ ├── lib.rs │ └── signature │ │ ├── decode.rs │ │ └── mod.rs └── tests │ ├── actor.rs │ ├── identity │ └── mod.rs │ └── signature │ └── mod.rs ├── gix-archive ├── CHANGELOG.md ├── Cargo.toml ├── LICENSE-APACHE ├── LICENSE-MIT ├── src │ ├── lib.rs │ └── write.rs └── tests │ ├── archive.rs │ └── fixtures │ ├── basic.sh │ └── generated-archives │ └── .gitignore ├── gix-attributes ├── CHANGELOG.md ├── Cargo.toml ├── LICENSE-APACHE ├── LICENSE-MIT ├── fuzz │ ├── .gitignore │ ├── Cargo.toml │ └── fuzz_targets │ │ └── fuzz_search.rs ├── src │ ├── assignment.rs │ ├── lib.rs │ ├── name.rs │ ├── parse.rs │ ├── search │ │ ├── attributes.rs │ │ ├── mod.rs │ │ ├── outcome.rs │ │ └── refmap.rs │ ├── source.rs │ └── state.rs └── tests │ ├── assignment │ └── mod.rs │ ├── attributes.rs │ ├── fixtures │ ├── attributes │ │ └── various.txt │ ├── generated-archives │ │ └── .gitignore │ └── make_attributes_baseline.sh │ ├── parse │ └── mod.rs │ ├── search │ └── mod.rs │ └── state │ └── mod.rs ├── gix-bitmap ├── CHANGELOG.md ├── Cargo.toml ├── LICENSE-APACHE ├── LICENSE-MIT └── src │ ├── ewah.rs │ └── lib.rs ├── gix-blame ├── CHANGELOG.md ├── Cargo.toml ├── LICENSE-APACHE ├── LICENSE-MIT ├── src │ ├── error.rs │ ├── file │ │ ├── function.rs │ │ ├── mod.rs │ │ └── tests.rs │ ├── lib.rs │ └── types.rs └── tests │ ├── blame.rs │ └── fixtures │ ├── generated-archives │ └── .gitignore │ └── make_blame_repo.sh ├── gix-chunk ├── CHANGELOG.md ├── Cargo.toml ├── LICENSE-APACHE ├── LICENSE-MIT └── src │ ├── file │ ├── decode.rs │ ├── index.rs │ ├── mod.rs │ └── write.rs │ └── lib.rs ├── gix-command ├── CHANGELOG.md ├── Cargo.toml ├── LICENSE-APACHE ├── LICENSE-MIT ├── src │ └── lib.rs └── tests │ ├── command.rs │ └── fixtures │ ├── generated-archives │ └── .gitignore │ └── win_path_lookup.sh ├── gix-commitgraph ├── CHANGELOG.md ├── Cargo.toml ├── LICENSE-APACHE ├── LICENSE-MIT ├── fuzz │ ├── .gitignore │ ├── Cargo.toml │ └── fuzz_targets │ │ └── fuzz_file.rs ├── src │ ├── access.rs │ ├── file │ │ ├── access.rs │ │ ├── commit.rs │ │ ├── init.rs │ │ ├── mod.rs │ │ └── verify.rs │ ├── init.rs │ ├── lib.rs │ └── verify.rs └── tests │ ├── access │ └── mod.rs │ ├── commitgraph.rs │ └── fixtures │ ├── generated-archives │ ├── generation_number_overflow.tar │ ├── octopus_merges.tar │ ├── single_commit.tar │ ├── single_commit_huge_dates.tar │ ├── single_parent.tar │ ├── single_parent_huge_dates.tar │ └── two_parents.tar │ ├── generation_number_overflow.sh │ ├── octopus_merges.sh │ ├── single_commit.sh │ ├── single_commit_huge_dates.sh │ ├── single_parent.sh │ ├── split_chain.sh │ └── two_parents.sh ├── gix-config-value ├── CHANGELOG.md ├── Cargo.toml ├── LICENSE-APACHE ├── LICENSE-MIT ├── fuzz │ ├── .gitignore │ ├── Cargo.toml │ └── fuzz_targets │ │ ├── fuzz_value.dict │ │ └── fuzz_value.rs ├── src │ ├── boolean.rs │ ├── color.rs │ ├── integer.rs │ ├── lib.rs │ ├── path.rs │ └── types.rs └── tests │ └── value │ ├── boolean.rs │ ├── color.rs │ ├── integer.rs │ ├── main.rs │ └── path.rs ├── gix-config ├── .gitignore ├── .vscode │ └── settings.json ├── CHANGELOG.md ├── Cargo.toml ├── LICENSE-APACHE ├── LICENSE-MIT ├── README.md ├── benches │ └── large_config_file.rs ├── fuzz │ ├── .gitignore │ ├── Cargo.toml │ └── fuzz_targets │ │ ├── fuzz_file.dict │ │ ├── fuzz_file.rs │ │ ├── fuzz_file_corpus_builder.sh │ │ └── parse.rs ├── src │ ├── file │ │ ├── access │ │ │ ├── comfort.rs │ │ │ ├── mod.rs │ │ │ ├── mutate.rs │ │ │ ├── raw.rs │ │ │ └── read_only.rs │ │ ├── impls.rs │ │ ├── includes │ │ │ ├── mod.rs │ │ │ └── types.rs │ │ ├── init │ │ │ ├── comfort.rs │ │ │ ├── from_env.rs │ │ │ ├── from_paths.rs │ │ │ ├── mod.rs │ │ │ └── types.rs │ │ ├── meta.rs │ │ ├── mod.rs │ │ ├── mutable │ │ │ ├── mod.rs │ │ │ ├── multi_value.rs │ │ │ ├── section.rs │ │ │ └── value.rs │ │ ├── section │ │ │ ├── body.rs │ │ │ └── mod.rs │ │ ├── tests.rs │ │ ├── util.rs │ │ └── write.rs │ ├── key.rs │ ├── lib.rs │ ├── lookup.rs │ ├── parse │ │ ├── comment.rs │ │ ├── error.rs │ │ ├── event.rs │ │ ├── events.rs │ │ ├── mod.rs │ │ ├── nom │ │ │ ├── mod.rs │ │ │ └── tests.rs │ │ ├── section │ │ │ ├── header.rs │ │ │ ├── mod.rs │ │ │ └── unvalidated.rs │ │ └── tests.rs │ ├── source.rs │ ├── types.rs │ └── value │ │ ├── mod.rs │ │ └── normalize.rs └── tests │ ├── .gitattributes │ ├── Cargo.toml │ ├── config │ ├── file │ │ ├── access │ │ │ ├── mod.rs │ │ │ ├── mutate.rs │ │ │ ├── raw │ │ │ │ ├── mod.rs │ │ │ │ ├── raw_multi_value.rs │ │ │ │ ├── raw_value.rs │ │ │ │ ├── set_existing_raw_value.rs │ │ │ │ └── set_raw_value.rs │ │ │ └── read_only.rs │ │ ├── impls │ │ │ └── mod.rs │ │ ├── init │ │ │ ├── comfort.rs │ │ │ ├── from_env.rs │ │ │ ├── from_paths │ │ │ │ ├── includes │ │ │ │ │ ├── conditional │ │ │ │ │ │ ├── gitdir │ │ │ │ │ │ │ ├── mod.rs │ │ │ │ │ │ │ └── util.rs │ │ │ │ │ │ ├── hasconfig.rs │ │ │ │ │ │ ├── mod.rs │ │ │ │ │ │ └── onbranch.rs │ │ │ │ │ └── unconditional.rs │ │ │ │ └── mod.rs │ │ │ ├── from_str.rs │ │ │ └── mod.rs │ │ ├── mod.rs │ │ ├── mutable │ │ │ ├── mod.rs │ │ │ ├── multi_value.rs │ │ │ ├── section.rs │ │ │ └── value.rs │ │ ├── resolve_includes.rs │ │ └── write.rs │ ├── key │ │ └── mod.rs │ ├── mod.rs │ ├── parse │ │ ├── error.rs │ │ ├── from_bytes.rs │ │ ├── mod.rs │ │ └── section.rs │ ├── source │ │ └── mod.rs │ └── value │ │ ├── mod.rs │ │ └── normalize.rs │ ├── fixtures │ ├── clusterfuzz-testcase-minimized-gix-config-parse-6431708583690240 │ ├── config_with_worktree_extension.sh │ ├── fuzzed │ │ ├── .gitattributes │ │ ├── long-parsetime.config │ │ ├── mem-amplification.config │ │ └── stackoverflow-01.config │ ├── generated-archives │ │ ├── .gitignore │ │ ├── config_with_worktree_extension.tar │ │ └── hasconfig.tar │ ├── hasconfig.sh │ ├── make_config_repo.sh │ ├── multi-core.txt │ └── repo-config.crlf │ └── mem.rs ├── gix-credentials ├── CHANGELOG.md ├── Cargo.toml ├── LICENSE-APACHE ├── LICENSE-MIT ├── examples │ ├── custom-helper.rs │ ├── git-credential-lite.rs │ └── invoke-git-credential.rs ├── src │ ├── helper │ │ ├── cascade.rs │ │ ├── invoke.rs │ │ └── mod.rs │ ├── lib.rs │ ├── program │ │ ├── main.rs │ │ └── mod.rs │ └── protocol │ │ ├── context │ │ ├── mod.rs │ │ └── serde.rs │ │ └── mod.rs └── tests │ ├── credentials.rs │ ├── fixtures │ ├── all-but-credentials.sh │ ├── custom-helper.sh │ ├── expired.sh │ ├── fail.sh │ ├── last-pass.sh │ ├── oauth-token.sh │ ├── password.sh │ ├── reflect.sh │ ├── url.sh │ └── username.sh │ ├── helper │ ├── cascade.rs │ ├── context.rs │ ├── invoke.rs │ └── mod.rs │ ├── program │ ├── from_custom_definition.rs │ └── mod.rs │ └── protocol │ ├── context.rs │ └── mod.rs ├── gix-date ├── CHANGELOG.md ├── Cargo.toml ├── LICENSE-APACHE ├── LICENSE-MIT ├── fuzz │ ├── .gitignore │ ├── Cargo.toml │ └── fuzz_targets │ │ └── parse.rs ├── src │ ├── lib.rs │ ├── parse.rs │ └── time │ │ ├── format.rs │ │ ├── init.rs │ │ ├── mod.rs │ │ └── write.rs └── tests │ ├── date.rs │ ├── fixtures │ ├── generate_git_date_baseline.sh │ └── generated-archives │ │ └── generate_git_date_baseline.tar │ └── time │ ├── baseline.rs │ ├── format.rs │ ├── mod.rs │ └── parse.rs ├── gix-diff ├── CHANGELOG.md ├── Cargo.toml ├── LICENSE-APACHE ├── LICENSE-MIT ├── src │ ├── blob │ │ ├── mod.rs │ │ ├── pipeline.rs │ │ ├── platform.rs │ │ └── unified_diff.rs │ ├── index │ │ ├── change.rs │ │ ├── function.rs │ │ └── mod.rs │ ├── lib.rs │ ├── rewrites │ │ ├── mod.rs │ │ └── tracker.rs │ ├── tree │ │ ├── function.rs │ │ ├── mod.rs │ │ ├── recorder.rs │ │ └── visit.rs │ └── tree_with_rewrites │ │ ├── change.rs │ │ ├── function.rs │ │ └── mod.rs └── tests │ ├── Cargo.toml │ ├── diff │ ├── blob │ │ ├── mod.rs │ │ ├── pipeline.rs │ │ ├── platform.rs │ │ └── unified_diff.rs │ ├── index.rs │ ├── main.rs │ ├── rewrites │ │ ├── mod.rs │ │ └── tracker.rs │ ├── tree.rs │ └── tree_with_rewrites.rs │ └── fixtures │ ├── generated-archives │ ├── make_blob_repo.tar │ ├── make_diff_for_rewrites_repo.tar │ ├── make_diff_repo.tar │ └── make_diff_repo_a.tar │ ├── make_blob_repo.sh │ ├── make_diff_for_rewrites_repo.sh │ └── make_diff_repo.sh ├── gix-dir ├── CHANGELOG.md ├── Cargo.toml ├── LICENSE-APACHE ├── LICENSE-MIT ├── src │ ├── entry.rs │ ├── lib.rs │ └── walk │ │ ├── classify.rs │ │ ├── function.rs │ │ ├── mod.rs │ │ └── readdir.rs └── tests │ ├── dir │ ├── main.rs │ └── walk.rs │ ├── dir_cwd.rs │ ├── fixtures │ ├── fifo.sh │ ├── generated-archives │ │ └── .gitignore │ ├── many-symlinks.sh │ └── many.sh │ └── walk_utils │ └── mod.rs ├── gix-discover ├── CHANGELOG.md ├── Cargo.toml ├── LICENSE-APACHE ├── LICENSE-MIT ├── src │ ├── is.rs │ ├── lib.rs │ ├── parse.rs │ ├── path.rs │ ├── repository.rs │ └── upwards │ │ ├── mod.rs │ │ ├── types.rs │ │ └── util.rs └── tests │ ├── discover │ ├── is_git.rs │ ├── main.rs │ ├── parse.rs │ ├── path.rs │ └── upwards │ │ ├── ceiling_dirs.rs │ │ └── mod.rs │ ├── fixtures │ ├── generated-archives │ │ ├── .gitignore │ │ ├── make_exfat_repo_darwin.tar │ │ ├── make_reftable_repo.tar │ │ └── make_submodules.tar │ ├── make_basic_repo.sh │ ├── make_exfat_repo_darwin.sh │ ├── make_reftable_repo.sh │ └── make_submodules.sh │ └── isolated.rs ├── gix-features ├── CHANGELOG.md ├── Cargo.toml ├── LICENSE-APACHE ├── LICENSE-MIT ├── src │ ├── cache.rs │ ├── decode.rs │ ├── fs.rs │ ├── hash.rs │ ├── interrupt.rs │ ├── io.rs │ ├── lib.rs │ ├── parallel │ │ ├── eager_iter.rs │ │ ├── in_order.rs │ │ ├── in_parallel.rs │ │ ├── mod.rs │ │ ├── reduce.rs │ │ └── serial.rs │ ├── progress.rs │ ├── threading.rs │ └── zlib │ │ ├── mod.rs │ │ └── stream │ │ ├── deflate │ │ ├── mod.rs │ │ └── tests.rs │ │ ├── inflate.rs │ │ └── mod.rs └── tests │ ├── features.rs │ ├── parallel │ ├── in_order_iter.rs │ └── mod.rs │ ├── parallel_shared.rs │ ├── parallel_shared_threaded.rs │ ├── parallel_threaded.rs │ ├── pipe.rs │ └── trace │ └── mod.rs ├── gix-fetchhead ├── CHANGELOG.md ├── Cargo.toml ├── LICENSE-APACHE ├── LICENSE-MIT └── src │ └── lib.rs ├── gix-filter ├── CHANGELOG.md ├── Cargo.toml ├── LICENSE-APACHE ├── LICENSE-MIT ├── examples │ └── arrow.rs ├── src │ ├── driver │ │ ├── apply.rs │ │ ├── delayed.rs │ │ ├── init.rs │ │ ├── mod.rs │ │ ├── process │ │ │ ├── client.rs │ │ │ ├── mod.rs │ │ │ └── server.rs │ │ └── shutdown.rs │ ├── eol │ │ ├── convert_to_git.rs │ │ ├── convert_to_worktree.rs │ │ ├── mod.rs │ │ └── utils.rs │ ├── ident.rs │ ├── lib.rs │ ├── pipeline │ │ ├── convert.rs │ │ ├── mod.rs │ │ └── util.rs │ └── worktree │ │ ├── encode_to_git.rs │ │ ├── encode_to_worktree.rs │ │ ├── encoding.rs │ │ └── mod.rs └── tests │ ├── filter │ ├── driver.rs │ ├── eol │ │ ├── convert_to_git.rs │ │ ├── convert_to_worktree.rs │ │ └── mod.rs │ ├── ident.rs │ ├── main.rs │ ├── pipeline │ │ ├── convert_to_git.rs │ │ ├── convert_to_worktree.rs │ │ └── mod.rs │ └── worktree.rs │ └── fixtures │ ├── baseline.sh │ ├── generated-archives │ ├── .gitignore │ └── pipeline_repos.tar │ └── pipeline_repos.sh ├── gix-fs ├── CHANGELOG.md ├── Cargo.toml ├── LICENSE-APACHE ├── LICENSE-MIT ├── src │ ├── capabilities.rs │ ├── dir │ │ ├── create.rs │ │ ├── mod.rs │ │ └── remove.rs │ ├── lib.rs │ ├── read_dir.rs │ ├── snapshot.rs │ ├── stack.rs │ └── symlink.rs └── tests │ ├── current_dir.rs │ └── fs │ ├── capabilities.rs │ ├── dir │ ├── create.rs │ ├── mod.rs │ └── remove.rs │ ├── main.rs │ ├── read_dir.rs │ ├── snapshot.rs │ └── stack.rs ├── gix-fsck ├── CHANGELOG.md ├── Cargo.toml ├── LICENSE-APACHE ├── LICENSE-MIT ├── src │ └── lib.rs └── tests │ ├── connectivity │ └── mod.rs │ ├── fixtures │ ├── generated-archives │ │ └── .gitignore │ └── make_test_repos.sh │ └── fsck.rs ├── gix-glob ├── CHANGELOG.md ├── Cargo.toml ├── LICENSE-APACHE ├── LICENSE-MIT ├── src │ ├── lib.rs │ ├── parse.rs │ ├── pattern.rs │ ├── search │ │ ├── mod.rs │ │ └── pattern.rs │ └── wildmatch.rs └── tests │ ├── fixtures │ ├── fuzzed │ │ └── many-stars.pattern │ ├── generated-archives │ │ └── make_baseline.tar │ └── make_baseline.sh │ ├── glob.rs │ ├── parse │ └── mod.rs │ ├── pattern │ ├── matching.rs │ └── mod.rs │ ├── search │ ├── mod.rs │ └── pattern.rs │ └── wildmatch │ └── mod.rs ├── gix-hash ├── CHANGELOG.md ├── Cargo.toml ├── LICENSE-APACHE ├── LICENSE-MIT ├── src │ ├── hasher.rs │ ├── io.rs │ ├── kind.rs │ ├── lib.rs │ ├── object_id.rs │ ├── oid.rs │ ├── prefix.rs │ └── verify.rs └── tests │ ├── fixtures │ └── shambles │ │ ├── messageA │ │ └── messageB │ └── hash │ ├── hasher.rs │ ├── kind.rs │ ├── main.rs │ ├── object_id.rs │ ├── oid.rs │ └── prefix.rs ├── gix-hashtable ├── CHANGELOG.md ├── Cargo.toml ├── LICENSE-APACHE ├── LICENSE-MIT ├── src │ └── lib.rs └── tests │ └── hashtable.rs ├── gix-ignore ├── CHANGELOG.md ├── Cargo.toml ├── LICENSE-APACHE ├── LICENSE-MIT ├── src │ ├── lib.rs │ ├── parse.rs │ └── search.rs └── tests │ ├── fixtures │ ├── attributes │ │ └── various.txt │ ├── generated-archives │ │ └── .gitignore │ ├── ignore │ │ ├── precious.txt │ │ └── various.txt │ └── make_global_and_external_and_dir_ignores.sh │ └── ignore │ ├── main.rs │ ├── parse.rs │ └── search.rs ├── gix-index ├── CHANGELOG.md ├── Cargo.toml ├── LICENSE-APACHE ├── LICENSE-MIT ├── README.md ├── src │ ├── access │ │ ├── mod.rs │ │ └── sparse.rs │ ├── decode │ │ ├── entries.rs │ │ ├── header.rs │ │ └── mod.rs │ ├── entry │ │ ├── flags.rs │ │ ├── mod.rs │ │ ├── mode.rs │ │ ├── stat.rs │ │ └── write.rs │ ├── extension │ │ ├── decode.rs │ │ ├── end_of_index_entry │ │ │ ├── decode.rs │ │ │ ├── mod.rs │ │ │ └── write.rs │ │ ├── fs_monitor.rs │ │ ├── index_entry_offset_table.rs │ │ ├── iter.rs │ │ ├── link.rs │ │ ├── mod.rs │ │ ├── resolve_undo.rs │ │ ├── sparse.rs │ │ ├── tree │ │ │ ├── decode.rs │ │ │ ├── mod.rs │ │ │ ├── verify.rs │ │ │ └── write.rs │ │ └── untracked_cache.rs │ ├── file │ │ ├── init.rs │ │ ├── mod.rs │ │ ├── verify.rs │ │ └── write.rs │ ├── fs.rs │ ├── init.rs │ ├── lib.rs │ ├── verify.rs │ └── write.rs └── tests │ ├── Cargo.toml │ ├── fixtures │ ├── file_metadata.sh │ ├── generated-archives │ │ ├── .gitignore │ │ ├── V2_empty.tar │ │ ├── make_traverse_literal_separators.tar │ │ ├── v2.tar │ │ ├── v2_all_file_kinds.tar │ │ ├── v2_deeper_tree.tar │ │ ├── v2_icase_name_clashes.tar │ │ ├── v2_more_files.tar │ │ ├── v2_sparse_index_no_dirs.tar │ │ ├── v2_split_index.tar │ │ ├── v2_split_index_recursive.tar │ │ ├── v2_split_vs_regular_index.tar │ │ ├── v3_added_files.tar │ │ ├── v3_skip_worktree.tar │ │ ├── v3_sparse_index.tar │ │ ├── v3_sparse_index_non_cone.tar │ │ └── v4_more_files_IEOT.tar │ ├── loose_index │ │ ├── FSMN.git-index │ │ ├── REUC.git-index │ │ ├── REUC.on-90d242d36e248acfae0033274b524bfa55a947fd.git-patch │ │ ├── UNTR-with-oids.git-index │ │ ├── UNTR-with-oids.on-90d242d36e248acfae0033274b524bfa55a947fd.git-patch │ │ ├── UNTR.git-index │ │ ├── conflicting-file.git-index │ │ ├── extended-flags.git-index │ │ ├── ignore-case-realistic.git-index │ │ ├── skip_hash.git-index │ │ └── very-long-path.git-index │ ├── make_index │ │ ├── V2_empty.sh │ │ ├── v2.sh │ │ ├── v2_all_file_kinds.sh │ │ ├── v2_deeper_tree.sh │ │ ├── v2_icase_name_clashes.sh │ │ ├── v2_more_files.sh │ │ ├── v2_sparse_index_no_dirs.sh │ │ ├── v2_split_index.sh │ │ ├── v2_split_index_recursive.sh │ │ ├── v2_split_vs_regular_index.sh │ │ ├── v3_added_files.sh │ │ ├── v3_skip_worktree.sh │ │ ├── v3_sparse_index.sh │ │ ├── v3_sparse_index_non_cone.sh │ │ └── v4_more_files_IEOT.sh │ └── make_traverse_literal_separators.sh │ ├── index │ ├── access.rs │ ├── entry │ │ ├── mod.rs │ │ ├── mode.rs │ │ ├── stat.rs │ │ └── time.rs │ ├── file │ │ ├── access.rs │ │ ├── init.rs │ │ ├── mod.rs │ │ ├── read.rs │ │ └── write.rs │ ├── fs.rs │ ├── init.rs │ └── mod.rs │ └── integrate.rs ├── gix-lfs ├── CHANGELOG.md ├── Cargo.toml ├── LICENSE-APACHE ├── LICENSE-MIT └── src │ └── lib.rs ├── gix-lock ├── CHANGELOG.md ├── Cargo.toml ├── LICENSE-APACHE ├── LICENSE-MIT ├── README.md ├── src │ ├── acquire.rs │ ├── commit.rs │ ├── file.rs │ └── lib.rs └── tests │ ├── all.rs │ └── lock │ ├── file.rs │ ├── marker.rs │ └── mod.rs ├── gix-macros ├── CHANGELOG.md ├── Cargo.toml ├── LICENSE-APACHE ├── LICENSE-MIT ├── src │ ├── lib.rs │ └── momo.rs └── tests │ ├── macros.rs │ └── momo │ ├── mod.rs │ └── ux │ ├── error_if_ineffective.rs │ ├── error_if_ineffective.stderr │ ├── error_on_struct.rs │ └── error_on_struct.stderr ├── gix-mailmap ├── CHANGELOG.md ├── Cargo.toml ├── LICENSE-APACHE ├── LICENSE-MIT ├── src │ ├── entry.rs │ ├── lib.rs │ ├── parse.rs │ └── snapshot │ │ ├── entry.rs │ │ ├── mod.rs │ │ ├── signature.rs │ │ └── util.rs └── tests │ ├── fixtures │ ├── invalid.txt │ ├── overwrite.txt │ └── typical.txt │ ├── mailmap.rs │ ├── parse │ └── mod.rs │ └── snapshot │ └── mod.rs ├── gix-merge ├── CHANGELOG.md ├── Cargo.toml ├── LICENSE-APACHE ├── LICENSE-MIT ├── fuzz │ ├── .gitignore │ ├── Cargo.toml │ └── fuzz_targets │ │ └── blob.rs ├── src │ ├── blob │ │ ├── builtin_driver │ │ │ ├── binary.rs │ │ │ ├── mod.rs │ │ │ └── text │ │ │ │ ├── function.rs │ │ │ │ ├── mod.rs │ │ │ │ └── utils.rs │ │ ├── mod.rs │ │ ├── pipeline.rs │ │ └── platform │ │ │ ├── merge.rs │ │ │ ├── mod.rs │ │ │ ├── prepare_merge.rs │ │ │ ├── resource.rs │ │ │ └── set_resource.rs │ ├── commit │ │ ├── function.rs │ │ ├── mod.rs │ │ └── virtual_merge_base.rs │ ├── lib.rs │ └── tree │ │ ├── function.rs │ │ ├── mod.rs │ │ └── utils.rs └── tests │ ├── fixtures │ ├── generated-archives │ │ ├── make_blob_repo.tar │ │ ├── text-baseline.tar │ │ └── tree-baseline.tar │ ├── make_blob_repo.sh │ ├── text-baseline.sh │ └── tree-baseline.sh │ └── merge │ ├── blob │ ├── builtin_driver.rs │ ├── mod.rs │ ├── pipeline.rs │ └── platform.rs │ ├── main.rs │ └── tree │ ├── baseline.rs │ └── mod.rs ├── gix-negotiate ├── CHANGELOG.md ├── Cargo.toml ├── LICENSE-APACHE ├── LICENSE-MIT ├── src │ ├── consecutive.rs │ ├── lib.rs │ ├── noop.rs │ └── skipping.rs └── tests │ ├── baseline │ └── mod.rs │ ├── fixtures │ ├── generated-archives │ │ └── make_repos.tar │ └── make_repos.sh │ └── negotiate.rs ├── gix-note ├── CHANGELOG.md ├── Cargo.toml ├── LICENSE-APACHE ├── LICENSE-MIT └── src │ └── lib.rs ├── gix-object ├── CHANGELOG.md ├── Cargo.toml ├── LICENSE-APACHE ├── LICENSE-MIT ├── benches │ ├── decode_objects.rs │ └── edit_tree.rs ├── fuzz │ ├── .gitignore │ ├── Cargo.toml │ └── fuzz_targets │ │ ├── fuzz_commit.rs │ │ ├── fuzz_commit_corpus_builder.sh │ │ ├── fuzz_tag.rs │ │ ├── fuzz_tag_corpus_builder.sh │ │ ├── fuzz_tree.rs │ │ └── fuzz_tree_corpus_builder.sh ├── src │ ├── blob.rs │ ├── commit │ │ ├── decode.rs │ │ ├── message │ │ │ ├── body.rs │ │ │ ├── decode.rs │ │ │ └── mod.rs │ │ ├── mod.rs │ │ ├── ref_iter.rs │ │ └── write.rs │ ├── data.rs │ ├── encode.rs │ ├── find.rs │ ├── kind.rs │ ├── lib.rs │ ├── object │ │ ├── convert.rs │ │ └── mod.rs │ ├── parse.rs │ ├── tag │ │ ├── decode.rs │ │ ├── mod.rs │ │ ├── ref_iter.rs │ │ ├── write.rs │ │ └── write │ │ │ └── tests.rs │ ├── traits │ │ ├── _impls.rs │ │ ├── find.rs │ │ └── mod.rs │ └── tree │ │ ├── editor.rs │ │ ├── mod.rs │ │ ├── ref_iter.rs │ │ └── write.rs └── tests │ ├── fixtures │ ├── .gitattributes │ ├── commit │ │ ├── double-dash-date-offset.txt │ │ ├── email-with-space.txt │ │ ├── invalid-actor.txt │ │ ├── invalid-timestamp.txt │ │ ├── merge.txt │ │ ├── mergetag.txt │ │ ├── message-with-footer.txt │ │ ├── pre-epoch.txt │ │ ├── signed-singleline.txt │ │ ├── signed-whitespace.txt │ │ ├── signed-with-encoding.txt │ │ ├── signed.txt │ │ ├── subtle.txt │ │ ├── two-multiline-headers.txt │ │ ├── unsigned.txt │ │ ├── whitespace.txt │ │ └── with-encoding.txt │ ├── generated-archives │ │ └── make_trees.tar │ ├── make_trees.sh │ ├── tag │ │ ├── empty.txt │ │ ├── empty_missing_nl.txt │ │ ├── no-tagger.txt │ │ ├── signed.txt │ │ ├── tagger-without-timestamp.txt │ │ ├── whitespace.txt │ │ └── with-newlines.txt │ └── tree │ │ ├── definitely-special.tree │ │ ├── everything.tree │ │ ├── maybe-special.tree │ │ ├── special-1.tree │ │ ├── special-2.tree │ │ ├── special-3.tree │ │ ├── special-4.tree │ │ └── special-5.tree │ └── object │ ├── commit │ ├── from_bytes.rs │ ├── iter.rs │ ├── message.rs │ └── mod.rs │ ├── encode │ └── mod.rs │ ├── main.rs │ ├── object_ref │ └── mod.rs │ ├── tag │ └── mod.rs │ └── tree │ ├── editor.rs │ ├── entries.rs │ ├── entry_mode.rs │ ├── from_bytes.rs │ ├── iter.rs │ └── mod.rs ├── gix-odb ├── CHANGELOG.md ├── Cargo.toml ├── LICENSE-APACHE ├── LICENSE-MIT ├── src │ ├── alternate │ │ ├── mod.rs │ │ └── parse.rs │ ├── cache.rs │ ├── find.rs │ ├── lib.rs │ ├── memory.rs │ ├── sink.rs │ ├── store_impls │ │ ├── dynamic │ │ │ ├── access.rs │ │ │ ├── find.rs │ │ │ ├── handle.rs │ │ │ ├── header.rs │ │ │ ├── init.rs │ │ │ ├── iter.rs │ │ │ ├── load_index.rs │ │ │ ├── load_one.rs │ │ │ ├── metrics.rs │ │ │ ├── mod.rs │ │ │ ├── prefix.rs │ │ │ ├── structure.rs │ │ │ ├── types.rs │ │ │ ├── verify.rs │ │ │ └── write.rs │ │ ├── loose │ │ │ ├── find.rs │ │ │ ├── iter.rs │ │ │ ├── mod.rs │ │ │ ├── verify.rs │ │ │ └── write.rs │ │ └── mod.rs │ └── traits.rs └── tests │ ├── Cargo.toml │ ├── fixtures │ ├── generated-archives │ │ ├── .gitignore │ │ ├── make_replaced_history.tar │ │ └── make_repo_multi_index.tar │ ├── make_alternates_odb.sh │ ├── make_replaced_history.sh │ ├── make_repo_multi_index.sh │ ├── objects │ │ ├── 37 │ │ │ └── d4e6c5c48ba0d245164c4e10d5f41140cab980 │ │ ├── 59 │ │ │ └── 5dfd62fc1ad283d61bb47a24e7a1f66398f84d │ │ ├── 72 │ │ │ └── 2fe60ad4f0276d5a8121970b5bb9dccdad4ef9 │ │ ├── 96 │ │ │ └── ae868b3539f551c88fd5f02394d022581b11b0 │ │ ├── 6b │ │ │ └── a2a0ded519f737fd5b8d5ccfb141125ef3176f │ │ ├── a7 │ │ │ └── 06d7cd20fc8ce71489f34b50cf01011c104193 │ │ ├── ff │ │ │ └── a700b4aca13b80cb6b98a078e7c96804f8e0ec │ │ └── pack │ │ │ ├── pack-11fdfa9e156ab73caae3b6da867192221f2089c2.idx │ │ │ ├── pack-11fdfa9e156ab73caae3b6da867192221f2089c2.pack │ │ │ ├── pack-a2bf8e71d8c18879e499335762dd95119d93d9f1.idx │ │ │ ├── pack-a2bf8e71d8c18879e499335762dd95119d93d9f1.pack │ │ │ ├── pack-c0438c19fb16422b6bbcce24387b3264416d485b.idx │ │ │ └── pack-c0438c19fb16422b6bbcce24387b3264416d485b.pack │ ├── repo_with_loose_objects.sh │ └── repos │ │ └── small-packs.git │ │ ├── HEAD │ │ ├── config │ │ ├── description │ │ ├── info │ │ └── exclude │ │ ├── objects │ │ └── pack │ │ │ ├── 09a90be3fe6db2b49e35858c529e4b9c687b9a08.idx │ │ │ ├── 09a90be3fe6db2b49e35858c529e4b9c687b9a08.pack │ │ │ ├── 216edf2f7a671742705e6ca8a639daacfcf91217.idx │ │ │ └── 216edf2f7a671742705e6ca8a639daacfcf91217.pack │ │ └── refs │ │ └── heads │ │ └── next │ ├── integrate.rs │ └── odb │ ├── alternate │ └── mod.rs │ ├── find │ └── mod.rs │ ├── header │ └── mod.rs │ ├── memory.rs │ ├── mod.rs │ ├── regression │ └── mod.rs │ ├── sink │ └── mod.rs │ └── store │ ├── compound.rs │ ├── dynamic.rs │ ├── linked.rs │ ├── loose.rs │ └── mod.rs ├── gix-pack ├── CHANGELOG.md ├── Cargo.toml ├── LICENSE-APACHE ├── LICENSE-MIT ├── src │ ├── bundle │ │ ├── find.rs │ │ ├── init.rs │ │ ├── mod.rs │ │ └── write │ │ │ ├── error.rs │ │ │ ├── mod.rs │ │ │ └── types.rs │ ├── cache │ │ ├── delta │ │ │ ├── from_offsets.rs │ │ │ ├── mod.rs │ │ │ ├── traverse │ │ │ │ ├── mod.rs │ │ │ │ ├── resolve.rs │ │ │ │ └── util.rs │ │ │ └── tree.rs │ │ ├── lru.rs │ │ ├── mod.rs │ │ └── object.rs │ ├── data │ │ ├── delta.rs │ │ ├── entry │ │ │ ├── decode.rs │ │ │ ├── header.rs │ │ │ └── mod.rs │ │ ├── file │ │ │ ├── decode │ │ │ │ ├── entry.rs │ │ │ │ ├── header.rs │ │ │ │ └── mod.rs │ │ │ ├── init.rs │ │ │ ├── mod.rs │ │ │ └── verify.rs │ │ ├── header.rs │ │ ├── input │ │ │ ├── bytes_to_entries.rs │ │ │ ├── entries_to_bytes.rs │ │ │ ├── entry.rs │ │ │ ├── lookup_ref_delta_objects.rs │ │ │ ├── mod.rs │ │ │ └── types.rs │ │ ├── mod.rs │ │ └── output │ │ │ ├── bytes.rs │ │ │ ├── count │ │ │ ├── mod.rs │ │ │ └── objects │ │ │ │ ├── mod.rs │ │ │ │ ├── reduce.rs │ │ │ │ ├── tree.rs │ │ │ │ ├── types.rs │ │ │ │ └── util.rs │ │ │ ├── entry │ │ │ ├── iter_from_counts.rs │ │ │ └── mod.rs │ │ │ └── mod.rs │ ├── find.rs │ ├── find_traits.rs │ ├── index │ │ ├── access.rs │ │ ├── encode.rs │ │ ├── init.rs │ │ ├── mod.rs │ │ ├── traverse │ │ │ ├── error.rs │ │ │ ├── mod.rs │ │ │ ├── reduce.rs │ │ │ ├── types.rs │ │ │ ├── with_index.rs │ │ │ └── with_lookup.rs │ │ ├── util.rs │ │ ├── verify.rs │ │ └── write │ │ │ ├── error.rs │ │ │ └── mod.rs │ ├── lib.rs │ ├── multi_index │ │ ├── access.rs │ │ ├── chunk.rs │ │ ├── init.rs │ │ ├── mod.rs │ │ ├── verify.rs │ │ └── write.rs │ └── verify.rs └── tests │ ├── Cargo.toml │ ├── fixtures │ ├── generated-archives │ │ ├── make_pack_gen_repo.tar │ │ └── make_pack_gen_repo_multi_index.tar │ ├── make_pack_gen_repo.sh │ ├── make_pack_gen_repo_multi_index.sh │ └── objects │ │ ├── b8aa61be84b78d7fcff788e8d844406cc97132bf.txt │ │ ├── f139391424a8c623adadf2388caec73e5e90865b.txt │ │ ├── pack-with-forward-delta │ │ ├── pack-0bb5bc1e3d864c617c2539445c832ccdd531cd4e.idx │ │ └── pack-0bb5bc1e3d864c617c2539445c832ccdd531cd4e.pack │ │ └── pack │ │ ├── pack-11fdfa9e156ab73caae3b6da867192221f2089c2.idx │ │ ├── pack-11fdfa9e156ab73caae3b6da867192221f2089c2.pack │ │ ├── pack-a2bf8e71d8c18879e499335762dd95119d93d9f1.idx │ │ ├── pack-a2bf8e71d8c18879e499335762dd95119d93d9f1.pack │ │ ├── pack-c0438c19fb16422b6bbcce24387b3264416d485b.idx │ │ └── pack-c0438c19fb16422b6bbcce24387b3264416d485b.pack │ ├── integrate.rs │ └── pack │ ├── bundle.rs │ ├── data │ ├── file.rs │ ├── header.rs │ ├── input.rs │ ├── mod.rs │ └── output │ │ ├── count_and_entries.rs │ │ └── mod.rs │ ├── index.rs │ ├── iter.rs │ ├── mod.rs │ └── multi_index │ ├── access.rs │ ├── mod.rs │ ├── verify.rs │ └── write.rs ├── gix-packetline-blocking ├── CHANGELOG.md ├── Cargo.toml ├── LICENSE-APACHE ├── LICENSE-MIT └── src │ ├── decode.rs │ ├── encode │ ├── async_io.rs │ ├── blocking_io.rs │ └── mod.rs │ ├── lib.rs │ ├── line │ ├── async_io.rs │ ├── blocking_io.rs │ └── mod.rs │ ├── read │ ├── async_io.rs │ ├── blocking_io.rs │ ├── mod.rs │ └── sidebands │ │ ├── async_io.rs │ │ ├── blocking_io.rs │ │ └── mod.rs │ └── write │ ├── async_io.rs │ ├── blocking_io.rs │ └── mod.rs ├── gix-packetline ├── CHANGELOG.md ├── Cargo.toml ├── LICENSE-APACHE ├── LICENSE-MIT ├── src │ ├── decode.rs │ ├── encode │ │ ├── async_io.rs │ │ ├── blocking_io.rs │ │ └── mod.rs │ ├── lib.rs │ ├── line │ │ ├── async_io.rs │ │ ├── blocking_io.rs │ │ └── mod.rs │ ├── read │ │ ├── async_io.rs │ │ ├── blocking_io.rs │ │ ├── mod.rs │ │ └── sidebands │ │ │ ├── async_io.rs │ │ │ ├── blocking_io.rs │ │ │ └── mod.rs │ └── write │ │ ├── async_io.rs │ │ ├── blocking_io.rs │ │ └── mod.rs └── tests │ ├── async-packetline.rs │ ├── blocking-packetline.rs │ ├── decode │ └── mod.rs │ ├── encode │ └── mod.rs │ ├── fixtures │ ├── v1 │ │ ├── 01-clone.combined-output │ │ ├── 01-clone.combined-output-no-binary │ │ ├── 01.request │ │ └── fetch │ │ │ ├── 01-many-refs.request │ │ │ └── 01-many-refs.response │ └── v2 │ │ ├── clone.all-received │ │ └── clone.all-sent │ ├── read │ ├── mod.rs │ └── sideband.rs │ └── write │ └── mod.rs ├── gix-path ├── CHANGELOG.md ├── Cargo.toml ├── LICENSE-APACHE ├── LICENSE-MIT ├── src │ ├── convert.rs │ ├── env │ │ ├── auxiliary.rs │ │ ├── git │ │ │ ├── mod.rs │ │ │ └── tests.rs │ │ └── mod.rs │ ├── lib.rs │ ├── realpath.rs │ ├── relative_path.rs │ └── util.rs └── tests │ ├── fixtures │ ├── fuzzed │ │ └── 54k-path-components.path │ ├── generated-archives │ │ └── local_config.tar │ └── local_config.sh │ └── path │ ├── convert │ ├── mod.rs │ └── normalize.rs │ ├── env.rs │ ├── main.rs │ ├── realpath.rs │ ├── relative_path.rs │ └── util.rs ├── gix-pathspec ├── CHANGELOG.md ├── Cargo.toml ├── LICENSE-APACHE ├── LICENSE-MIT ├── README.md ├── fuzz │ ├── .gitignore │ ├── Cargo.toml │ └── fuzz_targets │ │ ├── parse.dict │ │ └── parse.rs ├── src │ ├── defaults.rs │ ├── lib.rs │ ├── parse.rs │ ├── pattern.rs │ └── search │ │ ├── init.rs │ │ ├── matching.rs │ │ └── mod.rs └── tests │ ├── defaults.rs │ ├── fixtures │ ├── generated-archives │ │ ├── match_baseline.tar │ │ ├── match_baseline_dirs.tar │ │ ├── match_baseline_files.tar │ │ └── parse_baseline.tar │ ├── match_baseline_dirs.sh │ ├── match_baseline_files.sh │ └── parse_baseline.sh │ ├── normalize │ └── mod.rs │ ├── parse │ ├── invalid.rs │ ├── mod.rs │ └── valid.rs │ ├── pathspec.rs │ └── search │ └── mod.rs ├── gix-prompt ├── CHANGELOG.md ├── Cargo.toml ├── LICENSE-APACHE ├── LICENSE-MIT ├── README.md ├── examples │ ├── askpass.rs │ ├── credentials.rs │ └── use-askpass.rs ├── src │ ├── lib.rs │ ├── types.rs │ └── unix.rs └── tests │ ├── options │ └── mod.rs │ └── prompt.rs ├── gix-protocol ├── CHANGELOG.md ├── Cargo.toml ├── LICENSE-APACHE ├── LICENSE-MIT ├── src │ ├── command.rs │ ├── fetch │ │ ├── arguments │ │ │ ├── async_io.rs │ │ │ ├── blocking_io.rs │ │ │ └── mod.rs │ │ ├── error.rs │ │ ├── function.rs │ │ ├── handshake.rs │ │ ├── mod.rs │ │ ├── negotiate.rs │ │ ├── refmap │ │ │ ├── init.rs │ │ │ └── mod.rs │ │ ├── response │ │ │ ├── async_io.rs │ │ │ ├── blocking_io.rs │ │ │ └── mod.rs │ │ └── types.rs │ ├── handshake │ │ ├── function.rs │ │ ├── mod.rs │ │ └── refs │ │ │ ├── async_io.rs │ │ │ ├── blocking_io.rs │ │ │ ├── mod.rs │ │ │ └── shared.rs │ ├── lib.rs │ ├── ls_refs.rs │ ├── remote_progress.rs │ └── util.rs └── tests │ ├── async-protocol.rs │ ├── blocking-protocol.rs │ ├── fixtures │ ├── .gitattributes │ ├── v1 │ │ ├── clone-deepen-1.response │ │ ├── clone-deepen-5.response │ │ ├── clone-empty-with-capabilities.response │ │ ├── clone-only.response │ │ ├── clone-with-keepalive.response │ │ ├── clone.response │ │ ├── fetch-no-pack.response │ │ ├── fetch-unshallow.response │ │ └── fetch.response │ └── v2 │ │ ├── clone-deepen-1.response │ │ ├── clone-deepen-5.response │ │ ├── clone-only-2.response │ │ ├── clone-only-with-keepalive.response │ │ ├── clone-only.response │ │ ├── clone-ref-in-want.response │ │ ├── clone.response │ │ ├── fetch-err-line.response │ │ ├── fetch-no-pack.response │ │ ├── fetch-unshallow.response │ │ └── fetch.response │ └── protocol │ ├── command.rs │ ├── fetch │ ├── _impl.rs │ ├── arguments.rs │ ├── mod.rs │ ├── response.rs │ ├── v1.rs │ └── v2.rs │ ├── handshake.rs │ ├── mod.rs │ └── remote_progress.rs ├── gix-quote ├── CHANGELOG.md ├── Cargo.toml ├── LICENSE-APACHE ├── LICENSE-MIT ├── src │ ├── ansi_c.rs │ ├── lib.rs │ └── single.rs └── tests │ └── quote.rs ├── gix-rebase ├── CHANGELOG.md ├── Cargo.toml ├── LICENSE-APACHE ├── LICENSE-MIT └── src │ └── lib.rs ├── gix-ref ├── CHANGELOG.md ├── Cargo.toml ├── LICENSE-APACHE ├── LICENSE-MIT ├── fuzz │ ├── .gitignore │ ├── Cargo.toml │ └── fuzz_targets │ │ ├── fuzz_log.rs │ │ ├── fuzz_names.rs │ │ └── fuzz_packed_buffer.rs ├── src │ ├── fullname.rs │ ├── lib.rs │ ├── log.rs │ ├── name.rs │ ├── namespace.rs │ ├── parse.rs │ ├── peel.rs │ ├── raw.rs │ ├── store │ │ ├── file │ │ │ ├── find.rs │ │ │ ├── log │ │ │ │ ├── iter.rs │ │ │ │ ├── line.rs │ │ │ │ └── mod.rs │ │ │ ├── loose │ │ │ │ ├── iter.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── reference │ │ │ │ │ ├── decode.rs │ │ │ │ │ ├── logiter.rs │ │ │ │ │ └── mod.rs │ │ │ │ ├── reflog.rs │ │ │ │ └── reflog │ │ │ │ │ └── create_or_update │ │ │ │ │ └── tests.rs │ │ │ ├── mod.rs │ │ │ ├── overlay_iter.rs │ │ │ ├── packed.rs │ │ │ ├── raw_ext.rs │ │ │ └── transaction │ │ │ │ ├── commit.rs │ │ │ │ ├── mod.rs │ │ │ │ └── prepare.rs │ │ ├── general │ │ │ ├── handle │ │ │ │ ├── find.rs │ │ │ │ └── mod.rs │ │ │ ├── init.rs │ │ │ └── mod.rs │ │ ├── mod.rs │ │ └── packed │ │ │ ├── buffer.rs │ │ │ ├── decode.rs │ │ │ ├── decode │ │ │ └── tests.rs │ │ │ ├── find.rs │ │ │ ├── iter.rs │ │ │ ├── mod.rs │ │ │ └── transaction.rs │ ├── target.rs │ └── transaction │ │ ├── ext.rs │ │ └── mod.rs └── tests │ ├── Cargo.toml │ ├── fixtures │ ├── generated-archives │ │ ├── .gitignore │ │ ├── make_namespaced_packed_ref_repository.tar │ │ ├── make_packed_ref_repository.tar │ │ ├── make_packed_ref_repository_for_overlay.tar │ │ ├── make_packed_refs_for_lookup_rules.tar │ │ ├── make_pristine.tar │ │ ├── make_ref_repository.tar │ │ ├── make_repo_for_1850_repro.tar │ │ ├── make_repo_for_1928_repro.tar │ │ ├── make_repo_for_reflog.tar │ │ └── make_repository_with_lots_of_packed_refs.tar │ ├── make_multi_hop_ref.sh │ ├── make_namespaced_packed_ref_repository.sh │ ├── make_packed_ref_repository.sh │ ├── make_packed_ref_repository_for_overlay.sh │ ├── make_packed_refs_for_lookup_rules.sh │ ├── make_pristine.sh │ ├── make_ref_repository.sh │ ├── make_repo_for_1850_repro.sh │ ├── make_repo_for_1928_repro.sh │ ├── make_repo_for_reflog.sh │ ├── make_repository_with_lots_of_packed_refs.sh │ ├── make_worktree_repo.sh │ └── packed-refs │ │ ├── triggers-out-of-bounds │ │ ├── unsorted │ │ └── without-header │ └── refs │ ├── file │ ├── log.rs │ ├── mod.rs │ ├── reference.rs │ ├── store │ │ ├── access.rs │ │ ├── find.rs │ │ ├── iter.rs │ │ ├── mod.rs │ │ └── reflog.rs │ ├── transaction │ │ ├── mod.rs │ │ └── prepare_and_commit │ │ │ ├── create_or_update │ │ │ ├── collisions.rs │ │ │ └── mod.rs │ │ │ └── delete.rs │ └── worktree.rs │ ├── fullname.rs │ ├── main.rs │ ├── namespace.rs │ ├── packed │ ├── find.rs │ ├── iter.rs │ ├── mod.rs │ └── open.rs │ ├── reference.rs │ ├── store.rs │ └── transaction.rs ├── gix-refspec ├── CHANGELOG.md ├── Cargo.toml ├── LICENSE-APACHE ├── LICENSE-MIT ├── README.md ├── fuzz │ ├── .gitignore │ ├── Cargo.toml │ └── fuzz_targets │ │ └── parse.rs ├── src │ ├── instruction.rs │ ├── lib.rs │ ├── match_group │ │ ├── mod.rs │ │ ├── types.rs │ │ ├── util.rs │ │ └── validate.rs │ ├── parse.rs │ ├── spec.rs │ ├── types.rs │ └── write.rs └── tests │ ├── fixtures │ ├── fuzzed │ │ └── clusterfuzz-testcase-minimized-gix-refspec-parse-4658733962887168 │ ├── generated-archives │ │ ├── .gitignore │ │ └── parse_baseline.tar │ ├── match_baseline.sh │ └── parse_baseline.sh │ └── refspec │ ├── impls.rs │ ├── main.rs │ ├── match_group.rs │ ├── matching.rs │ ├── parse │ ├── fetch.rs │ ├── invalid.rs │ ├── mod.rs │ └── push.rs │ ├── spec.rs │ └── write.rs ├── gix-revision ├── CHANGELOG.md ├── Cargo.toml ├── LICENSE-APACHE ├── LICENSE-MIT ├── README.md ├── fuzz │ ├── .gitignore │ ├── Cargo.toml │ └── fuzz_targets │ │ └── parse.rs ├── src │ ├── describe.rs │ ├── lib.rs │ ├── merge_base │ │ ├── function.rs │ │ └── mod.rs │ └── spec │ │ ├── mod.rs │ │ └── parse │ │ ├── delegate.rs │ │ ├── function.rs │ │ └── mod.rs └── tests │ ├── fixtures │ ├── generated-archives │ │ ├── make_merge_base_repos.tar │ │ ├── make_repo_with_branches.tar │ │ └── merge_base_octopus_repos.tar │ ├── make_merge_base_repos.sh │ ├── make_repo_with_branches.sh │ └── merge_base_octopus_repos.sh │ └── revision │ ├── describe │ ├── format.rs │ └── mod.rs │ ├── main.rs │ ├── merge_base │ └── mod.rs │ └── spec │ ├── display.rs │ ├── mod.rs │ └── parse │ ├── anchor │ ├── at_symbol.rs │ ├── colon_symbol.rs │ ├── describe.rs │ ├── hash.rs │ ├── mod.rs │ └── refnames.rs │ ├── kind.rs │ ├── mod.rs │ └── navigate │ ├── caret_symbol.rs │ ├── colon_symbol.rs │ ├── mod.rs │ └── tilde_symbol.rs ├── gix-revwalk ├── CHANGELOG.md ├── Cargo.toml ├── LICENSE-APACHE ├── LICENSE-MIT ├── src │ ├── graph │ │ ├── commit.rs │ │ └── mod.rs │ ├── lib.rs │ └── queue.rs └── tests │ └── revwalk.rs ├── gix-sec ├── CHANGELOG.md ├── Cargo.toml ├── LICENSE-APACHE ├── LICENSE-MIT ├── src │ ├── identity.rs │ ├── lib.rs │ ├── permission.rs │ └── trust.rs └── tests │ └── sec │ ├── identity.rs │ └── main.rs ├── gix-sequencer ├── CHANGELOG.md ├── Cargo.toml ├── LICENSE-APACHE ├── LICENSE-MIT └── src │ └── lib.rs ├── gix-shallow ├── CHANGELOG.md ├── Cargo.toml ├── LICENSE-APACHE ├── LICENSE-MIT └── src │ └── lib.rs ├── gix-status ├── CHANGELOG.md ├── Cargo.toml ├── LICENSE-APACHE ├── LICENSE-MIT ├── src │ ├── index_as_worktree │ │ ├── function.rs │ │ ├── mod.rs │ │ ├── recorder.rs │ │ ├── traits.rs │ │ └── types.rs │ ├── index_as_worktree_with_renames │ │ ├── mod.rs │ │ ├── recorder.rs │ │ └── types.rs │ ├── lib.rs │ └── stack.rs └── tests │ ├── Cargo.toml │ ├── fixtures │ ├── conflicts.sh │ ├── generated-archives │ │ ├── .gitignore │ │ ├── conflicts.tar │ │ ├── racy_git.tar │ │ ├── status_conflict.tar │ │ ├── status_intent_to_add.tar │ │ ├── status_many.tar │ │ ├── status_removed.tar │ │ └── status_submodule.tar │ ├── racy_git.sh │ ├── status_changed.sh │ ├── status_conflict.sh │ ├── status_intent_to_add.sh │ ├── status_many.sh │ ├── status_nonfile.sh │ ├── status_removed.sh │ ├── status_submodule.sh │ ├── status_unchanged.sh │ ├── status_unchanged_filter.sh │ └── symlink_stack.sh │ └── status │ ├── index_as_worktree.rs │ ├── index_as_worktree_with_renames.rs │ ├── mod.rs │ └── stack.rs ├── gix-submodule ├── CHANGELOG.md ├── Cargo.toml ├── LICENSE-APACHE ├── LICENSE-MIT ├── src │ ├── access.rs │ ├── config.rs │ ├── is_active_platform.rs │ └── lib.rs └── tests │ ├── file │ ├── baseline.rs │ └── mod.rs │ ├── fixtures │ ├── basic.sh │ └── generated-archives │ │ └── basic.tar │ └── submodule.rs ├── gix-tempfile ├── CHANGELOG.md ├── Cargo.toml ├── LICENSE-APACHE ├── LICENSE-MIT ├── README.md ├── examples │ ├── delete-tempfiles-on-sigterm-interactive.rs │ ├── delete-tempfiles-on-sigterm.rs │ └── try-deadlock-on-cleanup.rs ├── src │ ├── forksafe.rs │ ├── handle.rs │ ├── lib.rs │ ├── registry.rs │ └── signal.rs └── tests │ ├── all.rs │ ├── registry.rs │ └── tempfile │ ├── handle.rs │ └── mod.rs ├── gix-tix ├── CHANGELOG.md ├── Cargo.toml ├── LICENSE-APACHE ├── LICENSE-MIT └── src │ └── lib.rs ├── gix-trace ├── CHANGELOG.md ├── Cargo.toml ├── LICENSE-APACHE ├── LICENSE-MIT ├── src │ ├── disabled.rs │ ├── enabled.rs │ └── lib.rs └── tests │ └── trace.rs ├── gix-transport ├── CHANGELOG.md ├── Cargo.toml ├── LICENSE-APACHE ├── LICENSE-MIT ├── src │ ├── client │ │ ├── async_io │ │ │ ├── bufread_ext.rs │ │ │ ├── connect.rs │ │ │ ├── mod.rs │ │ │ ├── request.rs │ │ │ └── traits.rs │ │ ├── blocking_io │ │ │ ├── bufread_ext.rs │ │ │ ├── connect.rs │ │ │ ├── file.rs │ │ │ ├── http │ │ │ │ ├── curl │ │ │ │ │ ├── mod.rs │ │ │ │ │ └── remote.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── redirect.rs │ │ │ │ ├── reqwest │ │ │ │ │ ├── mod.rs │ │ │ │ │ └── remote.rs │ │ │ │ └── traits.rs │ │ │ ├── mod.rs │ │ │ ├── request.rs │ │ │ ├── ssh │ │ │ │ ├── mod.rs │ │ │ │ ├── program_kind.rs │ │ │ │ └── tests.rs │ │ │ └── traits.rs │ │ ├── capabilities.rs │ │ ├── git │ │ │ ├── async_io.rs │ │ │ ├── blocking_io.rs │ │ │ └── mod.rs │ │ ├── mod.rs │ │ ├── non_io_types.rs │ │ └── traits.rs │ └── lib.rs └── tests │ ├── async-transport.rs │ ├── blocking-transport-http.rs │ ├── blocking-transport.rs │ ├── client │ ├── blocking_io │ │ ├── http │ │ │ ├── mock.rs │ │ │ └── mod.rs │ │ └── mod.rs │ ├── capabilities.rs │ ├── git.rs │ └── mod.rs │ └── fixtures │ ├── http-401.response │ ├── http-404.response │ ├── http-500.response │ ├── v1 │ ├── clone.request │ ├── clone.response │ ├── http-clone.response │ ├── http-handshake.response │ ├── push.request │ └── push.response │ └── v2 │ ├── clone.request │ ├── clone.response │ ├── http-fetch.response │ ├── http-handshake-lowercase-headers.response │ ├── http-handshake-service-announced.response │ ├── http-handshake.response │ ├── http-lsrefs.response │ └── http-no-newlines-handshake.response ├── gix-traverse ├── CHANGELOG.md ├── Cargo.toml ├── LICENSE-APACHE ├── LICENSE-MIT ├── src │ ├── commit │ │ ├── mod.rs │ │ ├── simple.rs │ │ └── topo │ │ │ ├── init.rs │ │ │ ├── iter.rs │ │ │ └── mod.rs │ ├── lib.rs │ └── tree │ │ ├── breadthfirst.rs │ │ ├── depthfirst.rs │ │ ├── mod.rs │ │ └── recorder.rs └── tests │ ├── Cargo.toml │ ├── fixtures │ ├── generated-archives │ │ ├── make_repo_for_topo.tar │ │ ├── make_repos.tar │ │ ├── make_traversal_repo_for_commits_same_date.tar │ │ ├── make_traversal_repo_for_commits_with_dates.tar │ │ ├── make_traversal_repo_for_trees.tar │ │ └── make_traversal_repo_for_trees_depthfirst.tar │ ├── make_repo_for_topo.sh │ ├── make_repos.sh │ ├── make_traversal_repo_for_commits_same_date.sh │ ├── make_traversal_repo_for_commits_with_dates.sh │ ├── make_traversal_repo_for_trees.sh │ └── make_traversal_repo_for_trees_depthfirst.sh │ └── traverse │ ├── commit │ ├── mod.rs │ ├── simple.rs │ └── topo.rs │ ├── main.rs │ └── tree.rs ├── gix-tui ├── CHANGELOG.md ├── Cargo.toml ├── LICENSE-APACHE ├── LICENSE-MIT └── src │ └── main.rs ├── gix-url ├── CHANGELOG.md ├── Cargo.toml ├── LICENSE-APACHE ├── LICENSE-MIT ├── fuzz │ ├── .gitignore │ ├── Cargo.toml │ └── fuzz_targets │ │ └── parse.rs ├── src │ ├── expand_path.rs │ ├── impls.rs │ ├── lib.rs │ ├── parse.rs │ └── scheme.rs └── tests │ ├── fixtures │ ├── fuzzed │ │ ├── illegal-utf8.url │ │ ├── short-panic.url │ │ ├── very-long-abort.url │ │ ├── very-long-abort2.url │ │ ├── very-long.url │ │ ├── very-long2.url │ │ ├── very-long3.url │ │ ├── very-long4.url │ │ ├── very-long5.url │ │ └── very-long6.url │ ├── generated-archives │ │ └── .gitignore │ └── make_baseline.sh │ └── url │ ├── access.rs │ ├── baseline.rs │ ├── expand_path.rs │ ├── fuzzed.rs │ ├── main.rs │ └── parse │ ├── file.rs │ ├── http.rs │ ├── invalid.rs │ ├── mod.rs │ └── ssh.rs ├── gix-utils ├── CHANGELOG.md ├── Cargo.toml ├── LICENSE-APACHE ├── LICENSE-MIT ├── src │ ├── backoff.rs │ ├── btoi.rs │ ├── buffers.rs │ ├── lib.rs │ └── str.rs └── tests │ ├── backoff │ └── mod.rs │ ├── btoi │ └── mod.rs │ ├── buffers │ └── mod.rs │ ├── str │ └── mod.rs │ └── utils.rs ├── gix-validate ├── CHANGELOG.md ├── Cargo.toml ├── LICENSE-APACHE ├── LICENSE-MIT ├── src │ ├── lib.rs │ ├── path.rs │ ├── reference.rs │ ├── submodule.rs │ └── tag.rs └── tests │ ├── path │ └── mod.rs │ ├── reference │ └── mod.rs │ ├── submodule │ └── mod.rs │ ├── tag │ └── mod.rs │ └── validate.rs ├── gix-worktree-state ├── CHANGELOG.md ├── Cargo.toml ├── LICENSE-APACHE ├── LICENSE-MIT ├── src │ ├── checkout │ │ ├── chunk.rs │ │ ├── entry.rs │ │ ├── function.rs │ │ └── mod.rs │ └── lib.rs └── tests │ ├── Cargo.toml │ ├── fixtures │ ├── generated-archives │ │ ├── .gitignore │ │ ├── make_dangling_symlink.tar │ │ ├── make_dangling_symlink_to_windows_invalid.tar │ │ ├── make_dangling_symlink_to_windows_reserved.tar │ │ ├── make_dir_symlink.tar │ │ └── make_traverse_trees.tar │ ├── make_dangerous_symlink.sh │ ├── make_dangling_symlink.sh │ ├── make_dangling_symlink_to_windows_invalid.sh │ ├── make_dangling_symlink_to_windows_reserved.sh │ ├── make_dir_symlink.sh │ ├── make_ignorecase_collisions.sh │ ├── make_mixed.sh │ ├── make_mixed_without_submodules.sh │ ├── make_mixed_without_submodules_and_symlinks.sh │ └── make_traverse_trees.sh │ ├── state │ ├── checkout.rs │ └── mod.rs │ └── worktree.rs ├── gix-worktree-stream ├── CHANGELOG.md ├── Cargo.toml ├── LICENSE-APACHE ├── LICENSE-MIT ├── src │ ├── entry.rs │ ├── from_tree │ │ ├── mod.rs │ │ └── traverse.rs │ ├── lib.rs │ └── protocol.rs └── tests │ ├── fixtures │ ├── basic.sh │ └── generated-archives │ │ └── .gitignore │ └── stream.rs ├── gix-worktree ├── CHANGELOG.md ├── Cargo.toml ├── LICENSE-APACHE ├── LICENSE-MIT ├── src │ ├── lib.rs │ └── stack │ │ ├── delegate.rs │ │ ├── mod.rs │ │ ├── platform.rs │ │ └── state │ │ ├── attributes.rs │ │ ├── ignore.rs │ │ └── mod.rs └── tests │ ├── Cargo.toml │ ├── fixtures │ ├── generated-archives │ │ ├── .gitignore │ │ └── make_special_exclude_case.tar │ ├── make_attributes_baseline.sh │ ├── make_ignore_and_attributes_setup.sh │ ├── make_special_exclude_case.sh │ └── symlink_stack.sh │ ├── integrate.rs │ └── worktree │ ├── mod.rs │ └── stack │ ├── attributes.rs │ ├── create_directory.rs │ ├── ignore.rs │ └── mod.rs ├── gix ├── CHANGELOG.md ├── Cargo.toml ├── LICENSE-APACHE ├── LICENSE-MIT ├── examples │ ├── clone.rs │ ├── init-repo-and-commit.rs │ ├── interrupt-handler-allows-graceful-shutdown.rs │ ├── reversible-interrupt-handlers.rs │ └── stats.rs ├── src │ ├── assets │ │ └── init │ │ │ ├── HEAD │ │ │ ├── description │ │ │ ├── hooks │ │ │ ├── applypatch-msg.sample │ │ │ ├── commit-msg.sample │ │ │ ├── docs.url │ │ │ ├── fsmonitor-watchman.sample │ │ │ ├── post-update.sample │ │ │ ├── pre-applypatch.sample │ │ │ ├── pre-commit.sample │ │ │ ├── pre-merge-commit.sample │ │ │ ├── pre-push.sample │ │ │ ├── pre-rebase.sample │ │ │ └── prepare-commit-msg.sample │ │ │ └── info │ │ │ └── exclude │ ├── attribute_stack.rs │ ├── clone │ │ ├── access.rs │ │ ├── checkout.rs │ │ ├── fetch │ │ │ ├── mod.rs │ │ │ └── util.rs │ │ └── mod.rs │ ├── commit.rs │ ├── config │ │ ├── cache │ │ │ ├── access.rs │ │ │ ├── incubate.rs │ │ │ ├── init.rs │ │ │ ├── mod.rs │ │ │ └── util.rs │ │ ├── mod.rs │ │ ├── overrides.rs │ │ ├── snapshot │ │ │ ├── _impls.rs │ │ │ ├── access.rs │ │ │ ├── credential_helpers.rs │ │ │ └── mod.rs │ │ └── tree │ │ │ ├── keys.rs │ │ │ ├── mod.rs │ │ │ ├── sections │ │ │ ├── author.rs │ │ │ ├── branch.rs │ │ │ ├── checkout.rs │ │ │ ├── clone.rs │ │ │ ├── committer.rs │ │ │ ├── core.rs │ │ │ ├── credential.rs │ │ │ ├── diff.rs │ │ │ ├── extensions.rs │ │ │ ├── fetch.rs │ │ │ ├── gitoxide.rs │ │ │ ├── http.rs │ │ │ ├── index.rs │ │ │ ├── init.rs │ │ │ ├── mailmap.rs │ │ │ ├── merge.rs │ │ │ ├── mod.rs │ │ │ ├── pack.rs │ │ │ ├── protocol.rs │ │ │ ├── push.rs │ │ │ ├── remote.rs │ │ │ ├── safe.rs │ │ │ ├── ssh.rs │ │ │ ├── status.rs │ │ │ ├── url.rs │ │ │ └── user.rs │ │ │ └── traits.rs │ ├── create.rs │ ├── diff.rs │ ├── dirwalk │ │ ├── iter.rs │ │ ├── mod.rs │ │ └── options.rs │ ├── discover.rs │ ├── env.rs │ ├── ext │ │ ├── mod.rs │ │ ├── object_id.rs │ │ ├── reference.rs │ │ ├── rev_spec.rs │ │ └── tree.rs │ ├── filter.rs │ ├── head │ │ ├── log.rs │ │ ├── mod.rs │ │ └── peel.rs │ ├── id.rs │ ├── init.rs │ ├── interrupt.rs │ ├── lib.rs │ ├── mailmap.rs │ ├── merge.rs │ ├── object │ │ ├── blob.rs │ │ ├── commit.rs │ │ ├── errors.rs │ │ ├── impls.rs │ │ ├── mod.rs │ │ ├── peel.rs │ │ ├── tag.rs │ │ └── tree │ │ │ ├── diff │ │ │ ├── change.rs │ │ │ ├── for_each.rs │ │ │ └── mod.rs │ │ │ ├── editor.rs │ │ │ ├── entry.rs │ │ │ ├── mod.rs │ │ │ └── traverse.rs │ ├── open │ │ ├── mod.rs │ │ ├── options.rs │ │ ├── permissions.rs │ │ └── repository.rs │ ├── path.rs │ ├── pathspec.rs │ ├── prelude.rs │ ├── progress.rs │ ├── push.rs │ ├── reference │ │ ├── edits.rs │ │ ├── errors.rs │ │ ├── iter.rs │ │ ├── log.rs │ │ ├── mod.rs │ │ └── remote.rs │ ├── remote │ │ ├── access.rs │ │ ├── build.rs │ │ ├── connect.rs │ │ ├── connection │ │ │ ├── access.rs │ │ │ ├── fetch │ │ │ │ ├── config.rs │ │ │ │ ├── error.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── receive_pack.rs │ │ │ │ └── update_refs │ │ │ │ │ ├── mod.rs │ │ │ │ │ ├── tests.rs │ │ │ │ │ └── update.rs │ │ │ ├── mod.rs │ │ │ └── ref_map.rs │ │ ├── errors.rs │ │ ├── fetch.rs │ │ ├── init.rs │ │ ├── mod.rs │ │ ├── name.rs │ │ ├── save.rs │ │ └── url │ │ │ ├── mod.rs │ │ │ ├── rewrite.rs │ │ │ └── scheme_permission.rs │ ├── repository │ │ ├── attributes.rs │ │ ├── cache.rs │ │ ├── checkout.rs │ │ ├── config │ │ │ ├── branch.rs │ │ │ ├── mod.rs │ │ │ ├── remote.rs │ │ │ └── transport.rs │ │ ├── diff.rs │ │ ├── dirwalk.rs │ │ ├── filter.rs │ │ ├── freelist.rs │ │ ├── graph.rs │ │ ├── identity.rs │ │ ├── impls.rs │ │ ├── index.rs │ │ ├── init.rs │ │ ├── kind.rs │ │ ├── location.rs │ │ ├── mailmap.rs │ │ ├── merge.rs │ │ ├── mod.rs │ │ ├── object.rs │ │ ├── pathspec.rs │ │ ├── permissions.rs │ │ ├── reference.rs │ │ ├── remote.rs │ │ ├── revision.rs │ │ ├── shallow.rs │ │ ├── state.rs │ │ ├── submodule.rs │ │ ├── thread_safe.rs │ │ └── worktree.rs │ ├── revision │ │ ├── mod.rs │ │ ├── spec │ │ │ ├── mod.rs │ │ │ └── parse │ │ │ │ ├── delegate │ │ │ │ ├── mod.rs │ │ │ │ ├── navigate.rs │ │ │ │ └── revision.rs │ │ │ │ ├── error.rs │ │ │ │ ├── mod.rs │ │ │ │ └── types.rs │ │ └── walk.rs │ ├── shallow.rs │ ├── state.rs │ ├── status │ │ ├── index_worktree.rs │ │ ├── iter │ │ │ ├── mod.rs │ │ │ └── types.rs │ │ ├── mod.rs │ │ ├── platform.rs │ │ └── tree_index.rs │ ├── submodule │ │ ├── errors.rs │ │ └── mod.rs │ ├── tag.rs │ ├── types.rs │ ├── util.rs │ └── worktree │ │ ├── mod.rs │ │ └── proxy.rs └── tests │ ├── fixtures │ ├── assets │ │ └── jj-trackcopy-1 │ │ │ ├── 081093be2ba0d2be62d14363f43859355bee2aa2.blob │ │ │ ├── 0dcc138981223171df13d35444c7aaee4b502c6f.blob │ │ │ ├── 16ab056981c9ca40cdd4d298feb70510cc3ced37.blob │ │ │ ├── 2de73f57fc9599602e001fc6331034749b2eacb0.msg │ │ │ ├── 2de73f57fc9599602e001fc6331034749b2eacb0.tree │ │ │ ├── 3d7598b4e4c570eef701f40853ef3e3b0fb224f7.blob │ │ │ ├── 3e03295d9b4654adccb6cd625376c36d4d38fb3d.blob │ │ │ ├── 44f49aec05b7dc920cf1f1a554016e74b06ee1c8.blob │ │ │ ├── 45bb2cf6b7fa96a39c95301f619ca3e4cc3eb0f3.blob │ │ │ ├── 47bd6f4aa4a7eeef8b01ce168c6c771bdfffcbd3.msg │ │ │ ├── 47bd6f4aa4a7eeef8b01ce168c6c771bdfffcbd3.tree │ │ │ ├── 5253f0ff160e8b7001a7bd271ca4a07968ff81a3.blob │ │ │ ├── 5a052b7fb0919218b2ecddffbb341277bd443a5c.blob │ │ │ ├── 5c1985fc3c89a8d0edaedc23f76feb7f5c4cc962.blob │ │ │ ├── 85e7db4f01d8be8faa7a020647273399f815f597.blob │ │ │ ├── 8c80364c37b7fc364778efb4214575536e6a1df4.blob │ │ │ ├── 8defe631bc82bf35a53cd25083f85664516f412f.blob │ │ │ ├── 8f55dec5b81779d23539fa7146d713cc42df70f4.blob │ │ │ ├── 92853cde19b20cadd74113ea3566c87d4def591b.blob │ │ │ ├── 94f78deb408d181ccea9da574d0e45ac32a98092.blob │ │ │ ├── a008cb19a57bd44a5a054fced38384b09c9243fc.blob │ │ │ ├── a03b50a8a9c23c68d641b51b7c887ea088cd0d2b.blob │ │ │ ├── a0c0340e495fa759c0b705dd46cee322aa0d80c8.blob │ │ │ ├── ac9ad5761637cd731abe1bf4a075fedda7bfc61f.blob │ │ │ ├── b8b29cc0ca0176fafaa97c7421a10ed116bcba8a.blob │ │ │ ├── ba61cefef4328f126283f25935aab2d04ae2016e.blob │ │ │ ├── c24ae8e04f53b84e09838d232b3e8c0167ccc010.blob │ │ │ ├── cbd36dbc76760ed41c968f369b470b45c176dabe.blob │ │ │ ├── d67f782327ea286136b8532eaf9a509806a87e83.blob │ │ │ ├── e0baefc79038fed0bcf56f2d8c3588a26d5bf985.blob │ │ │ ├── e3a9ec4524d27aa7035a38fd7c5db414809623c4.blob │ │ │ ├── e7e8c4f00412aa9bc9898f396ef9a7597aa64756.blob │ │ │ ├── e7e8f15d7f4c0c50aad13b0f82a632e3d55c33c6.blob │ │ │ ├── f09e8b0e6bf963d8d6d5b578fea48ff4c9b723fb.blob │ │ │ ├── f4cb24f79ec2549a3a8a5028d4c43d953f74137d.blob │ │ │ ├── f644e4c8dd0be6fbe5493b172ce10839bcd9e25c.blob │ │ │ ├── f921d5bc423586194bd73419f9814ff072212faa.blob │ │ │ ├── fd57f61e92d4d49b4920c08c3522c066cb03ecd2.blob │ │ │ └── ff1c247d4312adb5b372c6d9ff93fa71846ca527.blob │ ├── generated-archives │ │ ├── .gitignore │ │ ├── make_am_repo.tar │ │ ├── make_basic_repo.tar │ │ ├── make_bisect_repo.tar │ │ ├── make_cherry_pick_repo.tar │ │ ├── make_cherry_pick_sequence_repo.tar │ │ ├── make_commit_describe_multiple_tags.tar │ │ ├── make_config_repo.tar │ │ ├── make_config_repos.tar │ │ ├── make_diff_repo.tar │ │ ├── make_empty_repo.tar │ │ ├── make_head_repos.tar │ │ ├── make_merge_repo.tar │ │ ├── make_packed_and_loose.tar │ │ ├── make_pre_epoch_repo.tar │ │ ├── make_rebase_i_repo.tar │ │ ├── make_references_repo.tar │ │ ├── make_reftable_repo.tar │ │ ├── make_remote_config_repos.tar │ │ ├── make_repo_with_fork_and_dates.tar │ │ ├── make_rev_parse_repo.tar │ │ ├── make_rev_spec_parse_repos.tar │ │ ├── make_revert_repo.tar │ │ ├── make_revert_sequence_repo.tar │ │ ├── make_shallow_repo.tar │ │ ├── make_status_repos.tar │ │ └── make_submodules.tar │ ├── make_am_repo.sh │ ├── make_basic_repo.sh │ ├── make_bisect_repo.sh │ ├── make_cherry_pick_repo.sh │ ├── make_cherry_pick_sequence_repo.sh │ ├── make_commit_describe_multiple_tags.sh │ ├── make_complex_shallow_repo.sh │ ├── make_config_repo.sh │ ├── make_config_repos.sh │ ├── make_core_worktree_repo.sh │ ├── make_diff_repo.sh │ ├── make_diff_repos.sh │ ├── make_empty_repo.sh │ ├── make_fetch_repos.sh │ ├── make_head_repos.sh │ ├── make_merge_repo.sh │ ├── make_packed_and_loose.sh │ ├── make_pre_epoch_repo.sh │ ├── make_rebase_i_repo.sh │ ├── make_references_repo.sh │ ├── make_reftable_repo.sh │ ├── make_remote_config_repos.sh │ ├── make_remote_repos.sh │ ├── make_repo_with_fork_and_dates.sh │ ├── make_rev_parse_repo.sh │ ├── make_rev_spec_parse_repos.sh │ ├── make_revert_repo.sh │ ├── make_revert_sequence_repo.sh │ ├── make_shallow_repo.sh │ ├── make_signatures_repo.sh │ ├── make_status_repos.sh │ ├── make_submodule_with_worktree.sh │ ├── make_submodules.sh │ ├── make_worktree_repo.sh │ ├── make_worktree_repo_with_configs.sh │ └── repo_with_untracked_files.sh │ ├── gix-init.rs │ ├── gix │ ├── clone.rs │ ├── commit.rs │ ├── config │ │ ├── mod.rs │ │ └── tree.rs │ ├── diff.rs │ ├── head.rs │ ├── id.rs │ ├── init.rs │ ├── main.rs │ ├── object │ │ ├── blob.rs │ │ ├── commit.rs │ │ ├── mod.rs │ │ └── tree │ │ │ ├── diff.rs │ │ │ └── mod.rs │ ├── reference │ │ ├── mod.rs │ │ └── remote.rs │ ├── remote │ │ ├── connect.rs │ │ ├── fetch.rs │ │ ├── mod.rs │ │ ├── ref_map.rs │ │ └── save.rs │ ├── repository │ │ ├── config │ │ │ ├── config_snapshot │ │ │ │ ├── credential_helpers.rs │ │ │ │ └── mod.rs │ │ │ ├── identity.rs │ │ │ ├── mod.rs │ │ │ ├── remote.rs │ │ │ └── transport_options.rs │ │ ├── excludes.rs │ │ ├── filter.rs │ │ ├── merge.rs │ │ ├── mod.rs │ │ ├── object.rs │ │ ├── open.rs │ │ ├── pathspec.rs │ │ ├── reference.rs │ │ ├── remote.rs │ │ ├── shallow.rs │ │ ├── state.rs │ │ ├── submodule.rs │ │ └── worktree.rs │ ├── revision │ │ ├── mod.rs │ │ └── spec │ │ │ ├── from_bytes │ │ │ ├── ambiguous.rs │ │ │ ├── mod.rs │ │ │ ├── peel.rs │ │ │ ├── reflog.rs │ │ │ ├── regex.rs │ │ │ ├── traverse.rs │ │ │ └── util.rs │ │ │ └── mod.rs │ ├── status.rs │ ├── submodule.rs │ └── util.rs │ └── interrupt.rs ├── justfile ├── rustfmt-nightly.toml ├── rustfmt.toml ├── src ├── ein.rs ├── gix.rs ├── lib.rs ├── plumbing │ ├── main.rs │ ├── mod.rs │ ├── options │ │ ├── free.rs │ │ └── mod.rs │ └── progress.rs ├── porcelain │ ├── main.rs │ ├── mod.rs │ └── options.rs ├── shared.rs └── uni.rs ├── tasks.md └── tests ├── fixtures └── packs │ ├── pack-11fdfa9e156ab73caae3b6da867192221f2089c2.idx │ ├── pack-11fdfa9e156ab73caae3b6da867192221f2089c2.pack │ ├── pack-c0438c19fb16422b6bbcce24387b3264416d485b.idx │ └── pack-c0438c19fb16422b6bbcce24387b3264416d485b.pack ├── helpers.sh ├── it ├── Cargo.lock ├── Cargo.toml └── src │ ├── args.rs │ ├── commands │ ├── check_mode.rs │ ├── copy_royal.rs │ ├── env.rs │ ├── git_to_sh.rs │ └── mod.rs │ └── main.rs ├── journey.sh ├── journey ├── ein.sh └── gix.sh ├── snapshots ├── panic-behaviour │ ├── expected-failure │ ├── expected-failure-in-thread │ └── expected-failure-in-thread-with-progress ├── plumbing │ ├── commit-graph │ │ └── verify │ │ │ ├── statistics-json-success │ │ │ └── statistics-success │ ├── no-repo │ │ └── pack │ │ │ ├── clone │ │ │ ├── fail-ambiguous-host │ │ │ ├── fail-ambiguous-path │ │ │ └── fail-ambiguous-username │ │ │ │ ├── explicit-ssh │ │ │ │ └── implicit-ssh │ │ │ ├── explode │ │ │ ├── broken-delete-pack-to-sink-failure │ │ │ ├── broken-delete-pack-to-sink-skip-checks-success │ │ │ ├── broken-with-objects-dir-skip-checks-success-tree │ │ │ ├── broken-with-objects-dir-skip-checks-success-tree-miniz-oxide │ │ │ ├── broken-with-objects-dir-skip-checks-success-tree-miniz-oxide-max │ │ │ ├── broken-with-objects-dir-skip-checks-success-tree-zlib-ng │ │ │ ├── missing-objects-dir-fail │ │ │ ├── to-sink-delete-pack-success │ │ │ ├── to-sink-success │ │ │ ├── with-objects-dir-success │ │ │ └── with-objects-dir-success-tree │ │ │ ├── index │ │ │ └── create │ │ │ │ ├── no-output-dir-as-json-success │ │ │ │ ├── no-output-dir-success │ │ │ │ ├── output-dir-content │ │ │ │ ├── output-dir-restore-as-json-success │ │ │ │ ├── output-dir-restore-success │ │ │ │ └── output-dir-success │ │ │ ├── receive │ │ │ ├── fail-ambiguous-host │ │ │ ├── fail-ambiguous-path │ │ │ ├── fail-ambiguous-username │ │ │ │ ├── explicit-ssh │ │ │ │ └── implicit-ssh │ │ │ ├── file-v-any-no-output │ │ │ ├── file-v-any-no-output-json │ │ │ ├── file-v-any-no-output-json-p2 │ │ │ ├── file-v-any-no-output-non-existing-single-ref │ │ │ ├── file-v-any-no-output-p2 │ │ │ ├── file-v-any-no-output-single-ref │ │ │ ├── file-v-any-no-output-wanted-ref-p1 │ │ │ ├── file-v-any-with-output │ │ │ ├── file-v-any-with-output-p2 │ │ │ ├── ls-in-output-dir │ │ │ ├── pack receive-no-networking-in-small-failure │ │ │ └── repo-refs │ │ │ │ ├── HEAD │ │ │ │ └── refs │ │ │ │ ├── heads │ │ │ │ ├── dev │ │ │ │ └── main │ │ │ │ └── tags │ │ │ │ ├── annotated │ │ │ │ └── unannotated │ │ │ └── verify │ │ │ ├── index-failure │ │ │ ├── index-success │ │ │ ├── index-with-statistics-json-success │ │ │ ├── index-with-statistics-success │ │ │ ├── multi-index │ │ │ ├── fast-index-success │ │ │ ├── index-success │ │ │ ├── index-with-statistics-json-success │ │ │ └── index-with-statistics-success │ │ │ └── success │ └── repository │ │ ├── remote │ │ └── refs │ │ │ ├── file-v-any │ │ │ ├── file-v-any-json │ │ │ └── remote ref-list-no-networking-in-small-failure │ │ └── verify │ │ ├── success-format-human │ │ └── success-format-json └── porcelain │ ├── estimate-hours │ ├── all-stats-success │ ├── file-stats-success │ ├── invalid-branch-name-failure │ ├── line-stats-success │ ├── no-args-success │ ├── no-unify-identities-success │ └── show-pii-success │ ├── init │ ├── fail │ ├── fail-with-multi-element-directory │ ├── success │ └── success-with-multi-element-directory │ └── tool │ ├── find │ └── no-args-success │ ├── no-args-failure │ └── organize │ ├── directory-structure-after-organize │ ├── directory-structure-after-organize-to-new-root │ ├── execute-success │ ├── execute-success-new-root │ ├── initial-directory-structure │ └── no-args-success ├── tools ├── CHANGELOG.md ├── Cargo.lock ├── Cargo.toml ├── LICENSE-APACHE ├── LICENSE-MIT ├── src │ ├── lib.rs │ └── main.rs └── tests │ ├── env.rs │ └── umask.rs └── utilities.sh /.config/nextest.toml: -------------------------------------------------------------------------------- 1 | [profile.with-xml.junit] 2 | path = "junit.xml" 3 | -------------------------------------------------------------------------------- /.devcontainer/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG VARIANT="1" 2 | FROM mcr.microsoft.com/devcontainers/rust:${VARIANT} 3 | RUN apt update && apt install -y cmake 4 | -------------------------------------------------------------------------------- /.devcontainer/devcontainer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Rust", 3 | "build": { 4 | "dockerfile": "Dockerfile", 5 | "args": { "VARIANT": "1" } 6 | }, 7 | "customizations": { 8 | "vscode": { 9 | "extensions": [ 10 | "EditorConfig.EditorConfig", 11 | "rust-lang.rust-analyzer" 12 | ] 13 | } 14 | }, 15 | "remoteUser": "vscode" 16 | } 17 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | **/generated-archives/*.tar* filter=lfs-disabled diff=lfs merge=lfs -text 2 | 3 | # assure line feeds don't interfere with our working copy hash 4 | *.sh text eol=lf 5 | justfile text eol=lf 6 | 7 | # have GitHub include fixture-making scripts when it counts code 8 | **/tests/fixtures/**/*.sh -linguist-vendored 9 | 10 | # have GitHub treat the gix-packetline-blocking src copy as auto-generated 11 | /gix-packetline-blocking/src/**/* linguist-generated 12 | -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | github: byron 2 | open_collective: gitoxide 3 | -------------------------------------------------------------------------------- /.github/workflows/cron.yml: -------------------------------------------------------------------------------- 1 | name: cron 2 | 3 | on: 4 | schedule: 5 | - cron: '0 13,1 * * *' 6 | workflow_dispatch: 7 | 8 | permissions: 9 | contents: read 10 | 11 | jobs: 12 | stress: 13 | runs-on: ubuntu-latest 14 | 15 | steps: 16 | - uses: actions/checkout@v4 17 | - uses: Swatinem/rust-cache@v2 18 | - name: stress 19 | run: make stress 20 | -------------------------------------------------------------------------------- /.gov/info.yml: -------------------------------------------------------------------------------- 1 | governance: 2 | type: BDFL 3 | BDFL: byron 4 | open for alternatives: yes, as project matures 5 | 6 | maintainers: 7 | privileges: 8 | - push directly to 'main' branch 9 | - reviews or suggestions by other maintainers if PRs are used 10 | - co-ownership of contributed crates 11 | - receive sponsorship via GitHub from project page 12 | 13 | 14 | -------------------------------------------------------------------------------- /.mailmap: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | For now, please have a look at the section in the [README] file. 2 | 3 | [README]: https://github.com/GitoxideLabs/gitoxide#contributions 4 | -------------------------------------------------------------------------------- /FUNDING.json: -------------------------------------------------------------------------------- 1 | { 2 | "drips": { 3 | "ethereum": { 4 | "ownedBy": "0xD0d4dCFc194ec24bCc777e635289e0b10E1a7b87" 5 | } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /SECURITY.md: -------------------------------------------------------------------------------- 1 | # Security Policy 2 | 3 | ## Reporting a Vulnerability 4 | 5 | Please feel free to [draft a GitHub advisory](https://github.com/GitoxideLabs/gitoxide/security/advisories/new), and I will work with you to disclose and or resolve the issue 6 | responsibly. 7 | 8 | If this doesn't seem like the right approach or there are questions, please feel free to reach out to the email used in Sebastian Thiel's commits. 9 | 10 | Thank you. 11 | -------------------------------------------------------------------------------- /etc/corpus/json-to-jsonl.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | jq -c '.[]' "${1:?One argument that is the path to the JSON file to convert}" > "${1}l" 4 | -------------------------------------------------------------------------------- /etc/crate-structure.monopic: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/etc/crate-structure.monopic -------------------------------------------------------------------------------- /etc/docker/Dockerfile.test-cross: -------------------------------------------------------------------------------- 1 | ARG TARGET 2 | FROM ghcr.io/cross-rs/${TARGET}:latest 3 | 4 | ARG TARGET 5 | COPY customize.sh /usr/local/bin/ 6 | RUN chmod +x /usr/local/bin/customize.sh && \ 7 | /usr/local/bin/customize.sh "$TARGET" 8 | -------------------------------------------------------------------------------- /etc/gix-components.monopic: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/etc/gix-components.monopic -------------------------------------------------------------------------------- /etc/reports/22-05.md: -------------------------------------------------------------------------------- 1 | gitoxide ( main) [$?] -------------------------------------------------------------------------------- /gitoxide-core/LICENSE-APACHE: -------------------------------------------------------------------------------- 1 | ../LICENSE-APACHE -------------------------------------------------------------------------------- /gitoxide-core/LICENSE-MIT: -------------------------------------------------------------------------------- 1 | ../LICENSE-MIT -------------------------------------------------------------------------------- /gitoxide-core/src/commitgraph/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod verify; 2 | pub use verify::function::verify; 3 | -------------------------------------------------------------------------------- /gitoxide-core/src/pack/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod explode; 2 | pub mod index; 3 | pub mod multi_index; 4 | pub mod verify; 5 | 6 | #[cfg(any(feature = "async-client", feature = "blocking-client"))] 7 | pub mod receive; 8 | #[cfg(any(feature = "async-client", feature = "blocking-client"))] 9 | pub use receive::receive; 10 | 11 | pub mod create; 12 | pub use create::create; 13 | -------------------------------------------------------------------------------- /gitoxide-core/src/query/engine/mod.rs: -------------------------------------------------------------------------------- 1 | pub enum Command { 2 | TracePath { 3 | /// The repo-relative path to the file to trace 4 | spec: gix::pathspec::Pattern, 5 | }, 6 | } 7 | 8 | pub(crate) mod update; 9 | 10 | pub use update::update; 11 | 12 | mod command; 13 | -------------------------------------------------------------------------------- /gitoxide-core/src/repository/attributes/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod query; 2 | pub use query::function::query; 3 | 4 | pub mod validate_baseline; 5 | pub use validate_baseline::function::validate_baseline; 6 | -------------------------------------------------------------------------------- /gitoxide-core/src/repository/commitgraph/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod list; 2 | pub use list::function::list; 3 | 4 | pub mod verify; 5 | pub use verify::function::verify; 6 | -------------------------------------------------------------------------------- /gitoxide-core/src/repository/merge/mod.rs: -------------------------------------------------------------------------------- 1 | mod file; 2 | pub use file::file; 3 | 4 | pub mod tree; 5 | pub use tree::function::tree; 6 | 7 | mod commit; 8 | pub use commit::commit; 9 | -------------------------------------------------------------------------------- /gitoxide-core/src/repository/revision/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod list; 2 | pub use list::function::list; 3 | mod explain; 4 | pub use explain::explain; 5 | 6 | pub mod resolve; 7 | pub use resolve::function::resolve; 8 | 9 | mod previous_branches; 10 | pub use previous_branches::previous_branches; 11 | -------------------------------------------------------------------------------- /gix-actor/LICENSE-APACHE: -------------------------------------------------------------------------------- 1 | ../LICENSE-APACHE -------------------------------------------------------------------------------- /gix-actor/LICENSE-MIT: -------------------------------------------------------------------------------- 1 | ../LICENSE-MIT -------------------------------------------------------------------------------- /gix-actor/tests/actor.rs: -------------------------------------------------------------------------------- 1 | use std::path::PathBuf; 2 | 3 | pub fn fixture(path: &str) -> PathBuf { 4 | PathBuf::from("tests/fixtures").join(path) 5 | } 6 | 7 | mod identity; 8 | mod signature; 9 | -------------------------------------------------------------------------------- /gix-archive/LICENSE-APACHE: -------------------------------------------------------------------------------- 1 | ../LICENSE-APACHE -------------------------------------------------------------------------------- /gix-archive/LICENSE-MIT: -------------------------------------------------------------------------------- 1 | ../LICENSE-MIT -------------------------------------------------------------------------------- /gix-archive/tests/fixtures/generated-archives/.gitignore: -------------------------------------------------------------------------------- 1 | basic.tar 2 | -------------------------------------------------------------------------------- /gix-attributes/LICENSE-APACHE: -------------------------------------------------------------------------------- 1 | ../LICENSE-APACHE -------------------------------------------------------------------------------- /gix-attributes/LICENSE-MIT: -------------------------------------------------------------------------------- 1 | ../LICENSE-MIT -------------------------------------------------------------------------------- /gix-attributes/fuzz/.gitignore: -------------------------------------------------------------------------------- 1 | target 2 | corpus 3 | artifacts 4 | coverage 5 | 6 | # These usually involve a lot of local CPU time, keep them. 7 | $artifacts 8 | $corpus 9 | -------------------------------------------------------------------------------- /gix-attributes/tests/attributes.rs: -------------------------------------------------------------------------------- 1 | pub use gix_testtools::Result; 2 | mod assignment; 3 | mod parse; 4 | mod search; 5 | mod state; 6 | -------------------------------------------------------------------------------- /gix-attributes/tests/fixtures/attributes/various.txt: -------------------------------------------------------------------------------- 1 | # no attribute for now 2 | *.[oa] c 3 | 4 | # comment 5 | "*.html" a b=c 6 | 7 | # other comment 8 | \!foo.html x 9 | 10 | \#a/path -a 11 | /* !b 12 | -------------------------------------------------------------------------------- /gix-attributes/tests/fixtures/generated-archives/.gitignore: -------------------------------------------------------------------------------- 1 | make_attributes_baseline.tar 2 | -------------------------------------------------------------------------------- /gix-bitmap/LICENSE-APACHE: -------------------------------------------------------------------------------- 1 | ../LICENSE-APACHE -------------------------------------------------------------------------------- /gix-bitmap/LICENSE-MIT: -------------------------------------------------------------------------------- 1 | ../LICENSE-MIT -------------------------------------------------------------------------------- /gix-blame/LICENSE-APACHE: -------------------------------------------------------------------------------- 1 | ../LICENSE-APACHE -------------------------------------------------------------------------------- /gix-blame/LICENSE-MIT: -------------------------------------------------------------------------------- 1 | ../LICENSE-MIT -------------------------------------------------------------------------------- /gix-blame/tests/fixtures/generated-archives/.gitignore: -------------------------------------------------------------------------------- 1 | make_blame_repo.tar -------------------------------------------------------------------------------- /gix-chunk/LICENSE-APACHE: -------------------------------------------------------------------------------- 1 | ../LICENSE-APACHE -------------------------------------------------------------------------------- /gix-chunk/LICENSE-MIT: -------------------------------------------------------------------------------- 1 | ../LICENSE-MIT -------------------------------------------------------------------------------- /gix-command/LICENSE-APACHE: -------------------------------------------------------------------------------- 1 | ../LICENSE-APACHE -------------------------------------------------------------------------------- /gix-command/LICENSE-MIT: -------------------------------------------------------------------------------- 1 | ../LICENSE-MIT -------------------------------------------------------------------------------- /gix-command/tests/fixtures/generated-archives/.gitignore: -------------------------------------------------------------------------------- 1 | win_path_lookup.tar 2 | -------------------------------------------------------------------------------- /gix-command/tests/fixtures/win_path_lookup.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -eu -o pipefail 3 | 4 | mkdir a b c 5 | echo "#!/a/x.exe" > a/x.exe 6 | echo "#!/a/x" > a/x 7 | echo "#!/b/exe" > b/exe 8 | echo "#!/b/exe.com" > b/exe.com 9 | echo "#!/c/x.exe" > c/x.exe 10 | -------------------------------------------------------------------------------- /gix-commitgraph/LICENSE-APACHE: -------------------------------------------------------------------------------- 1 | ../LICENSE-APACHE -------------------------------------------------------------------------------- /gix-commitgraph/LICENSE-MIT: -------------------------------------------------------------------------------- 1 | ../LICENSE-MIT -------------------------------------------------------------------------------- /gix-commitgraph/fuzz/.gitignore: -------------------------------------------------------------------------------- 1 | target 2 | corpus 3 | artifacts 4 | coverage 5 | 6 | # These usually involve a lot of local CPU time, keep them. 7 | $artifacts 8 | $corpus 9 | 10 | -------------------------------------------------------------------------------- /gix-commitgraph/tests/fixtures/generated-archives/generation_number_overflow.tar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-commitgraph/tests/fixtures/generated-archives/generation_number_overflow.tar -------------------------------------------------------------------------------- /gix-commitgraph/tests/fixtures/generated-archives/octopus_merges.tar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-commitgraph/tests/fixtures/generated-archives/octopus_merges.tar -------------------------------------------------------------------------------- /gix-commitgraph/tests/fixtures/generated-archives/single_commit.tar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-commitgraph/tests/fixtures/generated-archives/single_commit.tar -------------------------------------------------------------------------------- /gix-commitgraph/tests/fixtures/generated-archives/single_commit_huge_dates.tar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-commitgraph/tests/fixtures/generated-archives/single_commit_huge_dates.tar -------------------------------------------------------------------------------- /gix-commitgraph/tests/fixtures/generated-archives/single_parent.tar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-commitgraph/tests/fixtures/generated-archives/single_parent.tar -------------------------------------------------------------------------------- /gix-commitgraph/tests/fixtures/generated-archives/single_parent_huge_dates.tar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-commitgraph/tests/fixtures/generated-archives/single_parent_huge_dates.tar -------------------------------------------------------------------------------- /gix-commitgraph/tests/fixtures/generated-archives/two_parents.tar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-commitgraph/tests/fixtures/generated-archives/two_parents.tar -------------------------------------------------------------------------------- /gix-commitgraph/tests/fixtures/single_commit.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -eu -o pipefail 3 | 4 | # The goal with this repo is to have the smallest commit-graph file possible, in the hopes that an 5 | 6 | git init -q 7 | 8 | git checkout -q -b commit 9 | git commit -q --allow-empty -m commit 10 | 11 | git commit-graph write --no-progress --reachable 12 | git repack -adq 13 | -------------------------------------------------------------------------------- /gix-commitgraph/tests/fixtures/single_parent.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -eu -o pipefail 3 | 4 | git init -q 5 | 6 | git checkout -q -b parent 7 | git commit -q --allow-empty -m parent 8 | 9 | git checkout -q -b child parent 10 | git commit -q --allow-empty -m child 11 | 12 | git commit-graph write --no-progress --reachable 13 | git repack -adq 14 | -------------------------------------------------------------------------------- /gix-commitgraph/tests/fixtures/two_parents.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -eu -o pipefail 3 | 4 | git init -q 5 | 6 | git checkout -q --orphan parent1 7 | git commit -q --allow-empty -m parent1 8 | 9 | git checkout -q --orphan parent2 10 | git commit -q --allow-empty -m parent2 11 | 12 | git checkout -q -b child parent1 13 | git merge -q --allow-unrelated-histories --no-ff -m child parent2 >/dev/null 14 | 15 | git commit-graph write --no-progress --reachable 16 | git repack -adq 17 | -------------------------------------------------------------------------------- /gix-config-value/LICENSE-APACHE: -------------------------------------------------------------------------------- 1 | ../LICENSE-APACHE -------------------------------------------------------------------------------- /gix-config-value/LICENSE-MIT: -------------------------------------------------------------------------------- 1 | ../LICENSE-MIT -------------------------------------------------------------------------------- /gix-config-value/fuzz/.gitignore: -------------------------------------------------------------------------------- 1 | target 2 | corpus 3 | artifacts 4 | coverage 5 | 6 | # These usually involve a lot of local CPU time, keep them. 7 | $artifacts 8 | $corpus 9 | -------------------------------------------------------------------------------- /gix-config-value/tests/value/main.rs: -------------------------------------------------------------------------------- 1 | use std::borrow::Cow; 2 | 3 | use bstr::{BStr, ByteSlice}; 4 | 5 | type Result = std::result::Result>; 6 | fn b(s: &str) -> &bstr::BStr { 7 | s.into() 8 | } 9 | 10 | pub fn cow_str(s: &str) -> Cow<'_, BStr> { 11 | Cow::Borrowed(s.as_bytes().as_bstr()) 12 | } 13 | 14 | mod boolean; 15 | mod color; 16 | mod integer; 17 | mod path; 18 | -------------------------------------------------------------------------------- /gix-config/.gitignore: -------------------------------------------------------------------------------- 1 | tarpaulin-report.html 2 | -------------------------------------------------------------------------------- /gix-config/.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "cSpell.words": [ 3 | "Multivar", 4 | "autocrlf", 5 | "bstr", 6 | "combinator", 7 | "gitea", 8 | "gpgsign", 9 | "implicits", 10 | "multivars", 11 | "subname" 12 | ] 13 | } -------------------------------------------------------------------------------- /gix-config/LICENSE-APACHE: -------------------------------------------------------------------------------- 1 | ../LICENSE-APACHE -------------------------------------------------------------------------------- /gix-config/LICENSE-MIT: -------------------------------------------------------------------------------- 1 | ../LICENSE-MIT -------------------------------------------------------------------------------- /gix-config/fuzz/.gitignore: -------------------------------------------------------------------------------- 1 | 2 | target 3 | corpus 4 | artifacts 5 | 6 | # These usually involve a lot of local CPU time, keep them. 7 | $artifacts 8 | $corpus 9 | -------------------------------------------------------------------------------- /gix-config/fuzz/fuzz_targets/fuzz_file.dict: -------------------------------------------------------------------------------- 1 | # A random set lookup/config pairs. 2 | "[core]" 3 | "core" 4 | 5 | "[http]" 6 | "http" 7 | 8 | "[section \"subsection\"]" 9 | "section" 10 | "subsection" 11 | 12 | # Directives 13 | "include" 14 | "includeIf" 15 | "gitdir:" 16 | "onbranch:" 17 | "hasconfig:" 18 | "remote" 19 | "path" 20 | -------------------------------------------------------------------------------- /gix-config/src/file/access/mod.rs: -------------------------------------------------------------------------------- 1 | mod comfort; 2 | mod mutate; 3 | mod raw; 4 | mod read_only; 5 | -------------------------------------------------------------------------------- /gix-config/src/value/mod.rs: -------------------------------------------------------------------------------- 1 | pub use gix_config_value::Error; 2 | 3 | mod normalize; 4 | pub use normalize::{normalize, normalize_bstr, normalize_bstring}; 5 | -------------------------------------------------------------------------------- /gix-config/tests/.gitattributes: -------------------------------------------------------------------------------- 1 | /fixtures/repo-config.crlf text eol=crlf 2 | -------------------------------------------------------------------------------- /gix-config/tests/config/file/access/mod.rs: -------------------------------------------------------------------------------- 1 | mod mutate; 2 | mod raw; 3 | mod read_only; 4 | -------------------------------------------------------------------------------- /gix-config/tests/config/file/access/raw/mod.rs: -------------------------------------------------------------------------------- 1 | mod raw_multi_value; 2 | mod raw_value; 3 | mod set_existing_raw_value; 4 | mod set_raw_value; 5 | -------------------------------------------------------------------------------- /gix-config/tests/config/file/init/from_str.rs: -------------------------------------------------------------------------------- 1 | #[test] 2 | fn empty_yields_default_file() -> crate::Result { 3 | let a: gix_config::File = "".parse()?; 4 | assert_eq!(a, gix_config::File::default()); 5 | assert_eq!(a.to_string(), ""); 6 | Ok(()) 7 | } 8 | 9 | #[test] 10 | fn whitespace_without_section_contains_front_matter() -> crate::Result { 11 | let input = " \t"; 12 | let a: gix_config::File = input.parse()?; 13 | assert_eq!(a.to_string(), input); 14 | Ok(()) 15 | } 16 | -------------------------------------------------------------------------------- /gix-config/tests/config/file/init/mod.rs: -------------------------------------------------------------------------------- 1 | mod comfort; 2 | pub mod from_env; 3 | mod from_paths; 4 | mod from_str; 5 | -------------------------------------------------------------------------------- /gix-config/tests/config/file/mutable/mod.rs: -------------------------------------------------------------------------------- 1 | mod multi_value; 2 | mod section; 3 | mod value; 4 | -------------------------------------------------------------------------------- /gix-config/tests/config/mod.rs: -------------------------------------------------------------------------------- 1 | #![allow(clippy::unnecessary_debug_formatting)] 2 | pub use gix_testtools::Result; 3 | 4 | mod file; 5 | mod key; 6 | mod parse; 7 | mod source; 8 | mod value; 9 | -------------------------------------------------------------------------------- /gix-config/tests/config/value/mod.rs: -------------------------------------------------------------------------------- 1 | mod normalize; 2 | -------------------------------------------------------------------------------- /gix-config/tests/fixtures/config_with_worktree_extension.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -eu -o pipefail 3 | 4 | git init -q main-worktree 5 | (cd main-worktree 6 | git config extensions.worktreeConfig true 7 | git config --worktree worktree.override "set in the main worktree" 8 | ) 9 | -------------------------------------------------------------------------------- /gix-config/tests/fixtures/fuzzed/.gitattributes: -------------------------------------------------------------------------------- 1 | *.config -text 2 | -------------------------------------------------------------------------------- /gix-config/tests/fixtures/fuzzed/long-parsetime.config: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-config/tests/fixtures/fuzzed/long-parsetime.config -------------------------------------------------------------------------------- /gix-config/tests/fixtures/fuzzed/mem-amplification.config: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-config/tests/fixtures/fuzzed/mem-amplification.config -------------------------------------------------------------------------------- /gix-config/tests/fixtures/fuzzed/stackoverflow-01.config: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-config/tests/fixtures/fuzzed/stackoverflow-01.config -------------------------------------------------------------------------------- /gix-config/tests/fixtures/generated-archives/.gitignore: -------------------------------------------------------------------------------- 1 | /make_config_repo.tar 2 | -------------------------------------------------------------------------------- /gix-config/tests/fixtures/multi-core.txt: -------------------------------------------------------------------------------- 1 | [core] 2 | a=b"100" 3 | [core] 4 | a=d 5 | a=f -------------------------------------------------------------------------------- /gix-config/tests/fixtures/repo-config.crlf: -------------------------------------------------------------------------------- 1 | ; hello 2 | # world 3 | 4 | [core] 5 | repositoryformatversion = 0 6 | bare = true 7 | [other] 8 | repositoryformatversion = 0 9 | 10 | bare = true 11 | 12 | # before section with newline 13 | [foo] 14 | repositoryformatversion = 0 15 | -------------------------------------------------------------------------------- /gix-credentials/LICENSE-APACHE: -------------------------------------------------------------------------------- 1 | ../LICENSE-APACHE -------------------------------------------------------------------------------- /gix-credentials/LICENSE-MIT: -------------------------------------------------------------------------------- 1 | ../LICENSE-MIT -------------------------------------------------------------------------------- /gix-credentials/tests/credentials.rs: -------------------------------------------------------------------------------- 1 | pub use gix_testtools::Result; 2 | 3 | mod helper; 4 | mod program; 5 | mod protocol; 6 | -------------------------------------------------------------------------------- /gix-credentials/tests/fixtures/all-but-credentials.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | echo protocol=ftp 4 | echo host=example.com:8080 5 | echo path=/path/to/git/ 6 | 7 | -------------------------------------------------------------------------------- /gix-credentials/tests/fixtures/custom-helper.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -eu 3 | 4 | test "$1" = get && \ 5 | echo username=user-script && \ 6 | echo password=pass-script 7 | -------------------------------------------------------------------------------- /gix-credentials/tests/fixtures/expired.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -eu 3 | 4 | test "$1" = get && \ 5 | echo username=user-expired && \ 6 | echo password=pass-expired && \ 7 | echo password_expiry_utc=1 8 | -------------------------------------------------------------------------------- /gix-credentials/tests/fixtures/fail.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | exit 42 4 | -------------------------------------------------------------------------------- /gix-credentials/tests/fixtures/last-pass.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -eu 3 | 4 | echo username=user 5 | echo password=pass 6 | echo quit=1 7 | -------------------------------------------------------------------------------- /gix-credentials/tests/fixtures/oauth-token.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -eu 3 | 4 | test "$1" = get && \ 5 | echo oauth_refresh_token=oauth-token 6 | -------------------------------------------------------------------------------- /gix-credentials/tests/fixtures/password.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | echo password=pass 4 | -------------------------------------------------------------------------------- /gix-credentials/tests/fixtures/reflect.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | cat 4 | -------------------------------------------------------------------------------- /gix-credentials/tests/fixtures/url.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | echo protocol=ftp 4 | echo host=github.com 5 | echo path=byron/gitoxide 6 | echo url=http://example.com:8080/path/to/git/ 7 | 8 | -------------------------------------------------------------------------------- /gix-credentials/tests/fixtures/username.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | echo username=user 4 | -------------------------------------------------------------------------------- /gix-credentials/tests/program/mod.rs: -------------------------------------------------------------------------------- 1 | mod from_custom_definition; 2 | -------------------------------------------------------------------------------- /gix-credentials/tests/protocol/mod.rs: -------------------------------------------------------------------------------- 1 | mod context; 2 | -------------------------------------------------------------------------------- /gix-date/LICENSE-APACHE: -------------------------------------------------------------------------------- 1 | ../LICENSE-APACHE -------------------------------------------------------------------------------- /gix-date/LICENSE-MIT: -------------------------------------------------------------------------------- 1 | ../LICENSE-MIT -------------------------------------------------------------------------------- /gix-date/fuzz/.gitignore: -------------------------------------------------------------------------------- 1 | target/ 2 | corpus/ 3 | artifacts/ 4 | coverage/ 5 | Cargo.lock 6 | 7 | # These usually involve a lot of local CPU time, keep them. 8 | $artifacts/ 9 | $corpus/ 10 | -------------------------------------------------------------------------------- /gix-date/fuzz/fuzz_targets/parse.rs: -------------------------------------------------------------------------------- 1 | #![no_main] 2 | 3 | use gix_date; 4 | use libfuzzer_sys::fuzz_target; 5 | 6 | fuzz_target!(|data: &str| { 7 | gix_date::parse(data, None).ok(); 8 | }); 9 | -------------------------------------------------------------------------------- /gix-date/tests/date.rs: -------------------------------------------------------------------------------- 1 | mod time; 2 | -------------------------------------------------------------------------------- /gix-diff/LICENSE-APACHE: -------------------------------------------------------------------------------- 1 | ../LICENSE-APACHE -------------------------------------------------------------------------------- /gix-diff/LICENSE-MIT: -------------------------------------------------------------------------------- 1 | ../LICENSE-MIT -------------------------------------------------------------------------------- /gix-diff/tests/diff/blob/mod.rs: -------------------------------------------------------------------------------- 1 | pub(crate) mod pipeline; 2 | mod platform; 3 | mod unified_diff; 4 | -------------------------------------------------------------------------------- /gix-diff/tests/fixtures/generated-archives/make_blob_repo.tar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-diff/tests/fixtures/generated-archives/make_blob_repo.tar -------------------------------------------------------------------------------- /gix-diff/tests/fixtures/generated-archives/make_diff_for_rewrites_repo.tar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-diff/tests/fixtures/generated-archives/make_diff_for_rewrites_repo.tar -------------------------------------------------------------------------------- /gix-diff/tests/fixtures/generated-archives/make_diff_repo.tar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-diff/tests/fixtures/generated-archives/make_diff_repo.tar -------------------------------------------------------------------------------- /gix-diff/tests/fixtures/generated-archives/make_diff_repo_a.tar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-diff/tests/fixtures/generated-archives/make_diff_repo_a.tar -------------------------------------------------------------------------------- /gix-diff/tests/fixtures/make_blob_repo.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -eu -o pipefail 3 | 4 | git init -q 5 | 6 | echo a > a 7 | echo b > b 8 | echo c > c 9 | echo d > d 10 | echo e > e-no-attr 11 | echo unset > unset 12 | 13 | cat <.gitattributes 14 | a diff=a 15 | b diff=b 16 | c diff=c 17 | d diff=d 18 | missing diff=missing 19 | unset -diff 20 | EOF 21 | 22 | git add . && git commit -m "init" 23 | -------------------------------------------------------------------------------- /gix-dir/LICENSE-APACHE: -------------------------------------------------------------------------------- 1 | ../LICENSE-APACHE -------------------------------------------------------------------------------- /gix-dir/LICENSE-MIT: -------------------------------------------------------------------------------- 1 | ../LICENSE-MIT -------------------------------------------------------------------------------- /gix-dir/tests/dir/main.rs: -------------------------------------------------------------------------------- 1 | pub use gix_testtools::Result; 2 | 3 | mod walk; 4 | #[path = "../walk_utils/mod.rs"] 5 | pub mod walk_utils; 6 | -------------------------------------------------------------------------------- /gix-dir/tests/fixtures/fifo.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -eu -o pipefail 3 | 4 | mkfifo top-level 5 | 6 | git init single-top-level-fifo 7 | (cd single-top-level-fifo 8 | mkfifo top 9 | ) 10 | 11 | git init two-fifos-two-files 12 | (cd two-fifos-two-files 13 | mkdir dir dir-with-file 14 | touch file dir-with-file/nested-file 15 | 16 | mkfifo top 17 | mkfifo dir/nested 18 | ) 19 | -------------------------------------------------------------------------------- /gix-dir/tests/fixtures/generated-archives/.gitignore: -------------------------------------------------------------------------------- 1 | many.tar 2 | many-symlinks.tar 3 | fifo.tar -------------------------------------------------------------------------------- /gix-discover/LICENSE-APACHE: -------------------------------------------------------------------------------- 1 | ../LICENSE-APACHE -------------------------------------------------------------------------------- /gix-discover/LICENSE-MIT: -------------------------------------------------------------------------------- 1 | ../LICENSE-MIT -------------------------------------------------------------------------------- /gix-discover/tests/discover/main.rs: -------------------------------------------------------------------------------- 1 | pub use gix_testtools::Result; 2 | 3 | mod is_git; 4 | mod parse; 5 | mod path; 6 | mod upwards; 7 | -------------------------------------------------------------------------------- /gix-discover/tests/fixtures/generated-archives/.gitignore: -------------------------------------------------------------------------------- 1 | /make_basic_repo.tar 2 | -------------------------------------------------------------------------------- /gix-discover/tests/fixtures/generated-archives/make_exfat_repo_darwin.tar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-discover/tests/fixtures/generated-archives/make_exfat_repo_darwin.tar -------------------------------------------------------------------------------- /gix-discover/tests/fixtures/generated-archives/make_reftable_repo.tar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-discover/tests/fixtures/generated-archives/make_reftable_repo.tar -------------------------------------------------------------------------------- /gix-discover/tests/fixtures/generated-archives/make_submodules.tar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-discover/tests/fixtures/generated-archives/make_submodules.tar -------------------------------------------------------------------------------- /gix-discover/tests/fixtures/make_reftable_repo.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -eu -o pipefail 3 | 4 | git init -q 5 | 6 | git checkout -b main 7 | touch this 8 | git add this 9 | git commit -q -m c1 10 | echo hello >> this 11 | git commit -q -am c2 12 | 13 | git clone --ref-format=reftable . reftable-clone 14 | -------------------------------------------------------------------------------- /gix-features/LICENSE-APACHE: -------------------------------------------------------------------------------- 1 | ../LICENSE-APACHE -------------------------------------------------------------------------------- /gix-features/LICENSE-MIT: -------------------------------------------------------------------------------- 1 | ../LICENSE-MIT -------------------------------------------------------------------------------- /gix-features/src/zlib/stream/mod.rs: -------------------------------------------------------------------------------- 1 | /// 2 | pub mod deflate; 3 | /// 4 | pub mod inflate; 5 | -------------------------------------------------------------------------------- /gix-features/tests/features.rs: -------------------------------------------------------------------------------- 1 | mod trace; 2 | -------------------------------------------------------------------------------- /gix-features/tests/parallel_shared.rs: -------------------------------------------------------------------------------- 1 | mod parallel; 2 | -------------------------------------------------------------------------------- /gix-features/tests/parallel_shared_threaded.rs: -------------------------------------------------------------------------------- 1 | mod parallel; 2 | -------------------------------------------------------------------------------- /gix-fetchhead/Cargo.toml: -------------------------------------------------------------------------------- 1 | lints.workspace = true 2 | 3 | [package] 4 | name = "gix-fetchhead" 5 | version = "0.0.0" 6 | repository = "https://github.com/GitoxideLabs/gitoxide" 7 | license = "MIT OR Apache-2.0" 8 | description = "A crate of the gitoxide project to read and write .git/FETCH_HEAD" 9 | authors = ["Sebastian Thiel "] 10 | edition = "2021" 11 | rust-version = "1.70" 12 | 13 | [lib] 14 | doctest = false 15 | 16 | [dependencies] 17 | -------------------------------------------------------------------------------- /gix-fetchhead/LICENSE-APACHE: -------------------------------------------------------------------------------- 1 | ../LICENSE-APACHE -------------------------------------------------------------------------------- /gix-fetchhead/LICENSE-MIT: -------------------------------------------------------------------------------- 1 | ../LICENSE-MIT -------------------------------------------------------------------------------- /gix-fetchhead/src/lib.rs: -------------------------------------------------------------------------------- 1 | #![deny(rust_2018_idioms)] 2 | #![forbid(unsafe_code)] 3 | -------------------------------------------------------------------------------- /gix-filter/LICENSE-APACHE: -------------------------------------------------------------------------------- 1 | ../LICENSE-APACHE -------------------------------------------------------------------------------- /gix-filter/LICENSE-MIT: -------------------------------------------------------------------------------- 1 | ../LICENSE-MIT -------------------------------------------------------------------------------- /gix-filter/tests/filter/main.rs: -------------------------------------------------------------------------------- 1 | pub(crate) mod driver; 2 | pub(crate) mod eol; 3 | mod ident; 4 | mod pipeline; 5 | mod worktree; 6 | 7 | pub use gix_testtools::Result; 8 | -------------------------------------------------------------------------------- /gix-filter/tests/fixtures/generated-archives/.gitignore: -------------------------------------------------------------------------------- 1 | /baseline.tar 2 | -------------------------------------------------------------------------------- /gix-filter/tests/fixtures/pipeline_repos.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -eu -o pipefail 3 | 4 | (mkdir all-filters && cd all-filters 5 | cat < .gitattributes 6 | * ident text=auto eol=crlf working-tree-encoding=ISO-8859-1 filter=arrow 7 | EOF 8 | ) 9 | 10 | (mkdir no-filters && cd no-filters 11 | touch .gitattributes 12 | ) 13 | 14 | (mkdir driver-only && cd driver-only 15 | cat < .gitattributes 16 | * filter=arrow 17 | EOF 18 | ) 19 | -------------------------------------------------------------------------------- /gix-fs/LICENSE-APACHE: -------------------------------------------------------------------------------- 1 | ../LICENSE-APACHE -------------------------------------------------------------------------------- /gix-fs/LICENSE-MIT: -------------------------------------------------------------------------------- 1 | ../LICENSE-MIT -------------------------------------------------------------------------------- /gix-fs/src/dir/mod.rs: -------------------------------------------------------------------------------- 1 | /// 2 | pub mod create; 3 | /// 4 | pub mod remove; 5 | -------------------------------------------------------------------------------- /gix-fs/tests/fs/dir/mod.rs: -------------------------------------------------------------------------------- 1 | mod create; 2 | mod remove; 3 | -------------------------------------------------------------------------------- /gix-fs/tests/fs/main.rs: -------------------------------------------------------------------------------- 1 | type Result = std::result::Result>; 2 | 3 | mod capabilities; 4 | mod dir; 5 | mod read_dir; 6 | mod snapshot; 7 | mod stack; 8 | -------------------------------------------------------------------------------- /gix-fsck/LICENSE-APACHE: -------------------------------------------------------------------------------- 1 | ../LICENSE-APACHE -------------------------------------------------------------------------------- /gix-fsck/LICENSE-MIT: -------------------------------------------------------------------------------- 1 | ../LICENSE-MIT -------------------------------------------------------------------------------- /gix-fsck/tests/fixtures/generated-archives/.gitignore: -------------------------------------------------------------------------------- 1 | make_test_repos.tar 2 | -------------------------------------------------------------------------------- /gix-fsck/tests/fsck.rs: -------------------------------------------------------------------------------- 1 | use gix_hash::ObjectId; 2 | 3 | pub fn hex_to_id(hex: &str) -> ObjectId { 4 | ObjectId::from_hex(hex.as_bytes()).expect("40 bytes hex") 5 | } 6 | 7 | mod connectivity; 8 | -------------------------------------------------------------------------------- /gix-glob/LICENSE-APACHE: -------------------------------------------------------------------------------- 1 | ../LICENSE-APACHE -------------------------------------------------------------------------------- /gix-glob/LICENSE-MIT: -------------------------------------------------------------------------------- 1 | ../LICENSE-MIT -------------------------------------------------------------------------------- /gix-glob/tests/fixtures/fuzzed/many-stars.pattern: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-glob/tests/fixtures/fuzzed/many-stars.pattern -------------------------------------------------------------------------------- /gix-glob/tests/glob.rs: -------------------------------------------------------------------------------- 1 | mod parse; 2 | mod pattern; 3 | mod search; 4 | mod wildmatch; 5 | -------------------------------------------------------------------------------- /gix-glob/tests/search/mod.rs: -------------------------------------------------------------------------------- 1 | mod pattern; 2 | -------------------------------------------------------------------------------- /gix-hash/LICENSE-APACHE: -------------------------------------------------------------------------------- 1 | ../LICENSE-APACHE -------------------------------------------------------------------------------- /gix-hash/LICENSE-MIT: -------------------------------------------------------------------------------- 1 | ../LICENSE-MIT -------------------------------------------------------------------------------- /gix-hash/tests/fixtures/shambles/messageA: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-hash/tests/fixtures/shambles/messageA -------------------------------------------------------------------------------- /gix-hash/tests/fixtures/shambles/messageB: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-hash/tests/fixtures/shambles/messageB -------------------------------------------------------------------------------- /gix-hash/tests/hash/main.rs: -------------------------------------------------------------------------------- 1 | use gix_hash::ObjectId; 2 | 3 | mod hasher; 4 | mod kind; 5 | mod object_id; 6 | mod oid; 7 | mod prefix; 8 | 9 | fn hex_to_id(hex: &str) -> ObjectId { 10 | ObjectId::from_hex(hex.as_bytes()).expect("40 bytes hex") 11 | } 12 | -------------------------------------------------------------------------------- /gix-hashtable/LICENSE-APACHE: -------------------------------------------------------------------------------- 1 | ../LICENSE-APACHE -------------------------------------------------------------------------------- /gix-hashtable/LICENSE-MIT: -------------------------------------------------------------------------------- 1 | ../LICENSE-MIT -------------------------------------------------------------------------------- /gix-ignore/LICENSE-APACHE: -------------------------------------------------------------------------------- 1 | ../LICENSE-APACHE -------------------------------------------------------------------------------- /gix-ignore/LICENSE-MIT: -------------------------------------------------------------------------------- 1 | ../LICENSE-MIT -------------------------------------------------------------------------------- /gix-ignore/tests/fixtures/attributes/various.txt: -------------------------------------------------------------------------------- 1 | # no attribute for now 2 | *.[oa] c 3 | 4 | # comment 5 | "*.html" a b=c 6 | 7 | # other comment 8 | \!foo.html x 9 | 10 | \#a/path -a 11 | /* !b 12 | -------------------------------------------------------------------------------- /gix-ignore/tests/fixtures/generated-archives/.gitignore: -------------------------------------------------------------------------------- 1 | make_global_and_external_and_dir_ignores.tar 2 | -------------------------------------------------------------------------------- /gix-ignore/tests/fixtures/ignore/precious.txt: -------------------------------------------------------------------------------- 1 | $.config 2 | \$starts-with-dollar 3 | # html files are now precious and won't be discarded 4 | $*.html 5 | 6 | !foo.html 7 | 8 | # this isn't allowed and ignored 9 | !$foo.html 10 | 11 | # but this is a literal !/* that is precious 12 | $!/* 13 | -------------------------------------------------------------------------------- /gix-ignore/tests/fixtures/ignore/various.txt: -------------------------------------------------------------------------------- 1 | # ignore objects and archives, anywhere in the tree. 2 | *.[oa] 3 | 4 | # ignore generated html files, 5 | *.html 6 | 7 | # except foo.html which is maintained by hand 8 | !foo.html 9 | 10 | # exclude everything except directory foo/bar 11 | /* 12 | !/foo 13 | /foo/* 14 | !/foo/bar 15 | -------------------------------------------------------------------------------- /gix-ignore/tests/ignore/main.rs: -------------------------------------------------------------------------------- 1 | pub use gix_testtools::Result; 2 | mod parse; 3 | mod search; 4 | -------------------------------------------------------------------------------- /gix-index/LICENSE-APACHE: -------------------------------------------------------------------------------- 1 | ../LICENSE-APACHE -------------------------------------------------------------------------------- /gix-index/LICENSE-MIT: -------------------------------------------------------------------------------- 1 | ../LICENSE-MIT -------------------------------------------------------------------------------- /gix-index/src/extension/sparse.rs: -------------------------------------------------------------------------------- 1 | use crate::extension::Signature; 2 | 3 | /// The signature of the sparse index extension, nothing more than an indicator at this time. 4 | pub const SIGNATURE: Signature = *b"sdir"; 5 | 6 | /// Serialize the sparse index extension to `out` 7 | pub fn write_to(mut out: impl std::io::Write) -> Result<(), std::io::Error> { 8 | out.write_all(&SIGNATURE)?; 9 | out.write_all(&0_u32.to_be_bytes())?; 10 | Ok(()) 11 | } 12 | -------------------------------------------------------------------------------- /gix-index/tests/fixtures/generated-archives/.gitignore: -------------------------------------------------------------------------------- 1 | file_metadata.tar -------------------------------------------------------------------------------- /gix-index/tests/fixtures/generated-archives/V2_empty.tar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-index/tests/fixtures/generated-archives/V2_empty.tar -------------------------------------------------------------------------------- /gix-index/tests/fixtures/generated-archives/make_traverse_literal_separators.tar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-index/tests/fixtures/generated-archives/make_traverse_literal_separators.tar -------------------------------------------------------------------------------- /gix-index/tests/fixtures/generated-archives/v2.tar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-index/tests/fixtures/generated-archives/v2.tar -------------------------------------------------------------------------------- /gix-index/tests/fixtures/generated-archives/v2_all_file_kinds.tar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-index/tests/fixtures/generated-archives/v2_all_file_kinds.tar -------------------------------------------------------------------------------- /gix-index/tests/fixtures/generated-archives/v2_deeper_tree.tar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-index/tests/fixtures/generated-archives/v2_deeper_tree.tar -------------------------------------------------------------------------------- /gix-index/tests/fixtures/generated-archives/v2_icase_name_clashes.tar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-index/tests/fixtures/generated-archives/v2_icase_name_clashes.tar -------------------------------------------------------------------------------- /gix-index/tests/fixtures/generated-archives/v2_more_files.tar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-index/tests/fixtures/generated-archives/v2_more_files.tar -------------------------------------------------------------------------------- /gix-index/tests/fixtures/generated-archives/v2_sparse_index_no_dirs.tar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-index/tests/fixtures/generated-archives/v2_sparse_index_no_dirs.tar -------------------------------------------------------------------------------- /gix-index/tests/fixtures/generated-archives/v2_split_index.tar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-index/tests/fixtures/generated-archives/v2_split_index.tar -------------------------------------------------------------------------------- /gix-index/tests/fixtures/generated-archives/v2_split_index_recursive.tar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-index/tests/fixtures/generated-archives/v2_split_index_recursive.tar -------------------------------------------------------------------------------- /gix-index/tests/fixtures/generated-archives/v2_split_vs_regular_index.tar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-index/tests/fixtures/generated-archives/v2_split_vs_regular_index.tar -------------------------------------------------------------------------------- /gix-index/tests/fixtures/generated-archives/v3_added_files.tar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-index/tests/fixtures/generated-archives/v3_added_files.tar -------------------------------------------------------------------------------- /gix-index/tests/fixtures/generated-archives/v3_skip_worktree.tar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-index/tests/fixtures/generated-archives/v3_skip_worktree.tar -------------------------------------------------------------------------------- /gix-index/tests/fixtures/generated-archives/v3_sparse_index.tar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-index/tests/fixtures/generated-archives/v3_sparse_index.tar -------------------------------------------------------------------------------- /gix-index/tests/fixtures/generated-archives/v3_sparse_index_non_cone.tar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-index/tests/fixtures/generated-archives/v3_sparse_index_non_cone.tar -------------------------------------------------------------------------------- /gix-index/tests/fixtures/generated-archives/v4_more_files_IEOT.tar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-index/tests/fixtures/generated-archives/v4_more_files_IEOT.tar -------------------------------------------------------------------------------- /gix-index/tests/fixtures/loose_index/FSMN.git-index: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-index/tests/fixtures/loose_index/FSMN.git-index -------------------------------------------------------------------------------- /gix-index/tests/fixtures/loose_index/REUC.git-index: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-index/tests/fixtures/loose_index/REUC.git-index -------------------------------------------------------------------------------- /gix-index/tests/fixtures/loose_index/UNTR-with-oids.git-index: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-index/tests/fixtures/loose_index/UNTR-with-oids.git-index -------------------------------------------------------------------------------- /gix-index/tests/fixtures/loose_index/UNTR.git-index: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-index/tests/fixtures/loose_index/UNTR.git-index -------------------------------------------------------------------------------- /gix-index/tests/fixtures/loose_index/conflicting-file.git-index: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-index/tests/fixtures/loose_index/conflicting-file.git-index -------------------------------------------------------------------------------- /gix-index/tests/fixtures/loose_index/extended-flags.git-index: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-index/tests/fixtures/loose_index/extended-flags.git-index -------------------------------------------------------------------------------- /gix-index/tests/fixtures/loose_index/ignore-case-realistic.git-index: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-index/tests/fixtures/loose_index/ignore-case-realistic.git-index -------------------------------------------------------------------------------- /gix-index/tests/fixtures/loose_index/skip_hash.git-index: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-index/tests/fixtures/loose_index/skip_hash.git-index -------------------------------------------------------------------------------- /gix-index/tests/fixtures/loose_index/very-long-path.git-index: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-index/tests/fixtures/loose_index/very-long-path.git-index -------------------------------------------------------------------------------- /gix-index/tests/fixtures/make_index/V2_empty.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -eu -o pipefail 3 | 4 | git init -q 5 | git read-tree 4b825dc642cb6eb9a060e54bf8d69288fbee4904 6 | -------------------------------------------------------------------------------- /gix-index/tests/fixtures/make_index/v2.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -eu -o pipefail 3 | 4 | export GIT_INDEX_VERSION=2 5 | git init -q 6 | git config index.threads 2 7 | 8 | touch a 9 | git add a 10 | git commit -m "empty" 11 | 12 | git rev-parse @^{tree} > head.tree 13 | -------------------------------------------------------------------------------- /gix-index/tests/fixtures/make_index/v2_more_files.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -eu -o pipefail 3 | 4 | export GIT_INDEX_VERSION=2; 5 | git init -q 6 | git config index.threads 1 7 | 8 | touch a b c 9 | mkdir d 10 | (cd d && touch a b c) 11 | 12 | git add . 13 | git commit -m "empty" 14 | 15 | git rev-parse @^{tree} > head.tree 16 | -------------------------------------------------------------------------------- /gix-index/tests/fixtures/make_index/v2_split_index.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -eu -o pipefail 3 | 4 | export GIT_INDEX_VERSION=2 5 | git init -q 6 | git config index.threads 1 7 | 8 | touch a 9 | git add a 10 | git commit -m "empty" 11 | 12 | git update-index --split-index 13 | -------------------------------------------------------------------------------- /gix-index/tests/fixtures/make_index/v2_split_index_recursive.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -eu -o pipefail 3 | 4 | export GIT_INDEX_VERSION=2 5 | git init -q 6 | git config index.threads 1 7 | 8 | touch a 9 | git add a 10 | git commit -m "empty" 11 | 12 | git update-index --split-index 13 | 14 | shared_index=".git/sharedindex.*" 15 | test -f $shared_index || \ 16 | { echo "shared index must be present in 'split' repository" && exit 42; } 17 | 18 | cp .git/index $shared_index 19 | 20 | -------------------------------------------------------------------------------- /gix-index/tests/fixtures/make_index/v3_added_files.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -eu -o pipefail 3 | 4 | git init -q 5 | 6 | touch a 7 | git add --intent-to-add a 8 | -------------------------------------------------------------------------------- /gix-index/tests/fixtures/make_index/v3_skip_worktree.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -eu -o pipefail 3 | 4 | git init -q 5 | 6 | touch a b 7 | mkdir c1 8 | (cd c1 && touch a b && mkdir c2 && cd c2 && touch a b) 9 | (cd c1 && mkdir c3 && cd c3 && touch a b) 10 | mkdir d 11 | (cd d && touch a b && mkdir c4 && cd c4 && touch a b c5) 12 | 13 | git add . 14 | git commit -m "init" 15 | 16 | git sparse-checkout set c1/c2 17 | -------------------------------------------------------------------------------- /gix-index/tests/fixtures/make_index/v3_sparse_index.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -eu -o pipefail 3 | 4 | git init -q 5 | 6 | touch a b 7 | mkdir c1 8 | (cd c1 && touch a b && mkdir c2 && cd c2 && touch a b) 9 | (cd c1 && mkdir c3 && cd c3 && touch a b) 10 | mkdir d 11 | (cd d && touch a b && mkdir c4 && cd c4 && touch a b c5) 12 | 13 | git add . 14 | git commit -m "init" 15 | 16 | git sparse-checkout set c1/c2 --sparse-index 17 | -------------------------------------------------------------------------------- /gix-index/tests/fixtures/make_index/v3_sparse_index_non_cone.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -eu -o pipefail 3 | 4 | git init -q 5 | 6 | touch a b 7 | mkdir c1 8 | (cd c1 && touch a b && mkdir c2 && cd c2 && touch a b) 9 | (cd c1 && mkdir c3 && cd c3 && touch a b) 10 | mkdir d 11 | (cd d && touch a b && mkdir c4 && cd c4 && touch a b c5) 12 | 13 | git add . 14 | git commit -m "init" 15 | 16 | git sparse-checkout set c1/c2 --no-cone 17 | -------------------------------------------------------------------------------- /gix-index/tests/fixtures/make_index/v4_more_files_IEOT.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -eu -o pipefail 3 | 4 | export GIT_INDEX_VERSION=4 5 | git init -q 6 | git config index.threads 2 7 | 8 | touch a b c 9 | mkdir d 10 | (cd d && touch a b c && mkdir last && cd last && touch 123 34 6) 11 | touch x 12 | 13 | git add . 14 | git commit -m "empty" 15 | 16 | git rev-parse @^{tree} > head.tree 17 | -------------------------------------------------------------------------------- /gix-index/tests/index/file/mod.rs: -------------------------------------------------------------------------------- 1 | mod access; 2 | mod init; 3 | mod read; 4 | mod write; 5 | -------------------------------------------------------------------------------- /gix-index/tests/integrate.rs: -------------------------------------------------------------------------------- 1 | pub use gix_testtools::Result; 2 | 3 | mod index; 4 | pub use index::*; 5 | -------------------------------------------------------------------------------- /gix-lfs/Cargo.toml: -------------------------------------------------------------------------------- 1 | lints.workspace = true 2 | 3 | [package] 4 | name = "gix-lfs" 5 | version = "0.0.0" 6 | repository = "https://github.com/GitoxideLabs/gitoxide" 7 | license = "MIT OR Apache-2.0" 8 | description = "A crate of the gitoxide project dealing with handling git large file support" 9 | authors = ["Sebastian Thiel "] 10 | edition = "2021" 11 | rust-version = "1.70" 12 | 13 | [lib] 14 | doctest = false 15 | 16 | [dependencies] 17 | -------------------------------------------------------------------------------- /gix-lfs/LICENSE-APACHE: -------------------------------------------------------------------------------- 1 | ../LICENSE-APACHE -------------------------------------------------------------------------------- /gix-lfs/LICENSE-MIT: -------------------------------------------------------------------------------- 1 | ../LICENSE-MIT -------------------------------------------------------------------------------- /gix-lfs/src/lib.rs: -------------------------------------------------------------------------------- 1 | #![deny(rust_2018_idioms)] 2 | #![forbid(unsafe_code)] 3 | -------------------------------------------------------------------------------- /gix-lock/LICENSE-APACHE: -------------------------------------------------------------------------------- 1 | ../LICENSE-APACHE -------------------------------------------------------------------------------- /gix-lock/LICENSE-MIT: -------------------------------------------------------------------------------- 1 | ../LICENSE-MIT -------------------------------------------------------------------------------- /gix-lock/README.md: -------------------------------------------------------------------------------- 1 | Use lock-files in the way git does with auto-cleanup being the most notable feature. 2 | 3 | * [x] writable lock files that can be committed to atomically replace the resource they lock 4 | * [x] read-only markers that lock a resource without the intend to overwrite it 5 | * [x] auto-removal of the lockfiles and intermediate directories on drop or on signal 6 | -------------------------------------------------------------------------------- /gix-lock/tests/all.rs: -------------------------------------------------------------------------------- 1 | type Result = std::result::Result>; 2 | 3 | mod lock; 4 | -------------------------------------------------------------------------------- /gix-lock/tests/lock/mod.rs: -------------------------------------------------------------------------------- 1 | mod file; 2 | mod marker; 3 | -------------------------------------------------------------------------------- /gix-macros/LICENSE-APACHE: -------------------------------------------------------------------------------- 1 | ../LICENSE-APACHE -------------------------------------------------------------------------------- /gix-macros/LICENSE-MIT: -------------------------------------------------------------------------------- 1 | ../LICENSE-MIT -------------------------------------------------------------------------------- /gix-macros/tests/macros.rs: -------------------------------------------------------------------------------- 1 | mod momo; 2 | -------------------------------------------------------------------------------- /gix-macros/tests/momo/ux/error_if_ineffective.rs: -------------------------------------------------------------------------------- 1 | /// If nothing is done, momo should fail. 2 | #[gix_macros::momo] 3 | fn main() {} 4 | -------------------------------------------------------------------------------- /gix-macros/tests/momo/ux/error_on_struct.rs: -------------------------------------------------------------------------------- 1 | fn main() {} 2 | 3 | /// Only functions work with momo 4 | #[gix_macros::momo] 5 | struct S; 6 | -------------------------------------------------------------------------------- /gix-macros/tests/momo/ux/error_on_struct.stderr: -------------------------------------------------------------------------------- 1 | error: expect a function 2 | --> tests/momo/ux/error_on_struct.rs:3:1 3 | | 4 | 3 | /// Only functions work with momo 5 | | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 6 | -------------------------------------------------------------------------------- /gix-mailmap/LICENSE-APACHE: -------------------------------------------------------------------------------- 1 | ../LICENSE-APACHE -------------------------------------------------------------------------------- /gix-mailmap/LICENSE-MIT: -------------------------------------------------------------------------------- 1 | ../LICENSE-MIT -------------------------------------------------------------------------------- /gix-mailmap/tests/fixtures/invalid.txt: -------------------------------------------------------------------------------- 1 | # comment 2 | 3 | 4 | A-overwritten 5 | 6 | B 7 | B-overwritten 8 | 9 | C old-C 10 | C-overwritten old-C 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /gix-mailmap/tests/fixtures/typical.txt: -------------------------------------------------------------------------------- 1 | # from the mailmap docs 2 | 3 | Joe R. Developer 4 | Joe R. Developer Joe 5 | 6 | Jane Doe 7 | Jane Doe 8 | Jane Doe Jane 9 | Jane 10 | -------------------------------------------------------------------------------- /gix-mailmap/tests/mailmap.rs: -------------------------------------------------------------------------------- 1 | mod parse; 2 | mod snapshot; 3 | -------------------------------------------------------------------------------- /gix-merge/LICENSE-APACHE: -------------------------------------------------------------------------------- 1 | ../LICENSE-APACHE -------------------------------------------------------------------------------- /gix-merge/LICENSE-MIT: -------------------------------------------------------------------------------- 1 | ../LICENSE-MIT -------------------------------------------------------------------------------- /gix-merge/fuzz/.gitignore: -------------------------------------------------------------------------------- 1 | target 2 | corpus 3 | artifacts 4 | 5 | # These usually involve a lot of local CPU time, keep them. 6 | $artifacts 7 | $corpus 8 | -------------------------------------------------------------------------------- /gix-merge/tests/fixtures/generated-archives/make_blob_repo.tar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-merge/tests/fixtures/generated-archives/make_blob_repo.tar -------------------------------------------------------------------------------- /gix-merge/tests/fixtures/generated-archives/tree-baseline.tar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-merge/tests/fixtures/generated-archives/tree-baseline.tar -------------------------------------------------------------------------------- /gix-merge/tests/fixtures/make_blob_repo.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -eu -o pipefail 3 | 4 | git init -q 5 | 6 | echo just-set > just-set 7 | echo b > b 8 | echo union > union 9 | echo e > e-no-attr 10 | echo unset > unset 11 | echo unspecified > unspecified 12 | 13 | cat <.gitattributes 14 | just-set merge conflict-marker-size=32 15 | b merge=b 16 | union merge=union 17 | missing merge=missing 18 | unset -merge 19 | unspecified !merge 20 | EOF 21 | 22 | git add . && git commit -m "init" 23 | -------------------------------------------------------------------------------- /gix-merge/tests/merge/main.rs: -------------------------------------------------------------------------------- 1 | use gix_hash::ObjectId; 2 | extern crate core; 3 | 4 | mod blob; 5 | mod tree; 6 | 7 | pub use gix_testtools::Result; 8 | 9 | fn hex_to_id(hex: &str) -> ObjectId { 10 | ObjectId::from_hex(hex.as_bytes()).expect("40 bytes hex") 11 | } 12 | -------------------------------------------------------------------------------- /gix-negotiate/LICENSE-APACHE: -------------------------------------------------------------------------------- 1 | ../LICENSE-APACHE -------------------------------------------------------------------------------- /gix-negotiate/LICENSE-MIT: -------------------------------------------------------------------------------- 1 | ../LICENSE-MIT -------------------------------------------------------------------------------- /gix-negotiate/tests/fixtures/generated-archives/make_repos.tar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-negotiate/tests/fixtures/generated-archives/make_repos.tar -------------------------------------------------------------------------------- /gix-note/Cargo.toml: -------------------------------------------------------------------------------- 1 | lints.workspace = true 2 | 3 | [package] 4 | name = "gix-note" 5 | version = "0.0.0" 6 | repository = "https://github.com/GitoxideLabs/gitoxide" 7 | license = "MIT OR Apache-2.0" 8 | description = "A crate of the gitoxide project dealing with git notes" 9 | authors = ["Sebastian Thiel "] 10 | edition = "2021" 11 | rust-version = "1.70" 12 | 13 | [lib] 14 | doctest = false 15 | 16 | [dependencies] 17 | -------------------------------------------------------------------------------- /gix-note/LICENSE-APACHE: -------------------------------------------------------------------------------- 1 | ../LICENSE-APACHE -------------------------------------------------------------------------------- /gix-note/LICENSE-MIT: -------------------------------------------------------------------------------- 1 | ../LICENSE-MIT -------------------------------------------------------------------------------- /gix-note/src/lib.rs: -------------------------------------------------------------------------------- 1 | #![deny(rust_2018_idioms)] 2 | #![forbid(unsafe_code)] 3 | -------------------------------------------------------------------------------- /gix-object/LICENSE-APACHE: -------------------------------------------------------------------------------- 1 | ../LICENSE-APACHE -------------------------------------------------------------------------------- /gix-object/LICENSE-MIT: -------------------------------------------------------------------------------- 1 | ../LICENSE-MIT -------------------------------------------------------------------------------- /gix-object/fuzz/.gitignore: -------------------------------------------------------------------------------- 1 | target 2 | corpus 3 | artifacts 4 | coverage 5 | 6 | # These usually involve a lot of local CPU time, keep them. 7 | $artifacts 8 | $corpus 9 | -------------------------------------------------------------------------------- /gix-object/fuzz/fuzz_targets/fuzz_commit.rs: -------------------------------------------------------------------------------- 1 | #![no_main] 2 | use libfuzzer_sys::fuzz_target; 3 | use std::hint::black_box; 4 | 5 | fuzz_target!(|commit: &[u8]| { 6 | _ = black_box(gix_object::CommitRef::from_bytes(commit)); 7 | _ = black_box(gix_object::CommitRefIter::from_bytes(commit)).count(); 8 | }); 9 | -------------------------------------------------------------------------------- /gix-object/fuzz/fuzz_targets/fuzz_commit_corpus_builder.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -eux -o pipefail 4 | 5 | root="$1" 6 | output_corpus="$2" 7 | fixtures_dir="$(readlink -f -- "$root/gix-object/tests/fixtures/commit")" 8 | 9 | echo "$root" 10 | echo "$fixtures_dir" 11 | 12 | zip -j "$output_corpus" "$fixtures_dir"/* 13 | -------------------------------------------------------------------------------- /gix-object/fuzz/fuzz_targets/fuzz_tag.rs: -------------------------------------------------------------------------------- 1 | #![no_main] 2 | 3 | use libfuzzer_sys::fuzz_target; 4 | use std::hint::black_box; 5 | 6 | fuzz_target!(|tag: &[u8]| { 7 | _ = black_box(gix_object::TagRef::from_bytes(tag)); 8 | _ = black_box(gix_object::TagRefIter::from_bytes(tag).count()); 9 | }); 10 | -------------------------------------------------------------------------------- /gix-object/fuzz/fuzz_targets/fuzz_tag_corpus_builder.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -eux -o pipefail 4 | 5 | root="$1" 6 | output_corpus="$2" 7 | fixtures_dir="$(readlink -f -- "$root/gix-object/tests/fixtures/tag")" 8 | 9 | echo "$root" 10 | echo "$fixtures_dir" 11 | 12 | zip -j "$output_corpus" "$fixtures_dir"/* 13 | -------------------------------------------------------------------------------- /gix-object/fuzz/fuzz_targets/fuzz_tree.rs: -------------------------------------------------------------------------------- 1 | #![no_main] 2 | 3 | use libfuzzer_sys::fuzz_target; 4 | use std::hint::black_box; 5 | 6 | fuzz_target!(|tree: &[u8]| { 7 | let _ = black_box(gix_object::TreeRef::from_bytes(tree)); 8 | }); 9 | -------------------------------------------------------------------------------- /gix-object/fuzz/fuzz_targets/fuzz_tree_corpus_builder.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -eux -o pipefail 4 | 5 | root="$1" 6 | output_corpus="$2" 7 | fixtures_dir="$(readlink -f -- "$root/gix-object/tests/fixtures/tree")" 8 | 9 | echo "$root" 10 | echo "$fixtures_dir" 11 | 12 | zip -j "$output_corpus" "$fixtures_dir"/* 13 | -------------------------------------------------------------------------------- /gix-object/tests/fixtures/.gitattributes: -------------------------------------------------------------------------------- 1 | # assure newlines aren't butchered as they matter for testing 2 | *.txt text eol=lf 3 | -------------------------------------------------------------------------------- /gix-object/tests/fixtures/commit/double-dash-date-offset.txt: -------------------------------------------------------------------------------- 1 | tree 0a851d7a2a66084ab10516c406a405d147e974ad 2 | parent 31350f4f0f459485eff2131517e3450cf251f6fa 3 | author name 1288373970 --700 4 | committer name 1288373970 --700 5 | 6 | msg 7 | -------------------------------------------------------------------------------- /gix-object/tests/fixtures/commit/email-with-space.txt: -------------------------------------------------------------------------------- 1 | tree 1b2dfb4ac5e42080b682fc676e9738c94ce6d54d 2 | author Sebastian Thiel 1592437401 +0800 3 | committer Sebastian Thiel 1592437401 +0800 4 | 5 | In the author line, the email is followed by a space 6 | -------------------------------------------------------------------------------- /gix-object/tests/fixtures/commit/invalid-actor.txt: -------------------------------------------------------------------------------- 1 | tree 220738fd4199e95a2b244465168366a73ebdf271 2 | parent 209fbe2d632761b30b7b17422914e11b93692833 3 | author Gregor Hartmann> 1282910542 +0200 4 | committer Gregor Hartmann> 1282910542 +0200 5 | 6 | build breakers -------------------------------------------------------------------------------- /gix-object/tests/fixtures/commit/invalid-timestamp.txt: -------------------------------------------------------------------------------- 1 | tree 7989dfb2ec2f41914611a22fb30bbc2b3849df9a 2 | parent 8845ae683e2688bc619baade49510c17e978518f 3 | author Name 1312735823 +051800 4 | committer Name 1312735823 +051800 5 | 6 | edit changelog to mention about x_sendfile_header default change -------------------------------------------------------------------------------- /gix-object/tests/fixtures/commit/merge.txt: -------------------------------------------------------------------------------- 1 | tree 0cf16ce8e229b59a761198975f0c0263229faf82 2 | parent 6a6054db4ce3c1e4e6a37f8c4d7acb63a4d6ad71 3 | parent c91d592913d47ac4e4a76daf16fd649b276e211e 4 | author Sebastian Thiel 1592454703 +0800 5 | committer Sebastian Thiel 1592454738 +0800 6 | encoding ISO-8859-1 7 | 8 | Merge branch 'branch' -------------------------------------------------------------------------------- /gix-object/tests/fixtures/commit/pre-epoch.txt: -------------------------------------------------------------------------------- 1 | tree 71cdd4015386b764b178005cad4c88966bc9d61a 2 | author Législateur <> -5263834140 +0009 3 | committer Législateur <> -5263834140 +0009 4 | 5 | Version consolidée au 14 mars 1803 6 | -------------------------------------------------------------------------------- /gix-object/tests/fixtures/commit/signed-singleline.txt: -------------------------------------------------------------------------------- 1 | tree 00fc39317701176e326974ce44f5bd545a32ec0b 2 | parent 09d8d3a12e161a7f6afb522dbe8900a9c09bce06 3 | author Sebastian Thiel 1592391367 +0800 4 | committer Sebastian Thiel 1592391367 +0800 5 | gpgsig magic:signature 6 | 7 | update tasks 8 | -------------------------------------------------------------------------------- /gix-object/tests/fixtures/commit/unsigned.txt: -------------------------------------------------------------------------------- 1 | tree 1b2dfb4ac5e42080b682fc676e9738c94ce6d54d 2 | author Sebastian Thiel 1592437401 +0800 3 | committer Sebastian Thiel 1592437401 +0800 4 | 5 | without sig -------------------------------------------------------------------------------- /gix-object/tests/fixtures/commit/whitespace.txt: -------------------------------------------------------------------------------- 1 | tree 9bed6275068a0575243ba8409253e61af81ab2ff 2 | parent 26b4df046d1776c123ac69d918f5aec247b58cc6 3 | author Sebastian Thiel 1592448450 +0800 4 | committer Sebastian Thiel 1592448450 +0800 5 | 6 | nl -------------------------------------------------------------------------------- /gix-object/tests/fixtures/commit/with-encoding.txt: -------------------------------------------------------------------------------- 1 | tree 4a1c03029e7407c0afe9fc0320b3258e188b115e 2 | parent 7ca98aad461a5c302cb4c9e3acaaa6053cc67a62 3 | author Sebastian Thiel 1592438199 +0800 4 | committer Sebastian Thiel 1592438199 +0800 5 | encoding ISO-8859-1 6 | 7 | commit with encoding -------------------------------------------------------------------------------- /gix-object/tests/fixtures/generated-archives/make_trees.tar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-object/tests/fixtures/generated-archives/make_trees.tar -------------------------------------------------------------------------------- /gix-object/tests/fixtures/tag/empty.txt: -------------------------------------------------------------------------------- 1 | object 01dd4e2a978a9f5bd773dae6da7aa4a5ac1cdbbc 2 | type commit 3 | tag empty 4 | tagger Sebastian Thiel 1592381636 +0800 5 | 6 | -------------------------------------------------------------------------------- /gix-object/tests/fixtures/tag/empty_missing_nl.txt: -------------------------------------------------------------------------------- 1 | object 01dd4e2a978a9f5bd773dae6da7aa4a5ac1cdbbc 2 | type commit 3 | tag empty 4 | tagger Sebastian Thiel 1592381636 +0800 5 | -------------------------------------------------------------------------------- /gix-object/tests/fixtures/tag/tagger-without-timestamp.txt: -------------------------------------------------------------------------------- 1 | object 4fcd840c4935e4c7a5ea3552710a0f26b9178c24 2 | type commit 3 | tag ChangeLog 4 | tagger shemminger 5 | -------------------------------------------------------------------------------- /gix-object/tests/fixtures/tag/whitespace.txt: -------------------------------------------------------------------------------- 1 | object 01dd4e2a978a9f5bd773dae6da7aa4a5ac1cdbbc 2 | type commit 3 | tag whitespace 4 | tagger Sebastian Thiel 1592382888 +0800 5 | 6 | tab 7 | newline 8 | 9 | last-with-trailer 10 | -------------------------------------------------------------------------------- /gix-object/tests/fixtures/tag/with-newlines.txt: -------------------------------------------------------------------------------- 1 | object ebdf205038b66108c0331aa590388431427493b7 2 | type commit 3 | tag baz 4 | tagger Sebastian Thiel 1592311808 +0800 5 | 6 | hello 7 | 8 | world -------------------------------------------------------------------------------- /gix-object/tests/fixtures/tree/definitely-special.tree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-object/tests/fixtures/tree/definitely-special.tree -------------------------------------------------------------------------------- /gix-object/tests/fixtures/tree/everything.tree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-object/tests/fixtures/tree/everything.tree -------------------------------------------------------------------------------- /gix-object/tests/fixtures/tree/maybe-special.tree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-object/tests/fixtures/tree/maybe-special.tree -------------------------------------------------------------------------------- /gix-object/tests/fixtures/tree/special-1.tree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-object/tests/fixtures/tree/special-1.tree -------------------------------------------------------------------------------- /gix-object/tests/fixtures/tree/special-2.tree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-object/tests/fixtures/tree/special-2.tree -------------------------------------------------------------------------------- /gix-object/tests/fixtures/tree/special-3.tree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-object/tests/fixtures/tree/special-3.tree -------------------------------------------------------------------------------- /gix-object/tests/fixtures/tree/special-4.tree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-object/tests/fixtures/tree/special-4.tree -------------------------------------------------------------------------------- /gix-object/tests/fixtures/tree/special-5.tree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-object/tests/fixtures/tree/special-5.tree -------------------------------------------------------------------------------- /gix-object/tests/object/object_ref/mod.rs: -------------------------------------------------------------------------------- 1 | mod from_loose { 2 | use gix_object::ObjectRef; 3 | 4 | #[test] 5 | fn shorter_than_advertised() { 6 | assert_eq!( 7 | ObjectRef::from_loose(b"tree 1000\x00").unwrap_err().to_string(), 8 | "object data was shorter than its size declared in the header" 9 | ); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /gix-object/tests/object/tree/mod.rs: -------------------------------------------------------------------------------- 1 | mod editor; 2 | mod entries; 3 | mod entry_mode; 4 | mod from_bytes; 5 | mod iter; 6 | -------------------------------------------------------------------------------- /gix-odb/LICENSE-APACHE: -------------------------------------------------------------------------------- 1 | ../LICENSE-APACHE -------------------------------------------------------------------------------- /gix-odb/LICENSE-MIT: -------------------------------------------------------------------------------- 1 | ../LICENSE-MIT -------------------------------------------------------------------------------- /gix-odb/src/store_impls/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod dynamic; 2 | pub mod loose; 3 | -------------------------------------------------------------------------------- /gix-odb/tests/fixtures/generated-archives/.gitignore: -------------------------------------------------------------------------------- 1 | repo_with_loose_objects.tar 2 | make_alternates_odb.tar 3 | -------------------------------------------------------------------------------- /gix-odb/tests/fixtures/generated-archives/make_replaced_history.tar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-odb/tests/fixtures/generated-archives/make_replaced_history.tar -------------------------------------------------------------------------------- /gix-odb/tests/fixtures/generated-archives/make_repo_multi_index.tar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-odb/tests/fixtures/generated-archives/make_repo_multi_index.tar -------------------------------------------------------------------------------- /gix-odb/tests/fixtures/make_alternates_odb.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -eu -o pipefail 3 | 4 | git init -q 5 | 6 | git checkout -b main 7 | touch this 8 | git add this 9 | git commit -q -m c1 10 | echo hello >> this 11 | git commit -q -am c2 12 | 13 | (git init object_source && cd object_source 14 | git checkout -b main 15 | touch this 16 | git add this 17 | git commit -q -m alternate-c1 18 | ) 19 | 20 | echo $PWD/object_source/.git/objects > .git/objects/info/alternates 21 | 22 | -------------------------------------------------------------------------------- /gix-odb/tests/fixtures/objects/37/d4e6c5c48ba0d245164c4e10d5f41140cab980: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-odb/tests/fixtures/objects/37/d4e6c5c48ba0d245164c4e10d5f41140cab980 -------------------------------------------------------------------------------- /gix-odb/tests/fixtures/objects/59/5dfd62fc1ad283d61bb47a24e7a1f66398f84d: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-odb/tests/fixtures/objects/59/5dfd62fc1ad283d61bb47a24e7a1f66398f84d -------------------------------------------------------------------------------- /gix-odb/tests/fixtures/objects/6b/a2a0ded519f737fd5b8d5ccfb141125ef3176f: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-odb/tests/fixtures/objects/6b/a2a0ded519f737fd5b8d5ccfb141125ef3176f -------------------------------------------------------------------------------- /gix-odb/tests/fixtures/objects/72/2fe60ad4f0276d5a8121970b5bb9dccdad4ef9: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-odb/tests/fixtures/objects/72/2fe60ad4f0276d5a8121970b5bb9dccdad4ef9 -------------------------------------------------------------------------------- /gix-odb/tests/fixtures/objects/96/ae868b3539f551c88fd5f02394d022581b11b0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-odb/tests/fixtures/objects/96/ae868b3539f551c88fd5f02394d022581b11b0 -------------------------------------------------------------------------------- /gix-odb/tests/fixtures/objects/a7/06d7cd20fc8ce71489f34b50cf01011c104193: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-odb/tests/fixtures/objects/a7/06d7cd20fc8ce71489f34b50cf01011c104193 -------------------------------------------------------------------------------- /gix-odb/tests/fixtures/objects/ff/a700b4aca13b80cb6b98a078e7c96804f8e0ec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-odb/tests/fixtures/objects/ff/a700b4aca13b80cb6b98a078e7c96804f8e0ec -------------------------------------------------------------------------------- /gix-odb/tests/fixtures/objects/pack/pack-11fdfa9e156ab73caae3b6da867192221f2089c2.idx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-odb/tests/fixtures/objects/pack/pack-11fdfa9e156ab73caae3b6da867192221f2089c2.idx -------------------------------------------------------------------------------- /gix-odb/tests/fixtures/objects/pack/pack-11fdfa9e156ab73caae3b6da867192221f2089c2.pack: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-odb/tests/fixtures/objects/pack/pack-11fdfa9e156ab73caae3b6da867192221f2089c2.pack -------------------------------------------------------------------------------- /gix-odb/tests/fixtures/objects/pack/pack-a2bf8e71d8c18879e499335762dd95119d93d9f1.idx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-odb/tests/fixtures/objects/pack/pack-a2bf8e71d8c18879e499335762dd95119d93d9f1.idx -------------------------------------------------------------------------------- /gix-odb/tests/fixtures/objects/pack/pack-a2bf8e71d8c18879e499335762dd95119d93d9f1.pack: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-odb/tests/fixtures/objects/pack/pack-a2bf8e71d8c18879e499335762dd95119d93d9f1.pack -------------------------------------------------------------------------------- /gix-odb/tests/fixtures/objects/pack/pack-c0438c19fb16422b6bbcce24387b3264416d485b.idx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-odb/tests/fixtures/objects/pack/pack-c0438c19fb16422b6bbcce24387b3264416d485b.idx -------------------------------------------------------------------------------- /gix-odb/tests/fixtures/objects/pack/pack-c0438c19fb16422b6bbcce24387b3264416d485b.pack: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-odb/tests/fixtures/objects/pack/pack-c0438c19fb16422b6bbcce24387b3264416d485b.pack -------------------------------------------------------------------------------- /gix-odb/tests/fixtures/repo_with_loose_objects.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -eu -o pipefail 3 | 4 | git init -q 5 | 6 | git checkout -b main 7 | touch this 8 | git add this 9 | git commit -q -m c1 10 | echo hello >> this 11 | git commit -q -am c2 12 | 13 | -------------------------------------------------------------------------------- /gix-odb/tests/fixtures/repos/small-packs.git/HEAD: -------------------------------------------------------------------------------- 1 | ref: refs/heads/main 2 | -------------------------------------------------------------------------------- /gix-odb/tests/fixtures/repos/small-packs.git/config: -------------------------------------------------------------------------------- 1 | [core] 2 | bare = true 3 | repositoryformatversion = 0 4 | filemode = true 5 | ignorecase = true 6 | precomposeunicode = true 7 | logallrefupdates = true 8 | -------------------------------------------------------------------------------- /gix-odb/tests/fixtures/repos/small-packs.git/description: -------------------------------------------------------------------------------- 1 | Unnamed repository; edit this file 'description' to name the repository. 2 | -------------------------------------------------------------------------------- /gix-odb/tests/fixtures/repos/small-packs.git/info/exclude: -------------------------------------------------------------------------------- 1 | # File patterns to ignore; see `git help ignore` for more information. 2 | # Lines that start with '#' are comments. 3 | -------------------------------------------------------------------------------- /gix-odb/tests/fixtures/repos/small-packs.git/objects/pack/09a90be3fe6db2b49e35858c529e4b9c687b9a08.idx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-odb/tests/fixtures/repos/small-packs.git/objects/pack/09a90be3fe6db2b49e35858c529e4b9c687b9a08.idx -------------------------------------------------------------------------------- /gix-odb/tests/fixtures/repos/small-packs.git/objects/pack/09a90be3fe6db2b49e35858c529e4b9c687b9a08.pack: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-odb/tests/fixtures/repos/small-packs.git/objects/pack/09a90be3fe6db2b49e35858c529e4b9c687b9a08.pack -------------------------------------------------------------------------------- /gix-odb/tests/fixtures/repos/small-packs.git/objects/pack/216edf2f7a671742705e6ca8a639daacfcf91217.idx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-odb/tests/fixtures/repos/small-packs.git/objects/pack/216edf2f7a671742705e6ca8a639daacfcf91217.idx -------------------------------------------------------------------------------- /gix-odb/tests/fixtures/repos/small-packs.git/objects/pack/216edf2f7a671742705e6ca8a639daacfcf91217.pack: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-odb/tests/fixtures/repos/small-packs.git/objects/pack/216edf2f7a671742705e6ca8a639daacfcf91217.pack -------------------------------------------------------------------------------- /gix-odb/tests/fixtures/repos/small-packs.git/refs/heads/next: -------------------------------------------------------------------------------- 1 | ecc68100297fff843a7eef8df0d0fb80c1c8bac5 2 | -------------------------------------------------------------------------------- /gix-odb/tests/integrate.rs: -------------------------------------------------------------------------------- 1 | mod odb; 2 | use odb::*; 3 | -------------------------------------------------------------------------------- /gix-odb/tests/odb/sink/mod.rs: -------------------------------------------------------------------------------- 1 | use gix_object::Write; 2 | 3 | use crate::store::loose::{locate_oid, object_ids}; 4 | 5 | #[test] 6 | fn write() -> crate::Result { 7 | let mut buf = Vec::new(); 8 | for oid in object_ids() { 9 | let obj = locate_oid(oid, &mut buf); 10 | let actual = gix_odb::sink(gix_hash::Kind::Sha1).write(&obj.decode()?)?; 11 | assert_eq!(actual, oid); 12 | } 13 | Ok(()) 14 | } 15 | -------------------------------------------------------------------------------- /gix-odb/tests/odb/store/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod compound; 2 | pub mod dynamic; 3 | pub mod linked; 4 | pub mod loose; 5 | -------------------------------------------------------------------------------- /gix-pack/LICENSE-APACHE: -------------------------------------------------------------------------------- 1 | ../LICENSE-APACHE -------------------------------------------------------------------------------- /gix-pack/LICENSE-MIT: -------------------------------------------------------------------------------- 1 | ../LICENSE-MIT -------------------------------------------------------------------------------- /gix-pack/src/data/file/mod.rs: -------------------------------------------------------------------------------- 1 | mod init; 2 | /// 3 | pub mod verify; 4 | 5 | /// 6 | pub mod decode; 7 | 8 | /// The bytes used as header in a pack data file. 9 | pub type Header = [u8; 12]; 10 | -------------------------------------------------------------------------------- /gix-pack/tests/fixtures/generated-archives/make_pack_gen_repo.tar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-pack/tests/fixtures/generated-archives/make_pack_gen_repo.tar -------------------------------------------------------------------------------- /gix-pack/tests/fixtures/generated-archives/make_pack_gen_repo_multi_index.tar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-pack/tests/fixtures/generated-archives/make_pack_gen_repo_multi_index.tar -------------------------------------------------------------------------------- /gix-pack/tests/fixtures/objects/b8aa61be84b78d7fcff788e8d844406cc97132bf.txt: -------------------------------------------------------------------------------- 1 | GitPython is a python library used to interact with Git repositories. 2 | 3 | GitPython is a port of the grit library in Ruby created by 4 | Tom Preston-Werner and Chris Wanstrath. 5 | 6 | 7 | -------------------------------------------------------------------------------- /gix-pack/tests/fixtures/objects/pack-with-forward-delta/pack-0bb5bc1e3d864c617c2539445c832ccdd531cd4e.idx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-pack/tests/fixtures/objects/pack-with-forward-delta/pack-0bb5bc1e3d864c617c2539445c832ccdd531cd4e.idx -------------------------------------------------------------------------------- /gix-pack/tests/fixtures/objects/pack-with-forward-delta/pack-0bb5bc1e3d864c617c2539445c832ccdd531cd4e.pack: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-pack/tests/fixtures/objects/pack-with-forward-delta/pack-0bb5bc1e3d864c617c2539445c832ccdd531cd4e.pack -------------------------------------------------------------------------------- /gix-pack/tests/fixtures/objects/pack/pack-11fdfa9e156ab73caae3b6da867192221f2089c2.idx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-pack/tests/fixtures/objects/pack/pack-11fdfa9e156ab73caae3b6da867192221f2089c2.idx -------------------------------------------------------------------------------- /gix-pack/tests/fixtures/objects/pack/pack-11fdfa9e156ab73caae3b6da867192221f2089c2.pack: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-pack/tests/fixtures/objects/pack/pack-11fdfa9e156ab73caae3b6da867192221f2089c2.pack -------------------------------------------------------------------------------- /gix-pack/tests/fixtures/objects/pack/pack-a2bf8e71d8c18879e499335762dd95119d93d9f1.idx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-pack/tests/fixtures/objects/pack/pack-a2bf8e71d8c18879e499335762dd95119d93d9f1.idx -------------------------------------------------------------------------------- /gix-pack/tests/fixtures/objects/pack/pack-a2bf8e71d8c18879e499335762dd95119d93d9f1.pack: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-pack/tests/fixtures/objects/pack/pack-a2bf8e71d8c18879e499335762dd95119d93d9f1.pack -------------------------------------------------------------------------------- /gix-pack/tests/fixtures/objects/pack/pack-c0438c19fb16422b6bbcce24387b3264416d485b.idx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-pack/tests/fixtures/objects/pack/pack-c0438c19fb16422b6bbcce24387b3264416d485b.idx -------------------------------------------------------------------------------- /gix-pack/tests/fixtures/objects/pack/pack-c0438c19fb16422b6bbcce24387b3264416d485b.pack: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-pack/tests/fixtures/objects/pack/pack-c0438c19fb16422b6bbcce24387b3264416d485b.pack -------------------------------------------------------------------------------- /gix-pack/tests/integrate.rs: -------------------------------------------------------------------------------- 1 | mod pack; 2 | use pack::*; 3 | -------------------------------------------------------------------------------- /gix-pack/tests/pack/data/mod.rs: -------------------------------------------------------------------------------- 1 | mod file; 2 | mod header; 3 | mod input; 4 | mod output; 5 | -------------------------------------------------------------------------------- /gix-pack/tests/pack/multi_index/mod.rs: -------------------------------------------------------------------------------- 1 | use std::path::PathBuf; 2 | 3 | use gix_pack::multi_index::File; 4 | 5 | fn multi_index() -> (File, PathBuf) { 6 | let path = crate::scripted_fixture_read_only("make_pack_gen_repo_multi_index.sh") 7 | .expect("test fixture exists") 8 | .join(".git/objects/pack/multi-pack-index"); 9 | let file = gix_pack::multi_index::File::at(&path).unwrap(); 10 | (file, path) 11 | } 12 | 13 | mod access; 14 | 15 | mod verify; 16 | 17 | mod write; 18 | -------------------------------------------------------------------------------- /gix-packetline-blocking/LICENSE-APACHE: -------------------------------------------------------------------------------- 1 | ../LICENSE-APACHE -------------------------------------------------------------------------------- /gix-packetline-blocking/LICENSE-MIT: -------------------------------------------------------------------------------- 1 | ../LICENSE-MIT -------------------------------------------------------------------------------- /gix-packetline-blocking/src/read/sidebands/mod.rs: -------------------------------------------------------------------------------- 1 | // DO NOT EDIT - this is a copy of gix-packetline/src/read/sidebands/mod.rs. Run `just copy-packetline` to update it. 2 | 3 | #[cfg(feature = "blocking-io")] 4 | mod blocking_io; 5 | #[cfg(feature = "blocking-io")] 6 | pub use blocking_io::WithSidebands; 7 | 8 | #[cfg(all(not(feature = "blocking-io"), feature = "async-io"))] 9 | mod async_io; 10 | #[cfg(all(not(feature = "blocking-io"), feature = "async-io"))] 11 | pub use async_io::WithSidebands; 12 | -------------------------------------------------------------------------------- /gix-packetline/LICENSE-APACHE: -------------------------------------------------------------------------------- 1 | ../LICENSE-APACHE -------------------------------------------------------------------------------- /gix-packetline/LICENSE-MIT: -------------------------------------------------------------------------------- 1 | ../LICENSE-MIT -------------------------------------------------------------------------------- /gix-packetline/src/read/sidebands/mod.rs: -------------------------------------------------------------------------------- 1 | #[cfg(feature = "blocking-io")] 2 | mod blocking_io; 3 | #[cfg(feature = "blocking-io")] 4 | pub use blocking_io::WithSidebands; 5 | 6 | #[cfg(all(not(feature = "blocking-io"), feature = "async-io"))] 7 | mod async_io; 8 | #[cfg(all(not(feature = "blocking-io"), feature = "async-io"))] 9 | pub use async_io::WithSidebands; 10 | -------------------------------------------------------------------------------- /gix-packetline/tests/fixtures/v1/01-clone.combined-output: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-packetline/tests/fixtures/v1/01-clone.combined-output -------------------------------------------------------------------------------- /gix-packetline/tests/fixtures/v1/01.request: -------------------------------------------------------------------------------- 1 | 003agit-upload-pack /schacon/gitbook.githost=example.com -------------------------------------------------------------------------------- /gix-packetline/tests/fixtures/v1/fetch/01-many-refs.request: -------------------------------------------------------------------------------- 1 | 0025git-upload-pack /githost=example.comversion=1 -------------------------------------------------------------------------------- /gix-packetline/tests/fixtures/v2/clone.all-received: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-packetline/tests/fixtures/v2/clone.all-received -------------------------------------------------------------------------------- /gix-packetline/tests/fixtures/v2/clone.all-sent: -------------------------------------------------------------------------------- 1 | 003fgit-upload-pack /small-testhost=localhost:9419version=20014command=ls-refs 2 | 0014agent=git/2.28.00016object-format=sha100010009peel 3 | 000csymrefs 4 | 0014ref-prefix HEAD 5 | 001bref-prefix refs/heads/ 6 | 001aref-prefix refs/tags/ 7 | 00000016object-format=sha10011command=fetch0014agent=git/2.28.00001000dthin-pack000dofs-delta0032want 808e50d724f604f69ab93c6da2919c014667bedb 8 | 0032want 808e50d724f604f69ab93c6da2919c014667bedb 9 | 0009done 10 | 0000 -------------------------------------------------------------------------------- /gix-path/LICENSE-APACHE: -------------------------------------------------------------------------------- 1 | ../LICENSE-APACHE -------------------------------------------------------------------------------- /gix-path/LICENSE-MIT: -------------------------------------------------------------------------------- 1 | ../LICENSE-MIT -------------------------------------------------------------------------------- /gix-path/src/util.rs: -------------------------------------------------------------------------------- 1 | use std::path::Path; 2 | 3 | /// return true if `path` is absolute, which depends on the platform but is always true if it starts with a `slash`, hence looks like 4 | /// a linux path. 5 | pub fn is_absolute(path: impl AsRef) -> bool { 6 | let path = path.as_ref(); 7 | path.is_absolute() || path.to_str().and_then(|s| s.chars().next()) == Some('/') 8 | } 9 | -------------------------------------------------------------------------------- /gix-path/tests/fixtures/local_config.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -eu -o pipefail 3 | 4 | git init -q 5 | 6 | # Shouldn't be necessary, as a repo starts with some config vars, but this removes any doubt. 7 | git config --local foo.bar baz 8 | -------------------------------------------------------------------------------- /gix-pathspec/LICENSE-APACHE: -------------------------------------------------------------------------------- 1 | ../LICENSE-APACHE -------------------------------------------------------------------------------- /gix-pathspec/LICENSE-MIT: -------------------------------------------------------------------------------- 1 | ../LICENSE-MIT -------------------------------------------------------------------------------- /gix-pathspec/fuzz/.gitignore: -------------------------------------------------------------------------------- 1 | target 2 | corpus 3 | artifacts 4 | 5 | # These usually involve a lot of local CPU time, keep them. 6 | $artifacts 7 | $corpus 8 | -------------------------------------------------------------------------------- /gix-pathspec/fuzz/fuzz_targets/parse.dict: -------------------------------------------------------------------------------- 1 | # ---- Magic signatures ---- 2 | ":(top)" 3 | "top" 4 | ":/" 5 | 6 | ":(icase)" 7 | "icase" 8 | 9 | ":(literal)" 10 | "literal" 11 | 12 | ":(glob)" 13 | "glob" 14 | 15 | # We can't close attr as they take arguments. 16 | ":(attr:" 17 | ":(attr:!" 18 | "attr" 19 | 20 | ":(exclude)" 21 | "exclude" 22 | ":!" 23 | -------------------------------------------------------------------------------- /gix-pathspec/tests/fixtures/generated-archives/match_baseline.tar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-pathspec/tests/fixtures/generated-archives/match_baseline.tar -------------------------------------------------------------------------------- /gix-pathspec/tests/fixtures/generated-archives/match_baseline_dirs.tar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-pathspec/tests/fixtures/generated-archives/match_baseline_dirs.tar -------------------------------------------------------------------------------- /gix-pathspec/tests/fixtures/generated-archives/match_baseline_files.tar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-pathspec/tests/fixtures/generated-archives/match_baseline_files.tar -------------------------------------------------------------------------------- /gix-pathspec/tests/pathspec.rs: -------------------------------------------------------------------------------- 1 | pub use gix_testtools::Result; 2 | 3 | mod normalize; 4 | mod parse; 5 | mod search; 6 | -------------------------------------------------------------------------------- /gix-prompt/LICENSE-APACHE: -------------------------------------------------------------------------------- 1 | ../LICENSE-APACHE -------------------------------------------------------------------------------- /gix-prompt/LICENSE-MIT: -------------------------------------------------------------------------------- 1 | ../LICENSE-MIT -------------------------------------------------------------------------------- /gix-prompt/README.md: -------------------------------------------------------------------------------- 1 | 2 | ### Acknowledgements 3 | 4 | Portions of this crate are loosely based on [`rpassword`](https://github.com/conradkleinespel/duck). 5 | -------------------------------------------------------------------------------- /gix-prompt/examples/askpass.rs: -------------------------------------------------------------------------------- 1 | fn main() -> Result<(), Box> { 2 | let prompt = std::env::args() 3 | .nth(1) 4 | .ok_or("First argument must be the prompt to display when asking for a password")?; 5 | let pass = gix_prompt::securely(prompt)?; 6 | println!("{pass}"); 7 | Ok(()) 8 | } 9 | -------------------------------------------------------------------------------- /gix-prompt/examples/credentials.rs: -------------------------------------------------------------------------------- 1 | fn main() -> Result<(), gix_prompt::Error> { 2 | let user = gix_prompt::openly("Username: ")?; 3 | eprintln!("{user:?}"); 4 | let pass = gix_prompt::securely("Password: ")?; 5 | eprintln!("{pass:?}"); 6 | Ok(()) 7 | } 8 | -------------------------------------------------------------------------------- /gix-prompt/examples/use-askpass.rs: -------------------------------------------------------------------------------- 1 | use std::borrow::Cow; 2 | 3 | use gix_prompt::{Mode, Options}; 4 | 5 | fn main() -> Result<(), Box> { 6 | let pass = gix_prompt::ask( 7 | "Password: ", 8 | &Options { 9 | askpass: Some(Cow::Owned(std::env::current_exe()?.parent().unwrap().join("askpass"))), 10 | mode: Mode::Disable, 11 | }, 12 | )?; 13 | eprintln!("{pass:?}"); 14 | Ok(()) 15 | } 16 | -------------------------------------------------------------------------------- /gix-protocol/LICENSE-APACHE: -------------------------------------------------------------------------------- 1 | ../LICENSE-APACHE -------------------------------------------------------------------------------- /gix-protocol/LICENSE-MIT: -------------------------------------------------------------------------------- 1 | ../LICENSE-MIT -------------------------------------------------------------------------------- /gix-protocol/tests/async-protocol.rs: -------------------------------------------------------------------------------- 1 | mod protocol; 2 | pub use protocol::*; 3 | -------------------------------------------------------------------------------- /gix-protocol/tests/blocking-protocol.rs: -------------------------------------------------------------------------------- 1 | mod protocol; 2 | pub use protocol::*; 3 | -------------------------------------------------------------------------------- /gix-protocol/tests/fixtures/.gitattributes: -------------------------------------------------------------------------------- 1 | * -text 2 | -------------------------------------------------------------------------------- /gix-protocol/tests/fixtures/v1/clone-deepen-1.response: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-protocol/tests/fixtures/v1/clone-deepen-1.response -------------------------------------------------------------------------------- /gix-protocol/tests/fixtures/v1/clone-deepen-5.response: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-protocol/tests/fixtures/v1/clone-deepen-5.response -------------------------------------------------------------------------------- /gix-protocol/tests/fixtures/v1/clone-empty-with-capabilities.response: -------------------------------------------------------------------------------- 1 | 00f20000000000000000000000000000000000000000 capabilities^{}multi_ack thin-pack side-band side-band-64k ofs-delta shallow deepen-since deepen-not deepen-relative no-progress include-tag multi_ack_detailed object-format=sha1 agent=git/2.41.0 2 | 00000000 -------------------------------------------------------------------------------- /gix-protocol/tests/fixtures/v1/clone-only.response: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-protocol/tests/fixtures/v1/clone-only.response -------------------------------------------------------------------------------- /gix-protocol/tests/fixtures/v1/clone-with-keepalive.response: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-protocol/tests/fixtures/v1/clone-with-keepalive.response -------------------------------------------------------------------------------- /gix-protocol/tests/fixtures/v1/clone.response: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-protocol/tests/fixtures/v1/clone.response -------------------------------------------------------------------------------- /gix-protocol/tests/fixtures/v1/fetch-no-pack.response: -------------------------------------------------------------------------------- 1 | 0038ACK 47ee0b7fe4f3a7d776c78794873e6467e1c47e59 common 2 | 0038ACK 3f02c0ad360d96e8dbba92f97b42ebbaa4319db1 common 3 | 0008NAK 4 | -------------------------------------------------------------------------------- /gix-protocol/tests/fixtures/v1/fetch-unshallow.response: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-protocol/tests/fixtures/v1/fetch-unshallow.response -------------------------------------------------------------------------------- /gix-protocol/tests/fixtures/v1/fetch.response: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-protocol/tests/fixtures/v1/fetch.response -------------------------------------------------------------------------------- /gix-protocol/tests/fixtures/v2/clone-deepen-1.response: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-protocol/tests/fixtures/v2/clone-deepen-1.response -------------------------------------------------------------------------------- /gix-protocol/tests/fixtures/v2/clone-deepen-5.response: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-protocol/tests/fixtures/v2/clone-deepen-5.response -------------------------------------------------------------------------------- /gix-protocol/tests/fixtures/v2/clone-only-2.response: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-protocol/tests/fixtures/v2/clone-only-2.response -------------------------------------------------------------------------------- /gix-protocol/tests/fixtures/v2/clone-only-with-keepalive.response: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-protocol/tests/fixtures/v2/clone-only-with-keepalive.response -------------------------------------------------------------------------------- /gix-protocol/tests/fixtures/v2/clone-only.response: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-protocol/tests/fixtures/v2/clone-only.response -------------------------------------------------------------------------------- /gix-protocol/tests/fixtures/v2/clone-ref-in-want.response: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-protocol/tests/fixtures/v2/clone-ref-in-want.response -------------------------------------------------------------------------------- /gix-protocol/tests/fixtures/v2/clone.response: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-protocol/tests/fixtures/v2/clone.response -------------------------------------------------------------------------------- /gix-protocol/tests/fixtures/v2/fetch-err-line.response: -------------------------------------------------------------------------------- 1 | 001bERR segmentation fault 2 | -------------------------------------------------------------------------------- /gix-protocol/tests/fixtures/v2/fetch-no-pack.response: -------------------------------------------------------------------------------- 1 | 0014acknowledgments 2 | 0008NAK 3 | 0000 -------------------------------------------------------------------------------- /gix-protocol/tests/fixtures/v2/fetch-unshallow.response: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-protocol/tests/fixtures/v2/fetch-unshallow.response -------------------------------------------------------------------------------- /gix-protocol/tests/fixtures/v2/fetch.response: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-protocol/tests/fixtures/v2/fetch.response -------------------------------------------------------------------------------- /gix-protocol/tests/protocol/mod.rs: -------------------------------------------------------------------------------- 1 | pub type Result = std::result::Result<(), Box>; 2 | 3 | pub fn fixture_bytes(path: &str) -> Vec { 4 | std::fs::read(std::path::PathBuf::from("tests").join("fixtures").join(path)) 5 | .expect("fixture to be present and readable") 6 | } 7 | 8 | mod command; 9 | pub mod fetch; 10 | mod handshake; 11 | pub use fetch::_impl::{fetch, FetchConnection}; 12 | pub mod remote_progress; 13 | -------------------------------------------------------------------------------- /gix-quote/LICENSE-APACHE: -------------------------------------------------------------------------------- 1 | ../LICENSE-APACHE -------------------------------------------------------------------------------- /gix-quote/LICENSE-MIT: -------------------------------------------------------------------------------- 1 | ../LICENSE-MIT -------------------------------------------------------------------------------- /gix-quote/src/lib.rs: -------------------------------------------------------------------------------- 1 | //! Provides functions to quote and possibly unquote strings with different quoting styles. 2 | #![deny(rust_2018_idioms, missing_docs)] 3 | #![forbid(unsafe_code)] 4 | 5 | /// 6 | pub mod ansi_c; 7 | 8 | mod single; 9 | pub use single::single; 10 | -------------------------------------------------------------------------------- /gix-rebase/Cargo.toml: -------------------------------------------------------------------------------- 1 | lints.workspace = true 2 | 3 | [package] 4 | name = "gix-rebase" 5 | version = "0.0.0" 6 | repository = "https://github.com/GitoxideLabs/gitoxide" 7 | license = "MIT OR Apache-2.0" 8 | description = "A crate of the gitoxide project dealing rebases" 9 | authors = ["Sebastian Thiel "] 10 | edition = "2021" 11 | rust-version = "1.70" 12 | 13 | [lib] 14 | doctest = false 15 | 16 | [dependencies] 17 | -------------------------------------------------------------------------------- /gix-rebase/LICENSE-APACHE: -------------------------------------------------------------------------------- 1 | ../LICENSE-APACHE -------------------------------------------------------------------------------- /gix-rebase/LICENSE-MIT: -------------------------------------------------------------------------------- 1 | ../LICENSE-MIT -------------------------------------------------------------------------------- /gix-rebase/src/lib.rs: -------------------------------------------------------------------------------- 1 | #![deny(rust_2018_idioms)] 2 | #![forbid(unsafe_code)] 3 | -------------------------------------------------------------------------------- /gix-ref/LICENSE-APACHE: -------------------------------------------------------------------------------- 1 | ../LICENSE-APACHE -------------------------------------------------------------------------------- /gix-ref/LICENSE-MIT: -------------------------------------------------------------------------------- 1 | ../LICENSE-MIT -------------------------------------------------------------------------------- /gix-ref/fuzz/.gitignore: -------------------------------------------------------------------------------- 1 | target 2 | corpus 3 | artifacts 4 | coverage 5 | 6 | # These usually involve a lot of local CPU time, keep them. 7 | $artifacts 8 | $corpus 9 | -------------------------------------------------------------------------------- /gix-ref/src/store/file/loose/reference/mod.rs: -------------------------------------------------------------------------------- 1 | pub(crate) mod logiter; 2 | 3 | /// 4 | pub mod decode; 5 | -------------------------------------------------------------------------------- /gix-ref/src/store/general/mod.rs: -------------------------------------------------------------------------------- 1 | mod init; 2 | -------------------------------------------------------------------------------- /gix-ref/src/store/mod.rs: -------------------------------------------------------------------------------- 1 | /// 2 | pub mod file; 3 | 4 | /// 5 | pub mod packed; 6 | -------------------------------------------------------------------------------- /gix-ref/tests/fixtures/generated-archives/.gitignore: -------------------------------------------------------------------------------- 1 | make_worktree_repo.tar 2 | make_worktree_repo_packed.tar 3 | make_multi_hop_ref*.tar 4 | -------------------------------------------------------------------------------- /gix-ref/tests/fixtures/generated-archives/make_namespaced_packed_ref_repository.tar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-ref/tests/fixtures/generated-archives/make_namespaced_packed_ref_repository.tar -------------------------------------------------------------------------------- /gix-ref/tests/fixtures/generated-archives/make_packed_ref_repository.tar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-ref/tests/fixtures/generated-archives/make_packed_ref_repository.tar -------------------------------------------------------------------------------- /gix-ref/tests/fixtures/generated-archives/make_packed_ref_repository_for_overlay.tar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-ref/tests/fixtures/generated-archives/make_packed_ref_repository_for_overlay.tar -------------------------------------------------------------------------------- /gix-ref/tests/fixtures/generated-archives/make_packed_refs_for_lookup_rules.tar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-ref/tests/fixtures/generated-archives/make_packed_refs_for_lookup_rules.tar -------------------------------------------------------------------------------- /gix-ref/tests/fixtures/generated-archives/make_ref_repository.tar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-ref/tests/fixtures/generated-archives/make_ref_repository.tar -------------------------------------------------------------------------------- /gix-ref/tests/fixtures/generated-archives/make_repo_for_reflog.tar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-ref/tests/fixtures/generated-archives/make_repo_for_reflog.tar -------------------------------------------------------------------------------- /gix-ref/tests/fixtures/generated-archives/make_repository_with_lots_of_packed_refs.tar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-ref/tests/fixtures/generated-archives/make_repository_with_lots_of_packed_refs.tar -------------------------------------------------------------------------------- /gix-ref/tests/fixtures/make_multi_hop_ref.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -eu -o pipefail 3 | 4 | git init -q 5 | 6 | git checkout -q -b main 7 | git commit -q --allow-empty -m c1 8 | 9 | git tag t1 10 | git tag -m "tag object" dt1 11 | git tag -m "tag object indirect" dt2 dt1 12 | 13 | echo "ref: refs/tags/dt2" > .git/refs/multi-hop 14 | echo "ref: refs/multi-hop" > .git/refs/multi-hop2 15 | 16 | if [ "${1:-}" = "packed" ]; then 17 | git pack-refs --all --prune 18 | fi 19 | -------------------------------------------------------------------------------- /gix-ref/tests/fixtures/make_packed_refs_for_lookup_rules.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -eu -o pipefail 3 | 4 | git init -q 5 | 6 | git checkout -q -b main 7 | git commit -q --allow-empty -m c1 8 | git branch head-or-tag 9 | git tag head-or-tag 10 | git tag -m "tag object" tag-object 11 | 12 | mkdir -p .git/refs/remotes/origin 13 | 14 | cp .git/refs/heads/main .git/refs/remotes/origin/ 15 | 16 | echo "ref: refs/remotes/origin/main" > .git/refs/remotes/origin/HEAD 17 | 18 | git pack-refs --all --prune 19 | -------------------------------------------------------------------------------- /gix-ref/tests/fixtures/make_pristine.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -eu -o pipefail 3 | 4 | git init untouched 5 | 6 | git init changed-headref 7 | (cd changed-headref 8 | echo "ref: refs/heads/other" >.git/HEAD 9 | ) 10 | 11 | git init detached 12 | (cd detached 13 | echo "abcdefabcdefabcdefabcdefabcdefabcdefabcd" >.git/HEAD 14 | ) 15 | 16 | git init invalid-loose-ref 17 | (cd invalid-loose-ref 18 | touch .git/refs/heads/empty 19 | ) 20 | -------------------------------------------------------------------------------- /gix-ref/tests/fixtures/packed-refs/triggers-out-of-bounds: -------------------------------------------------------------------------------- 1 | # pack-refs with: peeled fully-peeled sorted 2 | 342b15383d97d174f5a0cc9a9c064841b3cc7667 refs/remotes/origin/master 3 | 4b8fdb02539191b7fbdf0741116cdce49aeed275 refs/tags/v0.0.0 4 | ^342b15383d97d174f5a0cc9a9c064841b3cc7667 5 | -------------------------------------------------------------------------------- /gix-ref/tests/fixtures/packed-refs/unsorted: -------------------------------------------------------------------------------- 1 | # pack-refs with: peeled fully-peeled 2 | 134385f6d781b7e97062102c6a483440bfda2a03 refs/remotes/origin/main 3 | 134385f6d781b7e97062102c6a483440bfda2a03 refs/heads/newer-as-loose 4 | b3109a7e51fc593f85b145a76c70ddd1d133fafd refs/tags/tag-object 5 | ^134385f6d781b7e97062102c6a483440bfda2a03 6 | 134385f6d781b7e97062102c6a483440bfda2a03 refs/heads/main 7 | -------------------------------------------------------------------------------- /gix-ref/tests/fixtures/packed-refs/without-header: -------------------------------------------------------------------------------- 1 | 134385f6d781b7e97062102c6a483440bfda2a03 refs/heads/newer-as-loose 2 | 134385f6d781b7e97062102c6a483440bfda2a03 refs/remotes/origin/main 3 | 134385f6d781b7e97062102c6a483440bfda2a03 refs/heads/main 4 | b3109a7e51fc593f85b145a76c70ddd1d133fafd refs/tags/tag-object 5 | ^134385f6d781b7e97062102c6a483440bfda2a03 6 | -------------------------------------------------------------------------------- /gix-ref/tests/refs/packed/mod.rs: -------------------------------------------------------------------------------- 1 | use std::path::PathBuf; 2 | 3 | pub fn write_packed_refs_with(input: &[u8]) -> crate::Result<(gix_testtools::tempfile::TempDir, PathBuf)> { 4 | let dir = gix_testtools::tempfile::tempdir()?; 5 | let packed_refs_path = dir.path().join("packed-refs"); 6 | std::fs::write(&packed_refs_path, input)?; 7 | Ok((dir, packed_refs_path)) 8 | } 9 | 10 | mod find; 11 | pub mod iter; 12 | mod open; 13 | -------------------------------------------------------------------------------- /gix-refspec/LICENSE-APACHE: -------------------------------------------------------------------------------- 1 | ../LICENSE-APACHE -------------------------------------------------------------------------------- /gix-refspec/LICENSE-MIT: -------------------------------------------------------------------------------- 1 | ../LICENSE-MIT -------------------------------------------------------------------------------- /gix-refspec/README.md: -------------------------------------------------------------------------------- 1 | # `gix-refspec` 2 | 3 | ### Testing 4 | 5 | #### Fuzzing 6 | 7 | `cargo fuzz` is used for fuzzing, installable with `cargo install cargo-fuzz`. 8 | 9 | Targets can be listed with `cargo fuzz list` and executed via `cargo +nightly fuzz run `, 10 | where `` can be `parse` for example. 11 | 12 | -------------------------------------------------------------------------------- /gix-refspec/fuzz/.gitignore: -------------------------------------------------------------------------------- 1 | target 2 | corpus 3 | artifacts 4 | 5 | # These usually involve a lot of local CPU time, keep them. 6 | $artifacts 7 | $corpus 8 | -------------------------------------------------------------------------------- /gix-refspec/fuzz/fuzz_targets/parse.rs: -------------------------------------------------------------------------------- 1 | #![no_main] 2 | use libfuzzer_sys::fuzz_target; 3 | 4 | fuzz_target!(|data: &[u8]| { 5 | drop(gix_refspec::parse(data.into(), gix_refspec::parse::Operation::Push)); 6 | drop(gix_refspec::parse(data.into(), gix_refspec::parse::Operation::Fetch)); 7 | }); 8 | -------------------------------------------------------------------------------- /gix-refspec/tests/fixtures/fuzzed/clusterfuzz-testcase-minimized-gix-refspec-parse-4658733962887168: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-refspec/tests/fixtures/fuzzed/clusterfuzz-testcase-minimized-gix-refspec-parse-4658733962887168 -------------------------------------------------------------------------------- /gix-refspec/tests/fixtures/generated-archives/.gitignore: -------------------------------------------------------------------------------- 1 | /match_baseline.tar 2 | -------------------------------------------------------------------------------- /gix-refspec/tests/refspec/main.rs: -------------------------------------------------------------------------------- 1 | extern crate core; 2 | 3 | use gix_testtools::Result; 4 | 5 | mod impls; 6 | mod match_group; 7 | mod matching; 8 | mod parse; 9 | mod spec; 10 | mod write; 11 | -------------------------------------------------------------------------------- /gix-revision/LICENSE-APACHE: -------------------------------------------------------------------------------- 1 | ../LICENSE-APACHE -------------------------------------------------------------------------------- /gix-revision/LICENSE-MIT: -------------------------------------------------------------------------------- 1 | ../LICENSE-MIT -------------------------------------------------------------------------------- /gix-revision/README.md: -------------------------------------------------------------------------------- 1 | # `gix-revision` 2 | 3 | ### Testing 4 | 5 | #### Fuzzing 6 | 7 | `cargo fuzz` is used for fuzzing, installable with `cargo install cargo-fuzz`. 8 | 9 | Targets can be listed with `cargo fuzz list` and executed via `cargo +nightly fuzz run `, 10 | where `` can be `parse` for example. 11 | 12 | -------------------------------------------------------------------------------- /gix-revision/fuzz/.gitignore: -------------------------------------------------------------------------------- 1 | target 2 | corpus 3 | artifacts 4 | 5 | # These usually involve a lot of local CPU time, keep them. 6 | $artifacts 7 | $corpus 8 | -------------------------------------------------------------------------------- /gix-revision/tests/fixtures/generated-archives/make_merge_base_repos.tar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-revision/tests/fixtures/generated-archives/make_merge_base_repos.tar -------------------------------------------------------------------------------- /gix-revision/tests/fixtures/generated-archives/make_repo_with_branches.tar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-revision/tests/fixtures/generated-archives/make_repo_with_branches.tar -------------------------------------------------------------------------------- /gix-revision/tests/fixtures/generated-archives/merge_base_octopus_repos.tar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-revision/tests/fixtures/generated-archives/merge_base_octopus_repos.tar -------------------------------------------------------------------------------- /gix-revision/tests/revision/main.rs: -------------------------------------------------------------------------------- 1 | #[cfg(feature = "describe")] 2 | mod describe; 3 | #[cfg(feature = "merge_base")] 4 | mod merge_base; 5 | mod spec; 6 | 7 | pub use gix_testtools::Result; 8 | 9 | fn hex_to_id(hex: &str) -> gix_hash::ObjectId { 10 | gix_hash::ObjectId::from_hex(hex.as_bytes()).expect("40 bytes hex") 11 | } 12 | -------------------------------------------------------------------------------- /gix-revision/tests/revision/spec/mod.rs: -------------------------------------------------------------------------------- 1 | mod display; 2 | mod parse; 3 | -------------------------------------------------------------------------------- /gix-revision/tests/revision/spec/parse/anchor/mod.rs: -------------------------------------------------------------------------------- 1 | mod at_symbol; 2 | mod colon_symbol; 3 | mod describe; 4 | mod hash; 5 | mod refnames; 6 | -------------------------------------------------------------------------------- /gix-revision/tests/revision/spec/parse/navigate/mod.rs: -------------------------------------------------------------------------------- 1 | mod caret_symbol; 2 | mod colon_symbol; 3 | mod tilde_symbol; 4 | -------------------------------------------------------------------------------- /gix-revwalk/LICENSE-APACHE: -------------------------------------------------------------------------------- 1 | ../LICENSE-APACHE -------------------------------------------------------------------------------- /gix-revwalk/LICENSE-MIT: -------------------------------------------------------------------------------- 1 | ../LICENSE-MIT -------------------------------------------------------------------------------- /gix-sec/LICENSE-APACHE: -------------------------------------------------------------------------------- 1 | ../LICENSE-APACHE -------------------------------------------------------------------------------- /gix-sec/LICENSE-MIT: -------------------------------------------------------------------------------- 1 | ../LICENSE-MIT -------------------------------------------------------------------------------- /gix-sequencer/Cargo.toml: -------------------------------------------------------------------------------- 1 | lints.workspace = true 2 | 3 | [package] 4 | name = "gix-sequencer" 5 | version = "0.0.0" 6 | repository = "https://github.com/GitoxideLabs/gitoxide" 7 | license = "MIT OR Apache-2.0" 8 | description = "A crate of the gitoxide project handling sequences of human-aided operations" 9 | authors = ["Sebastian Thiel "] 10 | edition = "2021" 11 | rust-version = "1.70" 12 | 13 | [lib] 14 | doctest = false 15 | 16 | [dependencies] 17 | -------------------------------------------------------------------------------- /gix-sequencer/LICENSE-APACHE: -------------------------------------------------------------------------------- 1 | ../LICENSE-APACHE -------------------------------------------------------------------------------- /gix-sequencer/LICENSE-MIT: -------------------------------------------------------------------------------- 1 | ../LICENSE-MIT -------------------------------------------------------------------------------- /gix-sequencer/src/lib.rs: -------------------------------------------------------------------------------- 1 | #![deny(rust_2018_idioms)] 2 | #![forbid(unsafe_code)] 3 | -------------------------------------------------------------------------------- /gix-shallow/LICENSE-APACHE: -------------------------------------------------------------------------------- 1 | ../LICENSE-APACHE -------------------------------------------------------------------------------- /gix-shallow/LICENSE-MIT: -------------------------------------------------------------------------------- 1 | ../LICENSE-MIT -------------------------------------------------------------------------------- /gix-status/LICENSE-APACHE: -------------------------------------------------------------------------------- 1 | ../LICENSE-APACHE -------------------------------------------------------------------------------- /gix-status/LICENSE-MIT: -------------------------------------------------------------------------------- 1 | ../LICENSE-MIT -------------------------------------------------------------------------------- /gix-status/src/index_as_worktree/mod.rs: -------------------------------------------------------------------------------- 1 | //! Changes between an index and a worktree. 2 | /// 3 | mod types; 4 | pub use types::{Change, Conflict, Context, EntryStatus, Error, Options, Outcome, VisitEntry}; 5 | 6 | mod recorder; 7 | pub use recorder::{Record, Recorder}; 8 | 9 | pub(super) mod function; 10 | /// 11 | pub mod traits; 12 | -------------------------------------------------------------------------------- /gix-status/tests/fixtures/generated-archives/.gitignore: -------------------------------------------------------------------------------- 1 | status_unchanged.tar 2 | status_changed.tar 3 | symlink_stack.tar 4 | status_nonfile.tar 5 | status_unchanged_filter.tar 6 | -------------------------------------------------------------------------------- /gix-status/tests/fixtures/generated-archives/conflicts.tar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-status/tests/fixtures/generated-archives/conflicts.tar -------------------------------------------------------------------------------- /gix-status/tests/fixtures/generated-archives/racy_git.tar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-status/tests/fixtures/generated-archives/racy_git.tar -------------------------------------------------------------------------------- /gix-status/tests/fixtures/generated-archives/status_conflict.tar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-status/tests/fixtures/generated-archives/status_conflict.tar -------------------------------------------------------------------------------- /gix-status/tests/fixtures/generated-archives/status_intent_to_add.tar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-status/tests/fixtures/generated-archives/status_intent_to_add.tar -------------------------------------------------------------------------------- /gix-status/tests/fixtures/generated-archives/status_many.tar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-status/tests/fixtures/generated-archives/status_many.tar -------------------------------------------------------------------------------- /gix-status/tests/fixtures/generated-archives/status_removed.tar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-status/tests/fixtures/generated-archives/status_removed.tar -------------------------------------------------------------------------------- /gix-status/tests/fixtures/generated-archives/status_submodule.tar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-status/tests/fixtures/generated-archives/status_submodule.tar -------------------------------------------------------------------------------- /gix-status/tests/fixtures/racy_git.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -eu -o pipefail 3 | 4 | git init -q 5 | 6 | echo -n "foo" > content 7 | 8 | git add -A 9 | git commit -m "Commit" 10 | 11 | # file size should not be changed by this 12 | echo -n "bar" > content 13 | -------------------------------------------------------------------------------- /gix-status/tests/fixtures/status_conflict.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -eu -o pipefail 3 | 4 | git init -q 5 | 6 | echo base > content 7 | git add -A 8 | git commit -m "base" 9 | 10 | git checkout -b feat 11 | echo feat > content 12 | git commit -am "feat" 13 | 14 | git checkout main 15 | echo base-change > content 16 | git commit -am "new base" 17 | 18 | git merge feat || : 19 | -------------------------------------------------------------------------------- /gix-status/tests/fixtures/status_intent_to_add.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -eu -o pipefail 3 | 4 | git init -q 5 | 6 | touch content 7 | echo -n "content" > content 8 | 9 | git add --intent-to-add -A 10 | -------------------------------------------------------------------------------- /gix-status/tests/fixtures/status_nonfile.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -eu -o pipefail 3 | 4 | git init -q untracked 5 | (cd untracked 6 | touch file && git add file && git commit -m "just to get an index for the test-suite" 7 | 8 | mkfifo pipe 9 | git status 10 | ) 11 | 12 | git init -q tracked-swapped 13 | (cd tracked-swapped 14 | touch file && git add file && git commit -m "it starts out as trackable file" 15 | 16 | rm file && mkfifo file 17 | git status 18 | ) 19 | 20 | -------------------------------------------------------------------------------- /gix-status/tests/fixtures/symlink_stack.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -eu -o pipefail 3 | 4 | mkdir base; 5 | (cd base 6 | touch file 7 | mkdir dir 8 | touch dir/file-in-dir 9 | (cd dir 10 | ln -s file-in-dir filelink 11 | mkdir subdir 12 | ln -s subdir dirlink 13 | ) 14 | 15 | ln -s file root-filelink 16 | ln -s dir root-dirlink 17 | ) 18 | 19 | ln -s base symlink-base 20 | 21 | -------------------------------------------------------------------------------- /gix-status/tests/status/mod.rs: -------------------------------------------------------------------------------- 1 | pub use gix_testtools::Result; 2 | 3 | mod index_as_worktree; 4 | mod index_as_worktree_with_renames; 5 | 6 | mod stack; 7 | 8 | pub fn fixture_path(name: &str) -> std::path::PathBuf { 9 | let dir = gix_testtools::scripted_fixture_read_only_standalone(std::path::Path::new(name).with_extension("sh")) 10 | .expect("script works"); 11 | dir 12 | } 13 | -------------------------------------------------------------------------------- /gix-submodule/LICENSE-APACHE: -------------------------------------------------------------------------------- 1 | ../LICENSE-APACHE -------------------------------------------------------------------------------- /gix-submodule/LICENSE-MIT: -------------------------------------------------------------------------------- 1 | ../LICENSE-MIT -------------------------------------------------------------------------------- /gix-submodule/tests/fixtures/generated-archives/basic.tar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-submodule/tests/fixtures/generated-archives/basic.tar -------------------------------------------------------------------------------- /gix-submodule/tests/submodule.rs: -------------------------------------------------------------------------------- 1 | use gix_testtools::Result; 2 | 3 | mod file; 4 | -------------------------------------------------------------------------------- /gix-tempfile/LICENSE-APACHE: -------------------------------------------------------------------------------- 1 | ../LICENSE-APACHE -------------------------------------------------------------------------------- /gix-tempfile/LICENSE-MIT: -------------------------------------------------------------------------------- 1 | ../LICENSE-MIT -------------------------------------------------------------------------------- /gix-tempfile/tests/all.rs: -------------------------------------------------------------------------------- 1 | type Result = std::result::Result>; 2 | 3 | mod tempfile; 4 | -------------------------------------------------------------------------------- /gix-tix/Cargo.toml: -------------------------------------------------------------------------------- 1 | lints.workspace = true 2 | 3 | [package] 4 | name = "gix-tix" 5 | version = "0.0.0" 6 | repository = "https://github.com/GitoxideLabs/gitoxide" 7 | license = "MIT OR Apache-2.0" 8 | description = "A tool like `tig`, but minimal, fast and efficient" 9 | authors = ["Sebastian Thiel "] 10 | edition = "2021" 11 | rust-version = "1.70" 12 | 13 | [lib] 14 | doctest = false 15 | 16 | [dependencies] 17 | -------------------------------------------------------------------------------- /gix-tix/LICENSE-APACHE: -------------------------------------------------------------------------------- 1 | ../LICENSE-APACHE -------------------------------------------------------------------------------- /gix-tix/LICENSE-MIT: -------------------------------------------------------------------------------- 1 | ../LICENSE-MIT -------------------------------------------------------------------------------- /gix-tix/src/lib.rs: -------------------------------------------------------------------------------- 1 | #![deny(rust_2018_idioms)] 2 | #![forbid(unsafe_code)] 3 | -------------------------------------------------------------------------------- /gix-trace/LICENSE-APACHE: -------------------------------------------------------------------------------- 1 | ../LICENSE-APACHE -------------------------------------------------------------------------------- /gix-trace/LICENSE-MIT: -------------------------------------------------------------------------------- 1 | ../LICENSE-MIT -------------------------------------------------------------------------------- /gix-transport/LICENSE-APACHE: -------------------------------------------------------------------------------- 1 | ../LICENSE-APACHE -------------------------------------------------------------------------------- /gix-transport/LICENSE-MIT: -------------------------------------------------------------------------------- 1 | ../LICENSE-MIT -------------------------------------------------------------------------------- /gix-transport/src/client/async_io/mod.rs: -------------------------------------------------------------------------------- 1 | mod bufread_ext; 2 | pub use bufread_ext::{ExtendedBufRead, HandleProgress, ReadlineBufRead}; 3 | 4 | mod request; 5 | pub use request::RequestWriter; 6 | 7 | mod traits; 8 | pub use traits::{SetServiceResponse, Transport, TransportV2Ext}; 9 | 10 | /// 11 | pub mod connect; 12 | #[cfg(feature = "async-std")] 13 | pub use connect::function::connect; 14 | -------------------------------------------------------------------------------- /gix-transport/src/client/blocking_io/mod.rs: -------------------------------------------------------------------------------- 1 | /// 2 | pub mod connect; 3 | 4 | /// 5 | pub mod file; 6 | /// 7 | #[cfg(feature = "http-client")] 8 | pub mod http; 9 | 10 | mod bufread_ext; 11 | pub use bufread_ext::{ExtendedBufRead, HandleProgress, ReadlineBufRead}; 12 | 13 | mod request; 14 | pub use request::RequestWriter; 15 | 16 | /// 17 | pub mod ssh; 18 | 19 | mod traits; 20 | pub use traits::{SetServiceResponse, Transport, TransportV2Ext}; 21 | -------------------------------------------------------------------------------- /gix-transport/tests/client/blocking_io/mod.rs: -------------------------------------------------------------------------------- 1 | #[cfg(any(feature = "http-client-curl", feature = "http-client-reqwest"))] 2 | mod http; 3 | -------------------------------------------------------------------------------- /gix-transport/tests/client/mod.rs: -------------------------------------------------------------------------------- 1 | #[cfg(feature = "blocking-client")] 2 | mod blocking_io; 3 | mod capabilities; 4 | mod git; 5 | -------------------------------------------------------------------------------- /gix-transport/tests/fixtures/http-401.response: -------------------------------------------------------------------------------- 1 | HTTP/1.1 401 Authorization Required 2 | Server: GitHub Babel 2.0 3 | Content-Type: text/plain 4 | Content-Length: 21 5 | WWW-Authenticate: Basic realm="GitHub" 6 | X-Frame-Options: DENY 7 | X-GitHub-Request-Id: 8218:55B2:A3C3DD:E4C9DC:5F420446 8 | 9 | Repository not found. -------------------------------------------------------------------------------- /gix-transport/tests/fixtures/v1/clone.request: -------------------------------------------------------------------------------- 1 | 003agit-upload-pack /schacon/gitbook.githost=example.com -------------------------------------------------------------------------------- /gix-transport/tests/fixtures/v1/clone.response: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-transport/tests/fixtures/v1/clone.response -------------------------------------------------------------------------------- /gix-transport/tests/fixtures/v1/http-clone.response: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-transport/tests/fixtures/v1/http-clone.response -------------------------------------------------------------------------------- /gix-transport/tests/fixtures/v1/push.request: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-transport/tests/fixtures/v1/push.request -------------------------------------------------------------------------------- /gix-transport/tests/fixtures/v1/push.response: -------------------------------------------------------------------------------- 1 | 0022Resolving deltas: 0% (0/2) 0022Resolving deltas: 50% (1/2) 0022Resolving deltas: 100% (2/2) 0043Resolving deltas: 100% (2/2), completed with 2 local objects. 2 | 0013000eunpack ok 3 | 001c0017ok refs/heads/main 4 | 00b5 5 | GitHub found 1 vulnerability on the-lean-crate/criner's default branch (1 high). To find out more, visit: 6 | https://github.com/the-lean-crate/criner/security/dependabot/1 7 | 8 | 000900000000 -------------------------------------------------------------------------------- /gix-transport/tests/fixtures/v2/clone.request: -------------------------------------------------------------------------------- 1 | 003fgit-upload-pack /small-testhost=localhost:9419version=20014command=ls-refs 2 | 0014agent=git/2.28.00016object-format=sha100010009peel 3 | 000csymrefs 4 | 0014ref-prefix HEAD 5 | 001bref-prefix refs/heads/ 6 | 001aref-prefix refs/tags/ 7 | 00000016object-format=sha10011command=fetch0014agent=git/2.28.00001000dthin-pack000dofs-delta0032want 808e50d724f604f69ab93c6da2919c014667bedb 8 | 0032want 808e50d724f604f69ab93c6da2919c014667bedb 9 | 0009done 10 | 0000 -------------------------------------------------------------------------------- /gix-transport/tests/fixtures/v2/clone.response: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-transport/tests/fixtures/v2/clone.response -------------------------------------------------------------------------------- /gix-transport/tests/fixtures/v2/http-fetch.response: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-transport/tests/fixtures/v2/http-fetch.response -------------------------------------------------------------------------------- /gix-traverse/LICENSE-APACHE: -------------------------------------------------------------------------------- 1 | ../LICENSE-APACHE -------------------------------------------------------------------------------- /gix-traverse/LICENSE-MIT: -------------------------------------------------------------------------------- 1 | ../LICENSE-MIT -------------------------------------------------------------------------------- /gix-traverse/src/lib.rs: -------------------------------------------------------------------------------- 1 | //! Various ways to traverse commit graphs and trees with implementations as iterator 2 | #![deny(missing_docs, rust_2018_idioms)] 3 | #![forbid(unsafe_code)] 4 | 5 | pub mod commit; 6 | 7 | /// Tree traversal 8 | pub mod tree; 9 | -------------------------------------------------------------------------------- /gix-traverse/tests/fixtures/generated-archives/make_repo_for_topo.tar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-traverse/tests/fixtures/generated-archives/make_repo_for_topo.tar -------------------------------------------------------------------------------- /gix-traverse/tests/fixtures/generated-archives/make_repos.tar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-traverse/tests/fixtures/generated-archives/make_repos.tar -------------------------------------------------------------------------------- /gix-traverse/tests/fixtures/generated-archives/make_traversal_repo_for_commits_same_date.tar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-traverse/tests/fixtures/generated-archives/make_traversal_repo_for_commits_same_date.tar -------------------------------------------------------------------------------- /gix-traverse/tests/fixtures/generated-archives/make_traversal_repo_for_commits_with_dates.tar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-traverse/tests/fixtures/generated-archives/make_traversal_repo_for_commits_with_dates.tar -------------------------------------------------------------------------------- /gix-traverse/tests/fixtures/generated-archives/make_traversal_repo_for_trees.tar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-traverse/tests/fixtures/generated-archives/make_traversal_repo_for_trees.tar -------------------------------------------------------------------------------- /gix-traverse/tests/fixtures/generated-archives/make_traversal_repo_for_trees_depthfirst.tar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-traverse/tests/fixtures/generated-archives/make_traversal_repo_for_trees_depthfirst.tar -------------------------------------------------------------------------------- /gix-traverse/tests/fixtures/make_traversal_repo_for_trees.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -eu -o pipefail 3 | 4 | git init -q 5 | 6 | git checkout -q -b main 7 | touch a b c 8 | mkdir d e f 9 | touch d/a e/b f/c f/z 10 | mkdir f/d 11 | touch f/d/x 12 | 13 | git add . 14 | git commit -q -m c1 15 | -------------------------------------------------------------------------------- /gix-traverse/tests/fixtures/make_traversal_repo_for_trees_depthfirst.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -eu -o pipefail 3 | 4 | git init -q 5 | 6 | git checkout -q -b main 7 | touch a b c 8 | mkdir d e f 9 | touch d/a e/b f/c f/z 10 | mkdir f/ISSUE_TEMPLATE 11 | touch f/ISSUE_TEMPLATE/x f/FUNDING.yml f/dependabot.yml 12 | 13 | git add . 14 | git commit -q -m c1 15 | -------------------------------------------------------------------------------- /gix-traverse/tests/traverse/commit/mod.rs: -------------------------------------------------------------------------------- 1 | mod simple; 2 | mod topo; 3 | -------------------------------------------------------------------------------- /gix-traverse/tests/traverse/main.rs: -------------------------------------------------------------------------------- 1 | use gix_testtools::Result; 2 | 3 | fn hex_to_id(hex: &str) -> gix_hash::ObjectId { 4 | gix_hash::ObjectId::from_hex(hex.as_bytes()).expect("40 bytes hex") 5 | } 6 | 7 | mod commit; 8 | mod tree; 9 | -------------------------------------------------------------------------------- /gix-tui/LICENSE-APACHE: -------------------------------------------------------------------------------- 1 | ../LICENSE-APACHE -------------------------------------------------------------------------------- /gix-tui/LICENSE-MIT: -------------------------------------------------------------------------------- 1 | ../LICENSE-MIT -------------------------------------------------------------------------------- /gix-tui/src/main.rs: -------------------------------------------------------------------------------- 1 | #![deny(rust_2018_idioms)] 2 | #![forbid(unsafe_code)] 3 | 4 | fn main() { 5 | unimplemented!(); 6 | } 7 | -------------------------------------------------------------------------------- /gix-url/LICENSE-APACHE: -------------------------------------------------------------------------------- 1 | ../LICENSE-APACHE -------------------------------------------------------------------------------- /gix-url/LICENSE-MIT: -------------------------------------------------------------------------------- 1 | ../LICENSE-MIT -------------------------------------------------------------------------------- /gix-url/fuzz/.gitignore: -------------------------------------------------------------------------------- 1 | target 2 | corpus 3 | artifacts 4 | 5 | # These usually involve a lot of local CPU time, keep them. 6 | $artifacts 7 | $corpus 8 | -------------------------------------------------------------------------------- /gix-url/tests/fixtures/fuzzed/illegal-utf8.url: -------------------------------------------------------------------------------- 1 | BBi%BBBBB,@}:m\ -------------------------------------------------------------------------------- /gix-url/tests/fixtures/fuzzed/short-panic.url: -------------------------------------------------------------------------------- 1 | ws://xn--55555577 -------------------------------------------------------------------------------- /gix-url/tests/fixtures/generated-archives/.gitignore: -------------------------------------------------------------------------------- 1 | make_baseline.tar 2 | -------------------------------------------------------------------------------- /gix-url/tests/url/main.rs: -------------------------------------------------------------------------------- 1 | pub type Error = Box; 2 | pub type Result = std::result::Result<(), Error>; 3 | 4 | mod access; 5 | mod baseline; 6 | mod expand_path; 7 | mod fuzzed; 8 | mod parse; 9 | -------------------------------------------------------------------------------- /gix-utils/LICENSE-APACHE: -------------------------------------------------------------------------------- 1 | ../LICENSE-APACHE -------------------------------------------------------------------------------- /gix-utils/LICENSE-MIT: -------------------------------------------------------------------------------- 1 | ../LICENSE-MIT -------------------------------------------------------------------------------- /gix-utils/tests/utils.rs: -------------------------------------------------------------------------------- 1 | mod backoff; 2 | mod btoi; 3 | mod buffers; 4 | mod str; 5 | -------------------------------------------------------------------------------- /gix-validate/LICENSE-APACHE: -------------------------------------------------------------------------------- 1 | ../LICENSE-APACHE -------------------------------------------------------------------------------- /gix-validate/LICENSE-MIT: -------------------------------------------------------------------------------- 1 | ../LICENSE-MIT -------------------------------------------------------------------------------- /gix-validate/src/lib.rs: -------------------------------------------------------------------------------- 1 | //! Validation for various kinds of git related items. 2 | #![deny(missing_docs, rust_2018_idioms)] 3 | #![forbid(unsafe_code)] 4 | 5 | /// 6 | pub mod reference; 7 | 8 | /// 9 | pub mod tag; 10 | 11 | /// 12 | pub mod submodule; 13 | 14 | /// 15 | pub mod path; 16 | -------------------------------------------------------------------------------- /gix-validate/tests/validate.rs: -------------------------------------------------------------------------------- 1 | mod path; 2 | mod reference; 3 | mod submodule; 4 | mod tag; 5 | -------------------------------------------------------------------------------- /gix-worktree-state/LICENSE-APACHE: -------------------------------------------------------------------------------- 1 | ../LICENSE-APACHE -------------------------------------------------------------------------------- /gix-worktree-state/LICENSE-MIT: -------------------------------------------------------------------------------- 1 | ../LICENSE-MIT -------------------------------------------------------------------------------- /gix-worktree-state/src/lib.rs: -------------------------------------------------------------------------------- 1 | //! A crate to help setting the worktree to a particular state. 2 | #![deny(missing_docs, rust_2018_idioms, unsafe_code)] 3 | 4 | /// 5 | pub mod checkout; 6 | pub use checkout::function::checkout; 7 | -------------------------------------------------------------------------------- /gix-worktree-state/tests/fixtures/generated-archives/.gitignore: -------------------------------------------------------------------------------- 1 | make_ignore_and_attributes_setup.tar 2 | make_mixed_without_submodules.tar 3 | make_mixed.tar 4 | make_mixed_without_submodules_and_symlinks.tar 5 | make_attributes_baseline.tar 6 | make_dangerous_symlink.tar 7 | make_ignorecase_collisions.tar 8 | -------------------------------------------------------------------------------- /gix-worktree-state/tests/fixtures/generated-archives/make_dangling_symlink.tar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-worktree-state/tests/fixtures/generated-archives/make_dangling_symlink.tar -------------------------------------------------------------------------------- /gix-worktree-state/tests/fixtures/generated-archives/make_dangling_symlink_to_windows_invalid.tar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-worktree-state/tests/fixtures/generated-archives/make_dangling_symlink_to_windows_invalid.tar -------------------------------------------------------------------------------- /gix-worktree-state/tests/fixtures/generated-archives/make_dangling_symlink_to_windows_reserved.tar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-worktree-state/tests/fixtures/generated-archives/make_dangling_symlink_to_windows_reserved.tar -------------------------------------------------------------------------------- /gix-worktree-state/tests/fixtures/generated-archives/make_dir_symlink.tar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-worktree-state/tests/fixtures/generated-archives/make_dir_symlink.tar -------------------------------------------------------------------------------- /gix-worktree-state/tests/fixtures/generated-archives/make_traverse_trees.tar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix-worktree-state/tests/fixtures/generated-archives/make_traverse_trees.tar -------------------------------------------------------------------------------- /gix-worktree-state/tests/fixtures/make_dangling_symlink.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -eu -o pipefail 3 | 4 | git init -q 5 | 6 | target_oid=$(echo -n "non-existing-target" | git hash-object -w --stdin) 7 | 8 | git update-index --index-info < = std::result::Result>; 6 | 7 | pub fn fixture_path(name: &str) -> PathBuf { 8 | let dir = gix_testtools::scripted_fixture_read_only_standalone(Path::new(name).with_extension("sh")) 9 | .expect("script works"); 10 | dir 11 | } 12 | -------------------------------------------------------------------------------- /gix-worktree-state/tests/worktree.rs: -------------------------------------------------------------------------------- 1 | mod state; 2 | use state::*; 3 | -------------------------------------------------------------------------------- /gix-worktree-stream/LICENSE-APACHE: -------------------------------------------------------------------------------- 1 | ../LICENSE-APACHE -------------------------------------------------------------------------------- /gix-worktree-stream/LICENSE-MIT: -------------------------------------------------------------------------------- 1 | ../LICENSE-MIT -------------------------------------------------------------------------------- /gix-worktree-stream/tests/fixtures/generated-archives/.gitignore: -------------------------------------------------------------------------------- 1 | basic.tar 2 | -------------------------------------------------------------------------------- /gix-worktree/LICENSE-APACHE: -------------------------------------------------------------------------------- 1 | ../LICENSE-APACHE -------------------------------------------------------------------------------- /gix-worktree/LICENSE-MIT: -------------------------------------------------------------------------------- 1 | ../LICENSE-MIT -------------------------------------------------------------------------------- /gix-worktree/tests/fixtures/generated-archives/.gitignore: -------------------------------------------------------------------------------- 1 | make_ignore_and_attributes_setup.tar 2 | make_attributes_baseline.tar 3 | symlink_stack.tar 4 | -------------------------------------------------------------------------------- /gix-worktree/tests/fixtures/make_special_exclude_case.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -eu -o pipefail 3 | 4 | git init -q 5 | 6 | mkdir -p tld tld/sd 7 | cat <.gitignore 8 | # directory exclude 9 | tld/ 10 | 11 | !tld/file 12 | EOF 13 | 14 | cat <tld/.gitignore 15 | sd/ 16 | !sd/ 17 | 18 | !file 19 | EOF 20 | 21 | git check-ignore -vn --stdin 2>&1 <git-check-ignore.baseline || : 22 | tld 23 | tld/ 24 | tld/file 25 | tld/sd 26 | tld/sd/ 27 | EOF 28 | 29 | -------------------------------------------------------------------------------- /gix-worktree/tests/integrate.rs: -------------------------------------------------------------------------------- 1 | mod worktree; 2 | use worktree::*; 3 | -------------------------------------------------------------------------------- /gix-worktree/tests/worktree/mod.rs: -------------------------------------------------------------------------------- 1 | use gix_hash::ObjectId; 2 | 3 | mod stack; 4 | 5 | pub use gix_testtools::Result; 6 | 7 | pub fn hex_to_id(hex: &str) -> ObjectId { 8 | ObjectId::from_hex(hex.as_bytes()).expect("40 bytes hex") 9 | } 10 | -------------------------------------------------------------------------------- /gix/LICENSE-APACHE: -------------------------------------------------------------------------------- 1 | ../LICENSE-APACHE -------------------------------------------------------------------------------- /gix/LICENSE-MIT: -------------------------------------------------------------------------------- 1 | ../LICENSE-MIT -------------------------------------------------------------------------------- /gix/src/assets/init/HEAD: -------------------------------------------------------------------------------- 1 | ref: refs/heads/main 2 | -------------------------------------------------------------------------------- /gix/src/assets/init/description: -------------------------------------------------------------------------------- 1 | Unnamed repository; everything before the `;` is the name of the repository. 2 | -------------------------------------------------------------------------------- /gix/src/assets/init/hooks/docs.url: -------------------------------------------------------------------------------- 1 | https://git-scm.com/docs/githooks 2 | -------------------------------------------------------------------------------- /gix/src/assets/init/info/exclude: -------------------------------------------------------------------------------- 1 | # This file contains repository-wide exclude patterns that git will ignore. 2 | # They are local and will not be shared when pushing or pulling. 3 | # When using Rust the following would be typical exclude patterns. 4 | # Remove the '# ' prefix to let them take effect. 5 | # /target/ 6 | -------------------------------------------------------------------------------- /gix/src/config/cache/mod.rs: -------------------------------------------------------------------------------- 1 | use super::{Cache, Error}; 2 | 3 | mod incubate; 4 | pub(crate) use incubate::StageOne; 5 | 6 | mod init; 7 | 8 | impl std::fmt::Debug for Cache { 9 | fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 10 | f.debug_struct("Cache").finish_non_exhaustive() 11 | } 12 | } 13 | 14 | pub(crate) mod access; 15 | 16 | pub(crate) mod util; 17 | 18 | pub(crate) use util::interpolate_context; 19 | -------------------------------------------------------------------------------- /gix/src/config/snapshot/mod.rs: -------------------------------------------------------------------------------- 1 | mod _impls; 2 | mod access; 3 | 4 | /// 5 | #[cfg(feature = "credentials")] 6 | pub mod credential_helpers; 7 | #[cfg(feature = "credentials")] 8 | pub use credential_helpers::function::credential_helpers; 9 | -------------------------------------------------------------------------------- /gix/src/ext/mod.rs: -------------------------------------------------------------------------------- 1 | pub use object_id::ObjectIdExt; 2 | pub use reference::ReferenceExt; 3 | #[cfg(feature = "revision")] 4 | pub use rev_spec::RevSpecExt; 5 | #[cfg(feature = "blob-diff")] 6 | pub use tree::TreeDiffChangeExt; 7 | pub use tree::{TreeEntryExt, TreeEntryRefExt, TreeIterExt}; 8 | 9 | mod object_id; 10 | mod reference; 11 | #[cfg(feature = "revision")] 12 | mod rev_spec; 13 | mod tree; 14 | -------------------------------------------------------------------------------- /gix/src/ext/reference.rs: -------------------------------------------------------------------------------- 1 | /// Extensions for [references][gix_ref::Reference]. 2 | pub trait ReferenceExt { 3 | /// Attach [`Repository`][crate::Repository] to the given reference. It can be detached later with [`detach()]`. 4 | fn attach(self, repo: &crate::Repository) -> crate::Reference<'_>; 5 | } 6 | 7 | impl ReferenceExt for gix_ref::Reference { 8 | fn attach(self, repo: &crate::Repository) -> crate::Reference<'_> { 9 | crate::Reference::from_ref(self, repo) 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /gix/src/path.rs: -------------------------------------------------------------------------------- 1 | use std::path::PathBuf; 2 | 3 | pub use gix_path::*; 4 | 5 | pub(crate) fn install_dir() -> std::io::Result { 6 | std::env::current_exe().and_then(|exe| { 7 | exe.parent() 8 | .map(ToOwned::to_owned) 9 | .ok_or_else(|| std::io::Error::other("no parent for current executable")) 10 | }) 11 | } 12 | -------------------------------------------------------------------------------- /gix/src/prelude.rs: -------------------------------------------------------------------------------- 1 | pub use gix_features::parallel::reduce::Finalize; 2 | pub use gix_object::{Find, FindExt, Write}; 3 | pub use gix_odb::{Header, HeaderExt}; 4 | 5 | pub use crate::ext::*; 6 | -------------------------------------------------------------------------------- /gix/src/progress.rs: -------------------------------------------------------------------------------- 1 | #[cfg(feature = "progress-tree")] 2 | pub use gix_features::progress::prodash::tree; 3 | pub use gix_features::progress::*; 4 | -------------------------------------------------------------------------------- /gix/src/remote/url/mod.rs: -------------------------------------------------------------------------------- 1 | mod rewrite; 2 | /// 3 | #[cfg(any(feature = "blocking-network-client", feature = "async-network-client"))] 4 | pub mod scheme_permission; 5 | pub(crate) use rewrite::Rewrite; 6 | #[cfg(any(feature = "blocking-network-client", feature = "async-network-client"))] 7 | pub(crate) use scheme_permission::SchemePermission; 8 | -------------------------------------------------------------------------------- /gix/tests/fixtures/assets/jj-trackcopy-1/2de73f57fc9599602e001fc6331034749b2eacb0.msg: -------------------------------------------------------------------------------- 1 | conflicts: remove redundant information from ReadFile error 2 | 3 | The ReadFile error message already says "when reading file content for file 4 | {path}..". 5 | -------------------------------------------------------------------------------- /gix/tests/fixtures/assets/jj-trackcopy-1/47bd6f4aa4a7eeef8b01ce168c6c771bdfffcbd3.msg: -------------------------------------------------------------------------------- 1 | feat: Create a `file` command containing `print` and `chmod` 2 | 3 | - rearrange the files involved to be more clear about structure 4 | - deprecate existing `jj cat` and `jj chmod` 5 | -------------------------------------------------------------------------------- /gix/tests/fixtures/generated-archives/.gitignore: -------------------------------------------------------------------------------- 1 | /make_worktree_repo.tar 2 | /make_worktree_repo_bare.tar 3 | /make_worktree_repo_with_configs.tar 4 | /make_remote_repos.tar 5 | /make_complex_shallow_repo.tar 6 | /make_fetch_repos.tar 7 | /make_core_worktree_repo.tar 8 | /make_signatures_repo.tar 9 | /make_diff_repos.tar 10 | /make_submodule_with_worktree.tar 11 | /repo_with_untracked_files.tar -------------------------------------------------------------------------------- /gix/tests/fixtures/generated-archives/make_am_repo.tar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix/tests/fixtures/generated-archives/make_am_repo.tar -------------------------------------------------------------------------------- /gix/tests/fixtures/generated-archives/make_basic_repo.tar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix/tests/fixtures/generated-archives/make_basic_repo.tar -------------------------------------------------------------------------------- /gix/tests/fixtures/generated-archives/make_bisect_repo.tar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix/tests/fixtures/generated-archives/make_bisect_repo.tar -------------------------------------------------------------------------------- /gix/tests/fixtures/generated-archives/make_cherry_pick_repo.tar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix/tests/fixtures/generated-archives/make_cherry_pick_repo.tar -------------------------------------------------------------------------------- /gix/tests/fixtures/generated-archives/make_cherry_pick_sequence_repo.tar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix/tests/fixtures/generated-archives/make_cherry_pick_sequence_repo.tar -------------------------------------------------------------------------------- /gix/tests/fixtures/generated-archives/make_commit_describe_multiple_tags.tar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix/tests/fixtures/generated-archives/make_commit_describe_multiple_tags.tar -------------------------------------------------------------------------------- /gix/tests/fixtures/generated-archives/make_config_repo.tar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix/tests/fixtures/generated-archives/make_config_repo.tar -------------------------------------------------------------------------------- /gix/tests/fixtures/generated-archives/make_diff_repo.tar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix/tests/fixtures/generated-archives/make_diff_repo.tar -------------------------------------------------------------------------------- /gix/tests/fixtures/generated-archives/make_head_repos.tar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix/tests/fixtures/generated-archives/make_head_repos.tar -------------------------------------------------------------------------------- /gix/tests/fixtures/generated-archives/make_merge_repo.tar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix/tests/fixtures/generated-archives/make_merge_repo.tar -------------------------------------------------------------------------------- /gix/tests/fixtures/generated-archives/make_packed_and_loose.tar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix/tests/fixtures/generated-archives/make_packed_and_loose.tar -------------------------------------------------------------------------------- /gix/tests/fixtures/generated-archives/make_pre_epoch_repo.tar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix/tests/fixtures/generated-archives/make_pre_epoch_repo.tar -------------------------------------------------------------------------------- /gix/tests/fixtures/generated-archives/make_rebase_i_repo.tar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix/tests/fixtures/generated-archives/make_rebase_i_repo.tar -------------------------------------------------------------------------------- /gix/tests/fixtures/generated-archives/make_references_repo.tar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix/tests/fixtures/generated-archives/make_references_repo.tar -------------------------------------------------------------------------------- /gix/tests/fixtures/generated-archives/make_reftable_repo.tar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix/tests/fixtures/generated-archives/make_reftable_repo.tar -------------------------------------------------------------------------------- /gix/tests/fixtures/generated-archives/make_remote_config_repos.tar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix/tests/fixtures/generated-archives/make_remote_config_repos.tar -------------------------------------------------------------------------------- /gix/tests/fixtures/generated-archives/make_repo_with_fork_and_dates.tar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix/tests/fixtures/generated-archives/make_repo_with_fork_and_dates.tar -------------------------------------------------------------------------------- /gix/tests/fixtures/generated-archives/make_rev_parse_repo.tar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix/tests/fixtures/generated-archives/make_rev_parse_repo.tar -------------------------------------------------------------------------------- /gix/tests/fixtures/generated-archives/make_rev_spec_parse_repos.tar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix/tests/fixtures/generated-archives/make_rev_spec_parse_repos.tar -------------------------------------------------------------------------------- /gix/tests/fixtures/generated-archives/make_revert_repo.tar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix/tests/fixtures/generated-archives/make_revert_repo.tar -------------------------------------------------------------------------------- /gix/tests/fixtures/generated-archives/make_revert_sequence_repo.tar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix/tests/fixtures/generated-archives/make_revert_sequence_repo.tar -------------------------------------------------------------------------------- /gix/tests/fixtures/generated-archives/make_shallow_repo.tar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix/tests/fixtures/generated-archives/make_shallow_repo.tar -------------------------------------------------------------------------------- /gix/tests/fixtures/generated-archives/make_status_repos.tar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix/tests/fixtures/generated-archives/make_status_repos.tar -------------------------------------------------------------------------------- /gix/tests/fixtures/generated-archives/make_submodules.tar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/gix/tests/fixtures/generated-archives/make_submodules.tar -------------------------------------------------------------------------------- /gix/tests/fixtures/make_bisect_repo.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -eu -o pipefail 3 | 4 | git init -q 5 | 6 | touch f1 f2 7 | 8 | git add f1 9 | git commit -m f1 f1 10 | 11 | git add f2 12 | git commit -m f2 f2 13 | 14 | git bisect start 15 | -------------------------------------------------------------------------------- /gix/tests/fixtures/make_cherry_pick_repo.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -eu -o pipefail 3 | 4 | git init -q 5 | 6 | touch file 7 | git add file 8 | git commit -m first file 9 | 10 | git checkout -b other-branch 11 | echo other-branch > file 12 | git commit -m file.other file 13 | 14 | git checkout main 15 | echo main > file 16 | git add file 17 | git commit -m file.main file 18 | 19 | # This should fail and leave us in a cherry-pick state 20 | git cherry-pick other-branch || true 21 | -------------------------------------------------------------------------------- /gix/tests/fixtures/make_complex_shallow_repo.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -eu -o pipefail 3 | 4 | remote="${1:?First argument is the complex repo to clone from}" 5 | 6 | git clone --depth 3 file://"$remote" shallow 7 | git clone --depth 3 --bare file://"$remote" shallow.git 8 | -------------------------------------------------------------------------------- /gix/tests/fixtures/make_empty_repo.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -eu -o pipefail 3 | 4 | git -c init.defaultBranch=special init -q 5 | -------------------------------------------------------------------------------- /gix/tests/fixtures/make_merge_repo.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -eu -o pipefail 3 | 4 | git init -q 5 | 6 | echo file.main > file 7 | git add file 8 | git commit -m file.main file 9 | 10 | git checkout -b other-branch 11 | echo file.other-branch > file 12 | git add file 13 | git commit -m file.other-branch file 14 | 15 | git checkout main 16 | echo file.main changed > file 17 | git commit -m file.main\ changed file 18 | 19 | git merge other-branch || true 20 | -------------------------------------------------------------------------------- /gix/tests/fixtures/make_packed_and_loose.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -eu -o pipefail 3 | 4 | git init -q 5 | 6 | git checkout -b main 7 | touch this 8 | git add this 9 | git commit -q -m c1 10 | echo hello >> this 11 | git commit -q -am c2 12 | 13 | git gc 14 | 15 | echo hello >> this 16 | echo hello >> that 17 | git add . && git commit -m "loose" 18 | -------------------------------------------------------------------------------- /gix/tests/fixtures/make_reftable_repo.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -eu -o pipefail 3 | 4 | git init -q 5 | 6 | git checkout -b main 7 | touch this 8 | git add this 9 | git commit -q -m c1 10 | echo hello >> this 11 | git commit -q -am c2 12 | 13 | git clone --ref-format=reftable . reftable-clone 14 | -------------------------------------------------------------------------------- /gix/tests/fixtures/make_revert_repo.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -eu -o pipefail 3 | 4 | git init -q 5 | 6 | touch f1 f2 f3 7 | git add f1 8 | git commit -m f1 f1 9 | git add f2 10 | git commit -m f2 f2 11 | git add f3 12 | git commit -m f3 f3 13 | git revert --no-commit HEAD~1 14 | -------------------------------------------------------------------------------- /gix/tests/fixtures/make_revert_sequence_repo.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -eu -o pipefail 3 | 4 | git init -q 5 | 6 | echo 1.0 > 1 7 | git add 1 8 | git commit -m 1.0 1 9 | 10 | echo 1.1 > 1 11 | git commit -m 1.1 1 12 | 13 | echo 1.2 > 1 14 | git commit -m 1.2 1 15 | touch 2 16 | git add 2 17 | git commit -m 2 2 18 | 19 | # This should fail and leave us in a revert + sequencer state 20 | git revert --no-commit HEAD HEAD~2 || true 21 | -------------------------------------------------------------------------------- /gix/tests/fixtures/make_submodule_with_worktree.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -eu -o pipefail 3 | 4 | git init -q module1 5 | (cd module1 6 | touch this 7 | git add . && git commit -q -m c1 8 | ) 9 | 10 | git init submodule-with-extra-worktree-host 11 | (cd submodule-with-extra-worktree-host 12 | git submodule add ../module1 m1 13 | (cd m1 14 | git worktree add ../../worktree-of-submodule 15 | ) 16 | ) 17 | -------------------------------------------------------------------------------- /gix/tests/fixtures/repo_with_untracked_files.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -eu -o pipefail 3 | 4 | git init embedded-repository 5 | (cd embedded-repository 6 | echo content >file && git add file && git commit -m "init" 7 | ) 8 | 9 | git init -q 10 | echo content >file 11 | ln -s file link 12 | 13 | echo binary >exe && chmod +x exe 14 | mkfifo fifo 15 | 16 | git submodule add ./embedded-repository submodule 17 | 18 | mkdir empty-dir 19 | git init uninitialized-embedded-repository -------------------------------------------------------------------------------- /gix/tests/gix/config/mod.rs: -------------------------------------------------------------------------------- 1 | mod tree; 2 | -------------------------------------------------------------------------------- /gix/tests/gix/main.rs: -------------------------------------------------------------------------------- 1 | #![allow(clippy::result_large_err, clippy::unnecessary_debug_formatting)] 2 | mod util; 3 | use util::*; 4 | 5 | mod clone; 6 | mod commit; 7 | mod config; 8 | #[cfg(feature = "blob-diff")] 9 | mod diff; 10 | mod head; 11 | mod id; 12 | mod init; 13 | mod object; 14 | mod reference; 15 | mod remote; 16 | mod repository; 17 | #[cfg(feature = "revision")] 18 | mod revision; 19 | #[cfg(feature = "status")] 20 | mod status; 21 | #[cfg(feature = "attributes")] 22 | mod submodule; 23 | -------------------------------------------------------------------------------- /gix/tests/gix/object/blob.rs: -------------------------------------------------------------------------------- 1 | // TODO: needs repos with specific known objects for proper testing 2 | mod diff {} 3 | -------------------------------------------------------------------------------- /gix/tests/gix/revision/mod.rs: -------------------------------------------------------------------------------- 1 | mod spec; 2 | -------------------------------------------------------------------------------- /gix/tests/gix/revision/spec/mod.rs: -------------------------------------------------------------------------------- 1 | mod from_bytes; 2 | -------------------------------------------------------------------------------- /rustfmt-nightly.toml: -------------------------------------------------------------------------------- 1 | group_imports = "StdExternalCrate" 2 | imports_granularity = "Crate" 3 | max_width = 120 4 | -------------------------------------------------------------------------------- /rustfmt.toml: -------------------------------------------------------------------------------- 1 | max_width = 120 2 | -------------------------------------------------------------------------------- /src/ein.rs: -------------------------------------------------------------------------------- 1 | #![deny(rust_2018_idioms, unsafe_code)] 2 | 3 | fn main() -> anyhow::Result<()> { 4 | gitoxide::porcelain::main() 5 | } 6 | 7 | #[cfg(not(feature = "pretty-cli"))] 8 | compile_error!("Please set 'pretty-cli' feature flag"); 9 | -------------------------------------------------------------------------------- /src/gix.rs: -------------------------------------------------------------------------------- 1 | #![deny(unsafe_code, rust_2018_idioms)] 2 | 3 | #[cfg(feature = "pretty-cli")] 4 | fn main() -> anyhow::Result<()> { 5 | gitoxide::plumbing::main() 6 | } 7 | 8 | #[cfg(not(feature = "pretty-cli"))] 9 | compile_error!("Please set 'pretty-cli' feature flag"); 10 | -------------------------------------------------------------------------------- /src/plumbing/mod.rs: -------------------------------------------------------------------------------- 1 | mod main; 2 | pub use main::main; 3 | 4 | #[path = "progress.rs"] 5 | mod progress_impl; 6 | pub use progress_impl::show_progress; 7 | 8 | mod options; 9 | -------------------------------------------------------------------------------- /src/porcelain/mod.rs: -------------------------------------------------------------------------------- 1 | mod options; 2 | 3 | mod main; 4 | pub use main::main; 5 | -------------------------------------------------------------------------------- /tests/fixtures/packs/pack-11fdfa9e156ab73caae3b6da867192221f2089c2.idx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/tests/fixtures/packs/pack-11fdfa9e156ab73caae3b6da867192221f2089c2.idx -------------------------------------------------------------------------------- /tests/fixtures/packs/pack-11fdfa9e156ab73caae3b6da867192221f2089c2.pack: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/tests/fixtures/packs/pack-11fdfa9e156ab73caae3b6da867192221f2089c2.pack -------------------------------------------------------------------------------- /tests/fixtures/packs/pack-c0438c19fb16422b6bbcce24387b3264416d485b.idx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/tests/fixtures/packs/pack-c0438c19fb16422b6bbcce24387b3264416d485b.idx -------------------------------------------------------------------------------- /tests/fixtures/packs/pack-c0438c19fb16422b6bbcce24387b3264416d485b.pack: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/tests/fixtures/packs/pack-c0438c19fb16422b6bbcce24387b3264416d485b.pack -------------------------------------------------------------------------------- /tests/it/Cargo.lock: -------------------------------------------------------------------------------- 1 | # This file is automatically @generated by Cargo. 2 | # It is not intended for manual editing. 3 | [[package]] 4 | name = "jtt" 5 | version = "0.1.0" 6 | -------------------------------------------------------------------------------- /tests/it/src/commands/env.rs: -------------------------------------------------------------------------------- 1 | pub(super) mod function { 2 | pub fn env() -> anyhow::Result<()> { 3 | for (name, value) in std::env::vars_os() { 4 | println!("{}={}", repr(&name), repr(&value)); 5 | } 6 | Ok(()) 7 | } 8 | 9 | fn repr(text: &std::ffi::OsStr) -> String { 10 | text.to_str() 11 | .filter(|s| !s.chars().any(|c| c == '"' || c == '\n')) 12 | .map_or_else(|| format!("{text:?}"), ToOwned::to_owned) 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /tests/it/src/commands/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod copy_royal; 2 | pub use copy_royal::function::copy_royal; 3 | 4 | pub mod git_to_sh; 5 | pub use git_to_sh::function::git_to_sh; 6 | 7 | pub mod check_mode; 8 | pub use check_mode::function::check_mode; 9 | 10 | pub mod env; 11 | pub use env::function::env; 12 | -------------------------------------------------------------------------------- /tests/snapshots/panic-behaviour/expected-failure: -------------------------------------------------------------------------------- 1 | 2 | thread 'main' panicked at src/porcelain/main.rs:42:42: 3 | something went very wrong 4 | note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace -------------------------------------------------------------------------------- /tests/snapshots/panic-behaviour/expected-failure-in-thread: -------------------------------------------------------------------------------- 1 | 2 | thread 'main' panicked at src/porcelain/main.rs:42:42: 3 | something went very wrong 4 | note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace 5 |  -------------------------------------------------------------------------------- /tests/snapshots/panic-behaviour/expected-failure-in-thread-with-progress: -------------------------------------------------------------------------------- 1 | [?1049h[?25l 2 | thread '' panicked at src/porcelain/main.rs:42:42: 3 | something went very wrong 4 | note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace 5 | [?25h[?1049l -------------------------------------------------------------------------------- /tests/snapshots/plumbing/commit-graph/verify/statistics-json-success: -------------------------------------------------------------------------------- 1 | { 2 | "longest_path_length": 2, 3 | "num_commits": 3, 4 | "parent_counts": { 5 | "0": 1, 6 | "1": 2 7 | } 8 | } -------------------------------------------------------------------------------- /tests/snapshots/plumbing/commit-graph/verify/statistics-success: -------------------------------------------------------------------------------- 1 | number of commits with the given number of parents 2 | 0: 1 3 | 1: 2 4 | ->: 3 5 | 6 | longest path length between two commits: 2 -------------------------------------------------------------------------------- /tests/snapshots/plumbing/no-repo/pack/clone/fail-ambiguous-host: -------------------------------------------------------------------------------- 1 |  Error: Host name '-oProxyCommand=open$IFS-aCalculator' could be mistaken for a command-line argument -------------------------------------------------------------------------------- /tests/snapshots/plumbing/no-repo/pack/clone/fail-ambiguous-path: -------------------------------------------------------------------------------- 1 |  Error: The repository path '-oProxyCommand=open$IFS-aCalculator/bar' could be mistaken for a command-line argument -------------------------------------------------------------------------------- /tests/snapshots/plumbing/no-repo/pack/clone/fail-ambiguous-username/explicit-ssh: -------------------------------------------------------------------------------- 1 |  Error: Username '-Fconfigfile' could be mistaken for a command-line argument -------------------------------------------------------------------------------- /tests/snapshots/plumbing/no-repo/pack/clone/fail-ambiguous-username/implicit-ssh: -------------------------------------------------------------------------------- 1 |  Error: Username '-Fconfigfile' could be mistaken for a command-line argument -------------------------------------------------------------------------------- /tests/snapshots/plumbing/no-repo/pack/explode/broken-delete-pack-to-sink-failure: -------------------------------------------------------------------------------- 1 | Error: Failed to explode the entire pack - some loose objects may have been created nonetheless 2 | 3 | Caused by: 4 | 0: Failed to verify pack file checksum 5 | 1: Hash was 337fe3b886fc5041a35313887d68feefeae52519, but should have been f1cd3cc7bc63a4a2b357a475a58ad49b40355470 -------------------------------------------------------------------------------- /tests/snapshots/plumbing/no-repo/pack/explode/broken-delete-pack-to-sink-skip-checks-success: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/tests/snapshots/plumbing/no-repo/pack/explode/broken-delete-pack-to-sink-skip-checks-success -------------------------------------------------------------------------------- /tests/snapshots/plumbing/no-repo/pack/explode/missing-objects-dir-fail: -------------------------------------------------------------------------------- 1 | Error: The object directory at 'does-not-exist' is inaccessible -------------------------------------------------------------------------------- /tests/snapshots/plumbing/no-repo/pack/explode/to-sink-delete-pack-success: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/tests/snapshots/plumbing/no-repo/pack/explode/to-sink-delete-pack-success -------------------------------------------------------------------------------- /tests/snapshots/plumbing/no-repo/pack/explode/to-sink-success: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/tests/snapshots/plumbing/no-repo/pack/explode/to-sink-success -------------------------------------------------------------------------------- /tests/snapshots/plumbing/no-repo/pack/explode/with-objects-dir-success: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/tests/snapshots/plumbing/no-repo/pack/explode/with-objects-dir-success -------------------------------------------------------------------------------- /tests/snapshots/plumbing/no-repo/pack/index/create/no-output-dir-success: -------------------------------------------------------------------------------- 1 | index: 560eba66e6b391eb83efc3ec9fc8a3087788911c 2 | pack: f1cd3cc7bc63a4a2b357a475a58ad49b40355470 -------------------------------------------------------------------------------- /tests/snapshots/plumbing/no-repo/pack/index/create/output-dir-content: -------------------------------------------------------------------------------- 1 | pack-f1cd3cc7bc63a4a2b357a475a58ad49b40355470.idx 2 | pack-f1cd3cc7bc63a4a2b357a475a58ad49b40355470.keep 3 | pack-f1cd3cc7bc63a4a2b357a475a58ad49b40355470.pack -------------------------------------------------------------------------------- /tests/snapshots/plumbing/no-repo/pack/index/create/output-dir-restore-success: -------------------------------------------------------------------------------- 1 | index: 2cb961e55b7a7cab5f15f2220724e5dd7adef9f4 2 | pack: 01ba68ba55ef5e917483d4ce46be2884a89e51af -------------------------------------------------------------------------------- /tests/snapshots/plumbing/no-repo/pack/index/create/output-dir-success: -------------------------------------------------------------------------------- 1 | index: 560eba66e6b391eb83efc3ec9fc8a3087788911c 2 | pack: f1cd3cc7bc63a4a2b357a475a58ad49b40355470 -------------------------------------------------------------------------------- /tests/snapshots/plumbing/no-repo/pack/receive/fail-ambiguous-host: -------------------------------------------------------------------------------- 1 | Error: Host name '-oProxyCommand=open$IFS-aCalculator' could be mistaken for a command-line argument -------------------------------------------------------------------------------- /tests/snapshots/plumbing/no-repo/pack/receive/fail-ambiguous-path: -------------------------------------------------------------------------------- 1 | Error: The repository path '-oProxyCommand=open$IFS-aCalculator/bar' could be mistaken for a command-line argument -------------------------------------------------------------------------------- /tests/snapshots/plumbing/no-repo/pack/receive/fail-ambiguous-username/explicit-ssh: -------------------------------------------------------------------------------- 1 | Error: Username '-Fconfigfile' could be mistaken for a command-line argument -------------------------------------------------------------------------------- /tests/snapshots/plumbing/no-repo/pack/receive/fail-ambiguous-username/implicit-ssh: -------------------------------------------------------------------------------- 1 | Error: Username '-Fconfigfile' could be mistaken for a command-line argument -------------------------------------------------------------------------------- /tests/snapshots/plumbing/no-repo/pack/receive/file-v-any-no-output-non-existing-single-ref: -------------------------------------------------------------------------------- 1 | Error: None of the refspec(s) refs/heads/does-not-exist matched any of the 2 refs on the remote -------------------------------------------------------------------------------- /tests/snapshots/plumbing/no-repo/pack/receive/file-v-any-no-output-p2: -------------------------------------------------------------------------------- 1 | index: 8e48437a86dfb3939de997bb66b4bbedde9c2259 2 | pack: 24d2f055141373bf1011f1b0fce5dd8929a3a869 3 | 4 | ee3c97678e89db4eab7420b04aef51758359f152 refs/heads/dev 5 | 3f72b39ad1600e6dac63430c15e0d875e9d3f9d6 refs/heads/main -------------------------------------------------------------------------------- /tests/snapshots/plumbing/no-repo/pack/receive/file-v-any-no-output-single-ref: -------------------------------------------------------------------------------- 1 | index: c787de2aafb897417ca8167baeb146eabd18bc5f 2 | pack: 346574b7331dc3a1724da218d622c6e1b6c66a57 3 | 4 | ee3c97678e89db4eab7420b04aef51758359f152 refs/heads/dev 5 | 3f72b39ad1600e6dac63430c15e0d875e9d3f9d6 refs/heads/main -------------------------------------------------------------------------------- /tests/snapshots/plumbing/no-repo/pack/receive/file-v-any-no-output-wanted-ref-p1: -------------------------------------------------------------------------------- 1 | Error: None of the refspec(s) =refs/heads/main matched any of the 5 refs on the remote -------------------------------------------------------------------------------- /tests/snapshots/plumbing/no-repo/pack/receive/file-v-any-with-output-p2: -------------------------------------------------------------------------------- 1 | index: 8e48437a86dfb3939de997bb66b4bbedde9c2259 (out/pack-24d2f055141373bf1011f1b0fce5dd8929a3a869.idx) 2 | pack: 24d2f055141373bf1011f1b0fce5dd8929a3a869 (out/pack-24d2f055141373bf1011f1b0fce5dd8929a3a869.pack) 3 | 4 | ee3c97678e89db4eab7420b04aef51758359f152 refs/heads/dev 5 | 3f72b39ad1600e6dac63430c15e0d875e9d3f9d6 refs/heads/main -------------------------------------------------------------------------------- /tests/snapshots/plumbing/no-repo/pack/receive/ls-in-output-dir: -------------------------------------------------------------------------------- 1 | pack-24d2f055141373bf1011f1b0fce5dd8929a3a869.idx 2 | pack-24d2f055141373bf1011f1b0fce5dd8929a3a869.keep 3 | pack-24d2f055141373bf1011f1b0fce5dd8929a3a869.pack -------------------------------------------------------------------------------- /tests/snapshots/plumbing/no-repo/pack/receive/pack receive-no-networking-in-small-failure: -------------------------------------------------------------------------------- 1 | error: unrecognized subcommand 'receive' 2 | 3 | Usage: gix free pack 4 | 5 | For more information, try '--help'. -------------------------------------------------------------------------------- /tests/snapshots/plumbing/no-repo/pack/receive/repo-refs/HEAD: -------------------------------------------------------------------------------- 1 | ref: refs/heads/main -------------------------------------------------------------------------------- /tests/snapshots/plumbing/no-repo/pack/receive/repo-refs/refs/heads/dev: -------------------------------------------------------------------------------- 1 | ee3c97678e89db4eab7420b04aef51758359f152 -------------------------------------------------------------------------------- /tests/snapshots/plumbing/no-repo/pack/receive/repo-refs/refs/heads/main: -------------------------------------------------------------------------------- 1 | 3f72b39ad1600e6dac63430c15e0d875e9d3f9d6 -------------------------------------------------------------------------------- /tests/snapshots/plumbing/no-repo/pack/receive/repo-refs/refs/tags/annotated: -------------------------------------------------------------------------------- 1 | feae03400632392a7f38e5b2775f98a439f5eaf5 -------------------------------------------------------------------------------- /tests/snapshots/plumbing/no-repo/pack/receive/repo-refs/refs/tags/unannotated: -------------------------------------------------------------------------------- 1 | efa596d621559707b2d221f10490959b2decbc6c -------------------------------------------------------------------------------- /tests/snapshots/plumbing/no-repo/pack/verify/index-failure: -------------------------------------------------------------------------------- 1 | Could not find matching pack file at 'index.pack' - only index file will be verified, error was: Could not open pack file at 'index.pack' 2 | Error: Verification failure 3 | 4 | Caused by: 5 | 0: Failed to verify index file checksum 6 | 1: Hash was fa9a8a630eacc2d3df00aff604bec2451ccbc8ff, but should have been 0eba66e6b391eb83efc3ec9fc8a3087788911c0a -------------------------------------------------------------------------------- /tests/snapshots/plumbing/no-repo/pack/verify/index-success: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/tests/snapshots/plumbing/no-repo/pack/verify/index-success -------------------------------------------------------------------------------- /tests/snapshots/plumbing/no-repo/pack/verify/multi-index/fast-index-success: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/tests/snapshots/plumbing/no-repo/pack/verify/multi-index/fast-index-success -------------------------------------------------------------------------------- /tests/snapshots/plumbing/no-repo/pack/verify/multi-index/index-success: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/tests/snapshots/plumbing/no-repo/pack/verify/multi-index/index-success -------------------------------------------------------------------------------- /tests/snapshots/plumbing/no-repo/pack/verify/success: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/tests/snapshots/plumbing/no-repo/pack/verify/success -------------------------------------------------------------------------------- /tests/snapshots/plumbing/repository/remote/refs/file-v-any: -------------------------------------------------------------------------------- 1 | 3f72b39ad1600e6dac63430c15e0d875e9d3f9d6 HEAD symref-target:refs/heads/main 2 | ee3c97678e89db4eab7420b04aef51758359f152 refs/heads/dev 3 | 3f72b39ad1600e6dac63430c15e0d875e9d3f9d6 refs/heads/main 4 | feae03400632392a7f38e5b2775f98a439f5eaf5 refs/tags/annotated object:ee3c97678e89db4eab7420b04aef51758359f152 5 | efa596d621559707b2d221f10490959b2decbc6c refs/tags/unannotated -------------------------------------------------------------------------------- /tests/snapshots/plumbing/repository/remote/refs/remote ref-list-no-networking-in-small-failure: -------------------------------------------------------------------------------- 1 | error: unrecognized subcommand 'remote' 2 | 3 | tip: some similar subcommands exist: 'r', 'merge', 'tree', 'free' 4 | 5 | Usage: gix [OPTIONS] 6 | 7 | For more information, try '--help'. -------------------------------------------------------------------------------- /tests/snapshots/plumbing/repository/verify/success-format-human: -------------------------------------------------------------------------------- 1 | Human output is currently unsupported, use JSON instead -------------------------------------------------------------------------------- /tests/snapshots/plumbing/repository/verify/success-format-json: -------------------------------------------------------------------------------- 1 | { 2 | "index_statistics": [], 3 | "loose_object-stores": [ 4 | { 5 | "path": "./.git/objects", 6 | "statistics": { 7 | "num_objects": 9 8 | } 9 | } 10 | ] 11 | } -------------------------------------------------------------------------------- /tests/snapshots/porcelain/estimate-hours/file-stats-success: -------------------------------------------------------------------------------- 1 | total hours: 2.00 2 | total 8h days: 0.25 3 | total commits = 3 4 | total authors: 1 5 | total files added/removed/modified/remaining: 1/0/1/1 6 | total unique authors: 1 (0.00% duplication) -------------------------------------------------------------------------------- /tests/snapshots/porcelain/estimate-hours/invalid-branch-name-failure: -------------------------------------------------------------------------------- 1 | Error: The ref partially named "foobar" could not be found -------------------------------------------------------------------------------- /tests/snapshots/porcelain/estimate-hours/line-stats-success: -------------------------------------------------------------------------------- 1 | total hours: 2.00 2 | total 8h days: 0.25 3 | total commits = 3 4 | total authors: 1 5 | total lines added/removed/remaining: 1/0/1 6 | total unique authors: 1 (0.00% duplication) -------------------------------------------------------------------------------- /tests/snapshots/porcelain/estimate-hours/no-args-success: -------------------------------------------------------------------------------- 1 | total hours: 2.00 2 | total 8h days: 0.25 3 | total commits = 3 4 | total authors: 1 5 | total unique authors: 1 (0.00% duplication) -------------------------------------------------------------------------------- /tests/snapshots/porcelain/estimate-hours/no-unify-identities-success: -------------------------------------------------------------------------------- 1 | total hours: 2.00 2 | total 8h days: 0.25 3 | total commits = 3 4 | total authors: 1 -------------------------------------------------------------------------------- /tests/snapshots/porcelain/estimate-hours/show-pii-success: -------------------------------------------------------------------------------- 1 | Sebastian Thiel 2 | 3 commits found 3 | total time spent: 2.00h (0.25 8h days, 100.00%) 4 | 5 | total hours: 2.00 6 | total 8h days: 0.25 7 | total commits = 3 8 | total authors: 1 9 | total unique authors: 1 (0.00% duplication) -------------------------------------------------------------------------------- /tests/snapshots/porcelain/init/fail: -------------------------------------------------------------------------------- 1 | Error: Repository initialization failed 2 | 3 | Caused by: 4 | Refusing to initialize the existing '.git' directory -------------------------------------------------------------------------------- /tests/snapshots/porcelain/init/fail-with-multi-element-directory: -------------------------------------------------------------------------------- 1 | Error: Repository initialization failed 2 | 3 | Caused by: 4 | Refusing to initialize the existing 'foo/bar/.git' directory -------------------------------------------------------------------------------- /tests/snapshots/porcelain/init/success: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/tests/snapshots/porcelain/init/success -------------------------------------------------------------------------------- /tests/snapshots/porcelain/init/success-with-multi-element-directory: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/tests/snapshots/porcelain/init/success-with-multi-element-directory -------------------------------------------------------------------------------- /tests/snapshots/porcelain/tool/find/no-args-success: -------------------------------------------------------------------------------- 1 | ./a-non-bare-repo-with-extension.git 2 | ./dir/one-origin 3 | ./no-origin 4 | ./origin-and-fork 5 | ./special-origin -------------------------------------------------------------------------------- /tests/snapshots/porcelain/tool/organize/directory-structure-after-organize: -------------------------------------------------------------------------------- 1 | . 2 | ./dir 3 | ./example.com 4 | ./example.com/a-repo-with-extension 5 | ./example.com/one-origin 6 | ./example.com/origin-and-fork 7 | ./no-origin 8 | ./no-origin/.git 9 | ./no-origin/a 10 | ./special-origin 11 | ./special-origin/.git 12 | ./special-origin/a -------------------------------------------------------------------------------- /tests/snapshots/porcelain/tool/organize/directory-structure-after-organize-to-new-root: -------------------------------------------------------------------------------- 1 | . 2 | ./dir 3 | ./example.com 4 | ./example.com/one-origin 5 | ./no-origin 6 | ./no-origin/.git 7 | ./special-origin 8 | ./special-origin/.git -------------------------------------------------------------------------------- /tests/snapshots/porcelain/tool/organize/execute-success: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/tests/snapshots/porcelain/tool/organize/execute-success -------------------------------------------------------------------------------- /tests/snapshots/porcelain/tool/organize/execute-success-new-root: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/tests/snapshots/porcelain/tool/organize/execute-success-new-root -------------------------------------------------------------------------------- /tests/snapshots/porcelain/tool/organize/initial-directory-structure: -------------------------------------------------------------------------------- 1 | . 2 | ./a-non-bare-repo-with-extension.git 3 | ./a-non-bare-repo-with-extension.git/.git 4 | ./a-non-bare-repo-with-extension.git/a 5 | ./dir 6 | ./dir/one-origin 7 | ./no-origin 8 | ./no-origin/.git 9 | ./no-origin/a 10 | ./origin-and-fork 11 | ./origin-and-fork/.git 12 | ./origin-and-fork/a 13 | ./special-origin 14 | ./special-origin/.git 15 | ./special-origin/a -------------------------------------------------------------------------------- /tests/snapshots/porcelain/tool/organize/no-args-success: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GitoxideLabs/gitoxide/249bf9a2add29caa339c5f9783dd63f87a718c6e/tests/snapshots/porcelain/tool/organize/no-args-success -------------------------------------------------------------------------------- /tests/tools/Cargo.lock: -------------------------------------------------------------------------------- 1 | # This file is automatically @generated by Cargo. 2 | # It is not intended for manual editing. 3 | [[package]] 4 | name = "jtt" 5 | version = "0.1.0" 6 | -------------------------------------------------------------------------------- /tests/tools/LICENSE-APACHE: -------------------------------------------------------------------------------- 1 | ../../LICENSE-APACHE -------------------------------------------------------------------------------- /tests/tools/LICENSE-MIT: -------------------------------------------------------------------------------- 1 | ../../LICENSE-MIT --------------------------------------------------------------------------------