From ed63ec08ac651d642123d5abd1d4589e67049ff2 Mon Sep 17 00:00:00 2001 From: Sebastian Thiel Date: Fri, 17 Feb 2023 11:06:10 +0100 Subject: [PATCH] update crate status (#301) Really just an excuse to start a new PR for additional attribute work without investing much time. --- crate-status.md | 14 ++++++++++---- src/plumbing/progress.rs | 16 ++++++++++++++++ 2 files changed, 26 insertions(+), 4 deletions(-) diff --git a/crate-status.md b/crate-status.md index d2aa181a633..694e4be9598 100644 --- a/crate-status.md +++ b/crate-status.md @@ -440,7 +440,7 @@ Make it the best-performing implementation and the most convenient one. - [ ] handle submodules - [ ] handle sparse directories - [ ] handle sparse index - - [ ] linear scaling with multi-threading up to IO saturation + - [x] linear scaling with multi-threading up to IO saturation - supported attributes to affect working tree and index contents - [ ] eol - [ ] working-tree-encoding @@ -450,8 +450,10 @@ Make it the best-performing implementation and the most convenient one. - [ ] `ident` - [ ] filter processes - [ ] single-invocation clean/smudge filters -* [x] access to all .gitignore/exclude information -* [ ] access to all attributes information +* manage multiple worktrees +* access to per-path information, like `.gitignore` and `.gitattributes` in a manner well suited for efficient lookups + * [x] _exclude_ information + * [ ] attributes ### gix-revision * [x] `describe()` (similar to `git name-rev`) @@ -602,6 +604,8 @@ See its [README.md](https://github.com/Byron/gitoxide/blob/main/gix-lock/README. * [x] tree with other tree * [ ] respect case-sensitivity of host filesystem. * [x] a way to access various diff related settings or use them + * [ ] respect `diff.*.textconv`, `diff.*.cachetextconv` and external diff viewers with `diff.*.command`, + [along with support for reading `diff` gitattributes](https://github.com/git/git/blob/73876f4861cd3d187a4682290ab75c9dccadbc56/Documentation/gitattributes.txt#L699:L699). * **rewrite tracking** * **deviation** - git keeps up to four candidates whereas we use the first-found candidate that matches the similarity percentage. This can lead to different sources being found. As such, we also don't consider the filename at all. @@ -614,7 +618,7 @@ See its [README.md](https://github.com/Byron/gitoxide/blob/main/gix-lock/README. * [x] renames * [x] copies * [x] 'find-copies-harder' - find copies with the source being the entire tree. - * [ ] tree with working tree + * [ ] tree or index with working tree * [x] diffs between modified blobs with various algorithms * [ ] tree with index * [x] initialize @@ -673,6 +677,8 @@ See its [README.md](https://github.com/Byron/gitoxide/blob/main/gix-lock/README. * [ ] obtain 'prunable' information * [x] proper handling of worktree related refs * [ ] create, move, remove, and repair + * [x] access exclude information + * [ ] access attribute information * [x] respect `core.worktree` configuration - **deviation** * The delicate interplay between `GIT_COMMON_DIR` and `GIT_WORK_TREE` isn't implemented. diff --git a/src/plumbing/progress.rs b/src/plumbing/progress.rs index 4969fc18c31..807c49bebcc 100644 --- a/src/plumbing/progress.rs +++ b/src/plumbing/progress.rs @@ -116,6 +116,10 @@ static GIT_CONFIG: &[Record] = &[ config: "core.packedGitLimit", usage: NotApplicable { reason: "we target 32bit systems only and don't use a windowing mechanism" } }, + Record { + config: "core.checkRoundtripEncoding", + usage: Planned { note: Some("needed once working-tree-encoding attributes are supported") } + }, Record { config: "core.bigFileThreshold", usage: Planned { note: Some("unfortunately we can't stream packed files yet, even if not delta-compressed, but respecting the threshold for other operations is definitely a must") } @@ -458,6 +462,18 @@ static GIT_CONFIG: &[Record] = &[ config: "status.renames", usage: Planned { note: Some("the same as diff.renames") } }, + Record { + config: "diff.*.textconv", + usage: Planned { note: None } + }, + Record { + config: "diff.*.cachetextconv", + usage: Planned { note: None } + }, + Record { + config: "diff.*.command", + usage: Planned { note: None } + }, ]; /// A programmatic way to record and display progress.