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 @@
1name: CIFuzz1name: CIFuzz
2on: [pull_request]2on: [ ]
3jobs:3jobs:
4 Fuzzing:4 Fuzzing:
5 runs-on: ubuntu-latest5 runs-on: ubuntu-latest
6 steps:6 steps:
7 - name: Build Fuzzers7 - name: Build Fuzzers
8 id: build8 id: build
9 uses: google/oss-fuzz/infra/cifuzz/actions/build_fuzzers@master9 uses: google/oss-fuzz/infra/cifuzz/actions/build_fuzzers@master
10 with:10 with:
11 oss-fuzz-project-name: 'gitoxide'11 oss-fuzz-project-name: 'gitoxide'
12 language: rust12 language: rust
13 - name: Run Fuzzers13 - name: Run Fuzzers
14 uses: google/oss-fuzz/infra/cifuzz/actions/run_fuzzers@master14 uses: google/oss-fuzz/infra/cifuzz/actions/run_fuzzers@master
15 with:15 with:
16 oss-fuzz-project-name: 'gitoxide'16 oss-fuzz-project-name: 'gitoxide'
17 language: rust17 language: rust
18 fuzz-seconds: 60018 fuzz-seconds: 600
19 - name: Upload Crash19 - name: Upload Crash
20 uses: actions/upload-artifact@v420 uses: actions/upload-artifact@v4
21 if: failure() && steps.build.outcome == 'success'21 if: failure() && steps.build.outcome == 'success'
22 with:22 with:
23 name: artifacts23 name: artifacts
24 path: ./out/artifacts24 path: ./out/artifacts
Cargo.lock+7−0
@@ -1460,6 +1460,13 @@ dependencies = [ · 1459 unmodified lines
1460 "thiserror",1460 "thiserror",
1461]1461]
1462 1462
1463[[package]]
1464name = "gix-blame"
1465version = "0.0.0"
1466dependencies = [
1467 "gix-testtools",
1468]
1469
1463[[package]]1470[[package]]
1464name = "gix-chunk"1471name = "gix-chunk"
1465version = "0.4.8"1472version = "0.4.8"
Cargo.toml+1−0
@@ -276,6 +276,7 @@ members = [ · 275 unmodified lines
276 "gix-path",276 "gix-path",
277 "gix-utils",277 "gix-utils",
278 "gix-fs",278 "gix-fs",
279 "gix-blame",
279 "gix",280 "gix",
280 "gitoxide-core",281 "gitoxide-core",
281 "gix-hashtable",282 "gix-hashtable",
gix-blame/CHANGELOG.md+94−0
@@ -0,0 +1,94 @@
1# Changelog
2
3All notable changes to this project will be documented in this file.
4
5The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6and 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]
2name = "gix-blame"
3version = "0.0.0"
4repository = "https://github.com/Byron/gitoxide"
5license = "MIT OR Apache-2.0"
6description = "A crate of the gitoxide project dedicated implementing a 'blame' algorithm"
7authors = ["Christoph Rüßler <christoph.ruessler@mailbox.org>", "Sebastian Thiel <sebastian.thiel@icloud.com>"]
8edition = "2021"
9rust-version = "1.65"
10
11[lib]
12doctest = false
13
14[dependencies]
15
16[dev-dependencies]
17gix-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)]
6mod tests {
7 #[test]
8 #[ignore]
9 fn it_works() {}
10}
gix-blame/tests/blame.rs+4−0
@@ -0,0 +1,4 @@
1#[test]
2fn 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 @@
1make_blame_repo.tar
gix-blame/tests/fixtures/make_blame_repo.sh+23−0
@@ -0,0 +1,23 @@
1#!/usr/bin/env bash
2set -eu -o pipefail
3
4
5git init -q
6git config merge.ff false
7
8git checkout -q -b main
9git commit -q --allow-empty -m c1
10git tag at-c1
11git commit -q --allow-empty -m c2
12git commit -q --allow-empty -m c3
13git commit -q --allow-empty -m c4
14
15git checkout -q -b branch1
16git commit -q --allow-empty -m b1c1
17git tag at-b1c1
18git commit -q --allow-empty -m b1c2
19
20git checkout -q main
21git commit -q --allow-empty -m c5
22git tag at-c5
23git merge branch1 -m m1b1