History

Merge branch 'gix-blame'

Sebastian Thiel committed 2 years ago

Commit e6fbea92 parents c2753b8 6d71e0d11 files · +181 −22Browse files

Unified · Split

11 files
  1. .github/workflows/cifuzz.yml +22 −22
  2. Cargo.lock +7 −0
  3. Cargo.toml +1 −0
  4. gix-blame/CHANGELOG.md +94 −0
  5. gix-blame/Cargo.toml +17 −0
  6. gix-blame/LICENSE-APACHE +1 −0
  7. gix-blame/LICENSE-MIT +1 −0
  8. gix-blame/src/lib.rs +10 −0
  9. gix-blame/tests/blame.rs +4 −0
  10. gix-blame/tests/fixtures/generated-archives/.gitignore +1 −0
  11. gix-blame/tests/fixtures/make_blame_repo.sh +23 −0
.github/workflows/cifuzz.yml+22−22
@@ -1,24 +1,24 @@
11 name: CIFuzz
2−on: [pull_request]
2+on: [ ]
33 jobs:
4− Fuzzing:
5− runs-on: ubuntu-latest
6− steps:
7− - name: Build Fuzzers
8− id: build
9− uses: google/oss-fuzz/infra/cifuzz/actions/build_fuzzers@master
10− with:
11− oss-fuzz-project-name: 'gitoxide'
12− language: rust
13− - name: Run Fuzzers
14− uses: google/oss-fuzz/infra/cifuzz/actions/run_fuzzers@master
15− with:
16− oss-fuzz-project-name: 'gitoxide'
17− language: rust
18− fuzz-seconds: 600
19− - name: Upload Crash
20− uses: actions/upload-artifact@v4
21− if: failure() && steps.build.outcome == 'success'
22− with:
23− name: artifacts
24− path: ./out/artifacts
4+ Fuzzing:
5+ runs-on: ubuntu-latest
6+ steps:
7+ - name: Build Fuzzers
8+ id: build
9+ uses: google/oss-fuzz/infra/cifuzz/actions/build_fuzzers@master
10+ with:
11+ oss-fuzz-project-name: 'gitoxide'
12+ language: rust
13+ - name: Run Fuzzers
14+ uses: google/oss-fuzz/infra/cifuzz/actions/run_fuzzers@master
15+ with:
16+ oss-fuzz-project-name: 'gitoxide'
17+ language: rust
18+ fuzz-seconds: 600
19+ - name: Upload Crash
20+ uses: actions/upload-artifact@v4
21+ if: failure() && steps.build.outcome == 'success'
22+ with:
23+ name: artifacts
24+ path: ./out/artifacts
Cargo.lock+7−0
@@ -1460,6 +1460,13 @@ dependencies = [ · 1459 unmodified lines
14601460 "thiserror",
14611461 ]
14621462
1463+[[package]]
1464+name = "gix-blame"
1465+version = "0.0.0"
1466+dependencies = [
1467+ "gix-testtools",
1468+]
1469+
14631470 [[package]]
14641471 name = "gix-chunk"
14651472 version = "0.4.8"
Cargo.toml+1−0
@@ -276,6 +276,7 @@ members = [ · 275 unmodified lines
276276 "gix-path",
277277 "gix-utils",
278278 "gix-fs",
279+ "gix-blame",
279280 "gix",
280281 "gitoxide-core",
281282 "gix-hashtable",
gix-blame/CHANGELOG.md+94−0
@@ -0,0 +1,94 @@
1+# Changelog
2+
3+All notable changes to this project will be documented in this file.
4+
5+The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6+and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7+
8+## v0.1.0 (2023-02-17)
9+
10+<csr-id-f7f136dbe4f86e7dee1d54835c420ec07c96cd78/>
11+<csr-id-533e887e80c5f7ede8392884562e1c5ba56fb9a8/>
12+
13+### Chore
14+
15+ - <csr-id-f7f136dbe4f86e7dee1d54835c420ec07c96cd78/> uniformize deny attributes
16+ - <csr-id-533e887e80c5f7ede8392884562e1c5ba56fb9a8/> remove default link to cargo doc everywhere
17+
18+### Bug Fixes
19+
20+ - <csr-id-e14dc7d475373d2c266e84ff8f1826c68a34ab92/> note that crates have been renamed from `git-*` to `gix-*`.
21+ This also means that the `git-*` prefixed crates of the `gitoxide` project
22+ are effectively unmaintained.
23+ Use the crates with the `gix-*` prefix instead.
24+
25+ If you were using `git-repository`, then `gix` is its substitute.
26+
27+### New Features (BREAKING)
28+
29+ - <csr-id-3d8fa8fef9800b1576beab8a5bc39b821157a5ed/> upgrade edition to 2021 in most crates.
30+ MSRV for this is 1.56, and we are now at 1.60 so should be compatible.
31+ This isn't more than a patch release as it should break nobody
32+ who is adhering to the MSRV, but let's be careful and mark it
33+ breaking.
34+
35+ Note that `git-features` and `git-pack` are still on edition 2018
36+ as they make use of a workaround to support (safe) mutable access
37+ to non-overlapping entries in a slice which doesn't work anymore
38+ in edition 2021.
39+
40+### Commit Statistics
41+
42+<csr-read-only-do-not-edit/>
43+
44+ - 16 commits contributed to the release over the course of 917 calendar days.
45+ - 937 days passed between releases.
46+ - 4 commits were understood as [conventional](https://www.conventionalcommits.org).
47+ - 1 unique issue was worked on: [#691](https://github.com/Byron/gitoxide/issues/691)
48+
49+### Commit Details
50+
51+<csr-read-only-do-not-edit/>
52+
53+<details><summary>view details</summary>
54+
55+ * **[#691](https://github.com/Byron/gitoxide/issues/691)**
56+ - set `rust-version` to 1.64 ([`55066ce`](https://github.com/Byron/gitoxide/commit/55066ce5fd71209abb5d84da2998b903504584bb))
57+ * **Uncategorized**
58+ - add git-tui changelog ([`b988901`](https://github.com/Byron/gitoxide/commit/b988901dbfa0e5ab3146d8360be2993c4a7838ba))
59+ - Release git-date v0.4.3, git-hash v0.10.3, git-features v0.26.5, git-actor v0.17.2, git-glob v0.5.4, git-path v0.7.2, git-quote v0.4.2, git-attributes v0.8.3, git-bitmap v0.2.2, git-chunk v0.4.2, git-command v0.2.4, git-commitgraph v0.13.1, git-config-value v0.10.2, git-tempfile v3.0.3, git-lock v3.0.3, git-validate v0.7.3, git-object v0.26.2, git-ref v0.24.1, git-sec v0.6.3, git-config v0.16.2, git-prompt v0.3.3, git-url v0.13.3, git-credentials v0.9.2, git-diff v0.26.2, git-discover v0.13.1, git-fetchhead v0.1.0, git-filter v0.1.0, git-hashtable v0.1.2, git-traverse v0.22.2, git-index v0.12.4, git-lfs v0.1.0, git-mailmap v0.9.3, git-note v0.1.0, git-pack v0.31.0, git-odb v0.41.0, git-packetline v0.14.3, git-pathspec v0.1.0, git-transport v0.25.5, git-protocol v0.26.4, git-rebase v0.1.0, git-revision v0.10.4, git-refspec v0.7.3, git-sequencer v0.1.0, git-submodule v0.1.0, git-tix v0.1.0, git-tui v0.1.0, git-worktree v0.12.3, safety bump 2 crates ([`90035a3`](https://github.com/Byron/gitoxide/commit/90035a332d0ba67584558db3605500fbcb424ddd))
60+ - note that crates have been renamed from `git-*` to `gix-*`. ([`e14dc7d`](https://github.com/Byron/gitoxide/commit/e14dc7d475373d2c266e84ff8f1826c68a34ab92))
61+ - Merge branch 'main' into http-config ([`bcd9654`](https://github.com/Byron/gitoxide/commit/bcd9654e56169799eb706646da6ee1f4ef2021a9))
62+ - Merge branch 'version2021' ([`0e4462d`](https://github.com/Byron/gitoxide/commit/0e4462df7a5166fe85c23a779462cdca8ee013e8))
63+ - upgrade edition to 2021 in most crates. ([`3d8fa8f`](https://github.com/Byron/gitoxide/commit/3d8fa8fef9800b1576beab8a5bc39b821157a5ed))
64+ - Merge branch 'main' into index-from-tree ([`bc64b96`](https://github.com/Byron/gitoxide/commit/bc64b96a2ec781c72d1d4daad38aa7fb8b74f99b))
65+ - Merge branch 'main' into remote-ls-refs ([`e2ee3de`](https://github.com/Byron/gitoxide/commit/e2ee3ded97e5c449933712883535b30d151c7c78))
66+ - Merge branch 'docsrs-show-features' ([`31c2351`](https://github.com/Byron/gitoxide/commit/31c235140cad212d16a56195763fbddd971d87ce))
67+ - uniformize deny attributes ([`f7f136d`](https://github.com/Byron/gitoxide/commit/f7f136dbe4f86e7dee1d54835c420ec07c96cd78))
68+ - remove default link to cargo doc everywhere ([`533e887`](https://github.com/Byron/gitoxide/commit/533e887e80c5f7ede8392884562e1c5ba56fb9a8))
69+ - remove dash in all repository links ([`98c1360`](https://github.com/Byron/gitoxide/commit/98c1360ba4d2fb3443602b7da8775906224feb1d))
70+ - Merge from main. ([`b59bd5e`](https://github.com/Byron/gitoxide/commit/b59bd5e0b0895c7d1d585816cec8be4dea78c278))
71+ - Finish removal of rust 2018 idioms ([`0d1699e`](https://github.com/Byron/gitoxide/commit/0d1699e0e0bc9052be0a74b1b3f3d3eeeec39e3e))
72+ - Allow dual-licensing with Apache 2.0 ([`ea353eb`](https://github.com/Byron/gitoxide/commit/ea353eb02fd4f75508600cc5676107bc7e627f1e))
73+</details>
74+
75+## v0.0.0 (2020-07-25)
76+
77+### Commit Statistics
78+
79+<csr-read-only-do-not-edit/>
80+
81+ - 1 commit contributed to the release.
82+ - 0 commits were understood as [conventional](https://www.conventionalcommits.org).
83+ - 0 issues like '(#ID)' were seen in commit messages
84+
85+### Commit Details
86+
87+<csr-read-only-do-not-edit/>
88+
89+<details><summary>view details</summary>
90+
91+ * **Uncategorized**
92+ - commit to also giving a git-tui a go ([`a0b73af`](https://github.com/Byron/gitoxide/commit/a0b73afdd1df9b1096f0c6fe388f795a6dfe7f33))
93+</details>
94+
gix-blame/Cargo.toml+17−0
@@ -0,0 +1,17 @@
1+[package]
2+name = "gix-blame"
3+version = "0.0.0"
4+repository = "https://github.com/Byron/gitoxide"
5+license = "MIT OR Apache-2.0"
6+description = "A crate of the gitoxide project dedicated implementing a 'blame' algorithm"
7+authors = ["Christoph Rüßler <christoph.ruessler@mailbox.org>", "Sebastian Thiel <sebastian.thiel@icloud.com>"]
8+edition = "2021"
9+rust-version = "1.65"
10+
11+[lib]
12+doctest = false
13+
14+[dependencies]
15+
16+[dev-dependencies]
17+gix-testtools = { path = "../tests/tools" }
gix-blame/LICENSE-APACHE+1−0
@@ -0,0 +1 @@
1+../LICENSE-APACHE
gix-blame/LICENSE-MIT+1−0
@@ -0,0 +1 @@
1+../LICENSE-MIT
gix-blame/src/lib.rs+10−0
@@ -0,0 +1,10 @@
1+//! A crate to implement an algorithm to annotate lines in tracked files with the commits that changed them.
2+#![deny(rust_2018_idioms)]
3+#![forbid(unsafe_code)]
4+
5+#[cfg(test)]
6+mod tests {
7+ #[test]
8+ #[ignore]
9+ fn it_works() {}
10+}
gix-blame/tests/blame.rs+4−0
@@ -0,0 +1,4 @@
1+#[test]
2+fn it_works() {
3+ let _worktree = gix_testtools::scripted_fixture_read_only("make_blame_repo.sh").unwrap();
4+}
gix-blame/tests/fixtures/generated-archives/.gitignore+1−0
@@ -0,0 +1 @@
1+make_blame_repo.tar
gix-blame/tests/fixtures/make_blame_repo.sh+23−0
@@ -0,0 +1,23 @@
1+#!/usr/bin/env bash
2+set -eu -o pipefail
3+
4+
5+git init -q
6+git config merge.ff false
7+
8+git checkout -q -b main
9+git commit -q --allow-empty -m c1
10+git tag at-c1
11+git commit -q --allow-empty -m c2
12+git commit -q --allow-empty -m c3
13+git commit -q --allow-empty -m c4
14+
15+git checkout -q -b branch1
16+git commit -q --allow-empty -m b1c1
17+git tag at-b1c1
18+git commit -q --allow-empty -m b1c2
19+
20+git checkout -q main
21+git commit -q --allow-empty -m c5
22+git tag at-c5
23+git merge branch1 -m m1b1