Skip to content

Commit

Permalink
Merge branch 'main' into msrv-for-windows
Browse files Browse the repository at this point in the history
  • Loading branch information
Byron committed May 3, 2022
2 parents aebc89f + 251b6df commit 7cb1972
Show file tree
Hide file tree
Showing 160 changed files with 5,020 additions and 2,109 deletions.
45 changes: 42 additions & 3 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 3 additions & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -146,9 +146,11 @@ members = [
"git-packetline",
"git-mailmap",
"git-note",
"git-filter",
"git-sec",
"git-lfs",
"git-rebase",
"git-sequencer",
"git-submodule",
"git-transport",
"git-credentials",
Expand All @@ -159,6 +161,7 @@ members = [
"git-lock",
"git-attributes",
"git-pathspec",
"git-path",
"git-repository",
"gitoxide-core",
"git-tui",
Expand Down
6 changes: 6 additions & 0 deletions DEVELOPMENT.md
Original file line number Diff line number Diff line change
Expand Up @@ -168,6 +168,12 @@ by humans.
Utilities to aid in keeping the project fresh and in sync can be found in the `Maintenance` section of the `makefile`. Run `make` to
get an overview.

## Reviewing PRs

- be sure to clone locally and run tests with `GITOXIDE_TEST_IGNORE_ARCHIVES=1` to assure new fixture scripts (if there are any) are validated
on _MacOS_ and _Windows_. Note that linux doesn't need to be tested that way as CI on linux ignores them by merit of not checking them out
via `git-lfs`.

## Creating a release

Run `make publish-all` to publish all crates in leaf-first order using `cargo release` based on the currently set version.
Expand Down
4 changes: 2 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ clippy: ## Run cargo clippy on all crates
cargo clippy --all --no-default-features --features lean-async --tests

check-msrv: ## run cargo msrv to validate the current msrv requirements, similar to what CI does
cd git-repository && cargo msrv verify
cd git-repository && cargo +1.54.0 check --package git-repository --no-default-features --features async-network-client,unstable,local-time-support,max-performance

check-win: ## see that windows compiles, provided the x86_64-pc-windows-msvc target and cargo-xwin are present.
cargo xwin build --target x86_64-pc-windows-msvc --no-default-features --features small
Expand Down Expand Up @@ -286,7 +286,7 @@ bench-git-config:
check-msrv-on-ci: ## Check the minimal support rust version for currently installed Rust version
rustc --version
cargo check --package git-repository
cargo check --package git-repository --no-default-features --features async-network-client
cargo check --package git-repository --no-default-features --features async-network-client,unstable,local-time-support,max-performance

##@ Maintenance

Expand Down
11 changes: 8 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,8 @@ Please see _'Development Status'_ for a listing of all crates and their capabili
* **mailmap**
* [x] **verify** - check entries of a mailmap file for parse errors and display them
* **repository**
* **exclude**
* [x] **query** - check if path specs are excluded via gits exclusion rules like `.gitignore`.
* **verify** - validate a whole repository, for now only the object database.
* **commit**
* [x] **describe** - identify a commit by its closest tag in its past
Expand Down Expand Up @@ -110,6 +112,9 @@ Crates that seem feature complete and need to see some more use before they can
* [git-traverse](https://github.com/Byron/gitoxide/blob/main/crate-status.md#git-traverse)
* [git-config](https://github.com/Byron/gitoxide/blob/main/crate-status.md#git-config)
* [git-features](https://github.com/Byron/gitoxide/blob/main/crate-status.md#git-features)
* [git-credentials](https://github.com/Byron/gitoxide/blob/main/crate-status.md#git-credentials)
* [git-sec](https://github.com/Byron/gitoxide/blob/main/crate-status.md#git-sec)
* [git-quote](https://github.com/Byron/gitoxide/blob/main/crate-status.md#git-quote)
* [git-ref](https://github.com/Byron/gitoxide/blob/main/crate-status.md#git-ref)
* [git-repository](https://github.com/Byron/gitoxide/blob/main/crate-status.md#git-repository)
* `gitoxide-core`
Expand All @@ -119,14 +124,14 @@ Crates that seem feature complete and need to see some more use before they can
* [git-bitmap](https://github.com/Byron/gitoxide/blob/main/crate-status.md#git-bitmap)
* [git-revision](https://github.com/Byron/gitoxide/blob/main/crate-status.md#git-revision)
* [git-attributes](https://github.com/Byron/gitoxide/blob/main/crate-status.md#git-attributes)
* [git-quote](https://github.com/Byron/gitoxide/blob/main/crate-status.md#git-quote)
* [git-path](https://github.com/Byron/gitoxide/blob/main/crate-status.md#git-path)
* **idea**
* [git-credentials](https://github.com/Byron/gitoxide/blob/main/crate-status.md#git-credentials)
* [git-sec](https://github.com/Byron/gitoxide/blob/main/crate-status.md#git-sec)
* [git-note](https://github.com/Byron/gitoxide/blob/main/crate-status.md#git-note)
* [git-filter](https://github.com/Byron/gitoxide/blob/main/crate-status.md#git-filter)
* [git-date](https://github.com/Byron/gitoxide/blob/main/crate-status.md#git-date)
* [git-lfs](https://github.com/Byron/gitoxide/blob/main/crate-status.md#git-lfs)
* [git-rebase](https://github.com/Byron/gitoxide/blob/main/crate-status.md#git-rebase)
* [git-sequencer](https://github.com/Byron/gitoxide/blob/main/crate-status.md#git-sequencer)
* [git-pathspec](https://github.com/Byron/gitoxide/blob/main/crate-status.md#git-pathspec)
* [git-submodule](https://github.com/Byron/gitoxide/blob/main/crate-status.md#git-submodule)
* [git-tui](https://github.com/Byron/gitoxide/blob/main/crate-status.md#git-tui)
Expand Down
22 changes: 21 additions & 1 deletion crate-status.md
Original file line number Diff line number Diff line change
Expand Up @@ -221,6 +221,13 @@ Check out the [performance discussion][git-traverse-performance] as well.
* [x] parsing
* [x] lookup and mapping of author names

### git-path
* [x] transformations to and from bytes
* [x] conversions between different platforms
* **spec**
* [ ] parse
* [ ] check for match

### git-pathspec
* [ ] parse
* [ ] check for match
Expand All @@ -236,6 +243,14 @@ A mechanism to associate metadata with any object, and keep revisions of it usin

### git-credentials
* [x] launch git credentials helpers with a given action

### git-filter

Provide base-implementations for dealing with smudge and clean filters as well as filter processes, facilitating their development.

* [ ] clean filter base
* [ ] smudge filter base
* [ ] filter process base

### git-sec

Expand All @@ -245,6 +260,10 @@ Provides a trust model to share across gitoxide crates. It helps configuring how
* [ ] obtain rebase status
* [ ] drive a rebase operation

### git-sequencer

Handle human-aided operations which cannot be completed in one command invocation.

### git-lfs

Implement git large file support using the process protocol and make it flexible enough to handle a variety of cases.
Expand Down Expand Up @@ -417,7 +436,8 @@ See its [README.md](https://github.com/Byron/gitoxide/blob/main/git-lock/README.
* **refs**
* [ ] run transaction hooks and handle special repository states like quarantine
* [ ] support for different backends like `files` and `reftable`
* [ ] worktrees
* **worktrees**
* [ ] open a repository with worktrees
* [ ] remotes with push and pull
* [x] mailmap
* [x] object replacements (`git replace`)
Expand Down
7 changes: 6 additions & 1 deletion etc/check-package-size.sh
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ echo "in root: gitoxide CLI"
(enter cargo-smart-release && indent cargo diet -n --package-size-limit 90KB)
(enter git-actor && indent cargo diet -n --package-size-limit 5KB)
(enter git-pathspec && indent cargo diet -n --package-size-limit 5KB)
(enter git-path && indent cargo diet -n --package-size-limit 10KB)
(enter git-attributes && indent cargo diet -n --package-size-limit 10KB)
(enter git-index && indent cargo diet -n --package-size-limit 30KB)
(enter git-worktree && indent cargo diet -n --package-size-limit 25KB)
Expand All @@ -30,13 +31,17 @@ echo "in root: gitoxide CLI"
(enter git-config && indent cargo diet -n --package-size-limit 70KB)
(enter git-hash && indent cargo diet -n --package-size-limit 15KB)
(enter git-chunk && indent cargo diet -n --package-size-limit 10KB)
(enter git-rebase && indent cargo diet -n --package-size-limit 5KB)
(enter git-sequencer && indent cargo diet -n --package-size-limit 5KB)
(enter git-features && indent cargo diet -n --package-size-limit 50KB)
(enter git-ref && indent cargo diet -n --package-size-limit 50KB)
(enter git-diff && indent cargo diet -n --package-size-limit 10KB)
(enter git-traverse && indent cargo diet -n --package-size-limit 10KB)
(enter git-url && indent cargo diet -n --package-size-limit 15KB)
(enter git-validate && indent cargo diet -n --package-size-limit 5KB)
(enter git-date && indent cargo diet -n --package-size-limit 5KB)
(enter git-filter && indent cargo diet -n --package-size-limit 5KB)
(enter git-lfs && indent cargo diet -n --package-size-limit 5KB)
(enter git-note && indent cargo diet -n --package-size-limit 5KB)
(enter git-sec && indent cargo diet -n --package-size-limit 5KB)
(enter git-tix && indent cargo diet -n --package-size-limit 5KB)
Expand All @@ -47,6 +52,6 @@ echo "in root: gitoxide CLI"
(enter git-odb && indent cargo diet -n --package-size-limit 120KB)
(enter git-protocol && indent cargo diet -n --package-size-limit 50KB)
(enter git-packetline && indent cargo diet -n --package-size-limit 35KB)
(enter git-repository && indent cargo diet -n --package-size-limit 90KB)
(enter git-repository && indent cargo diet -n --package-size-limit 100KB)
(enter git-transport && indent cargo diet -n --package-size-limit 50KB)
(enter gitoxide-core && indent cargo diet -n --package-size-limit 70KB)
6 changes: 5 additions & 1 deletion git-attributes/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -6,24 +6,28 @@ license = "MIT/Apache-2.0"
description = "A WIP crate of the gitoxide project dealing .gitattributes files"
authors = ["Sebastian Thiel <sebastian.thiel@icloud.com>"]
edition = "2018"
include = ["src/**/*", "CHANGELOG.md"]

[lib]
doctest = false

[features]
## Data structures implement `serde::Serialize` and `serde::Deserialize`.
serde1 = ["serde", "bstr/serde1", "git-glob/serde1"]
serde1 = ["serde", "bstr/serde1", "git-glob/serde1", "compact_str/serde"]

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[dependencies]
git-features = { version = "^0.20.0", path = "../git-features" }
git-path = { version = "^0.1.0", path = "../git-path" }
git-quote = { version = "^0.2.0", path = "../git-quote" }
git-glob = { version = "^0.2.0", path = "../git-glob" }

bstr = { version = "0.2.13", default-features = false, features = ["std"]}
unicode-bom = "1.1.4"
quick-error = "2.0.0"
serde = { version = "1.0.114", optional = true, default-features = false, features = ["derive"]}
compact_str = "0.3.2"

[dev-dependencies]
git-testtools = { path = "../tests/tools"}
Loading

0 comments on commit 7cb1972

Please sign in to comment.