Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

onefetch uses gitoxide #364

Closed
11 tasks done
Byron opened this issue Mar 25, 2022 · 1 comment
Closed
11 tasks done

onefetch uses gitoxide #364

Byron opened this issue Mar 25, 2022 · 1 comment
Labels
C-integrate-gitoxide "Oxidize" crates even more by replacing git2 with gitoxide

Comments

@Byron
Copy link
Owner

Byron commented Mar 25, 2022

  • traverse commits
  • mailmap support #366
  • index for size computation
  • traverse tags, references
  • a flag to turn support for shallow history support off - by default we just stop iteration if a commit can't be found, but people can turn it on to see errors (like now) if a commit can't be found.
  • git-odb support for git-replace with override in handle
  • git-repository support for git-replace
  • config 'user.name', remote information
  • split index support
  • peel tag
  • git status/pending changes (see Replace libgit2 with gitoxide o2sh/onefetch#628 for details)

https://github.com/o2sh/onefetch

@Byron Byron changed the title **onefetch uses gitoxide** onefetch uses gitoxide Mar 25, 2022
@Byron Byron added the C-integrate-gitoxide "Oxidize" crates even more by replacing git2 with gitoxide label Mar 25, 2022
Byron added a commit that referenced this issue Mar 29, 2022
)

Previously it would return an `Option` and squelch legitimate errors
which already let to quite a bug hunt.

Now `find()` should always return the original error when finding an
existing object, and keep it around in a Box.
That way we don't add yet another type parameter.

Performance implications are measurable, but marginable. The error type
might be too big which is something we can indeed look at.
Byron added a commit that referenced this issue Mar 29, 2022
Byron added a commit that referenced this issue Mar 29, 2022
Byron added a commit that referenced this issue Mar 29, 2022
Allocation-free parent retrieval.
Byron added a commit that referenced this issue Mar 29, 2022
The methods returning an iterator are now consuming, which allows
them to be nested by callers.
Byron added a commit that referenced this issue Mar 29, 2022
Also: parent_ids() queryable directly on commit.
Byron added a commit that referenced this issue Mar 30, 2022
It's a type with only copyable types inside, so should be copy itself.
This makes it less awkward to use as well.
Byron added a commit that referenced this issue Mar 30, 2022
Byron added a commit that referenced this issue Mar 30, 2022
Byron added a commit that referenced this issue Mar 30, 2022
Byron added a commit that referenced this issue Mar 30, 2022
Get a short-hand for any reference name.
Byron added a commit that referenced this issue Mar 30, 2022
A way to classify references.
Byron added a commit that referenced this issue Mar 30, 2022
Byron added a commit that referenced this issue Mar 30, 2022
It's definitely more intuitive that way.
Byron added a commit that referenced this issue Mar 30, 2022
Byron added a commit that referenced this issue Mar 30, 2022
A long-needed shortcut.
Byron added a commit that referenced this issue Mar 31, 2022
This is not what git seems to do, but it yields better results
as more entries are unified and assigned to their respective authors.

And it's valid, as emails are case-insensitive so they should match
that way when unifying them.
Byron added a commit that referenced this issue Mar 31, 2022
It's separated from parsing to assure we can round-trip, but it's
made easy to obtain trimmed results using new methods.

This high-level git-repository will also trim by default now.
Byron added a commit that referenced this issue Mar 31, 2022
It's separated from parsing to assure we can round-trip, but it's
made easy to obtain trimmed results using new methods.

This high-level git-repository will also trim by default now.
Byron added a commit that referenced this issue Mar 31, 2022
This results in one less name counted in the linux kernel, which
probably means that one name (maybe a bot) was used to commit a commit.

That's acceptable inaccuracy.
Byron added a commit that referenced this issue Apr 1, 2022
Conform to naming conventions, whenever something returns an option
or Result while there is a more direct name that panics, prefix `try_`.
Byron added a commit that referenced this issue Apr 1, 2022
Byron added a commit that referenced this issue Apr 1, 2022
But we make it easy to detect if the traversal was shallow or not.

That way there will be no 'fail by default' issues in apps using
gitoxide when they encountered partial graph (at least as long as
they don't try to do anything with their parents).
Byron added a commit that referenced this issue Apr 2, 2022
It will be followed up by supporting it on various levels, which is
more complex than it sounds.
Byron added a commit that referenced this issue Apr 2, 2022
Byron added a commit that referenced this issue Apr 2, 2022
The Repository now respects replacement refs created by `git replace`
and picks up environment variables for its configuration as well.

Which environment variables are used is fully configurable.
Byron added a commit that referenced this issue Apr 3, 2022
It's more annoying than it's worth, and most of the time changelogs
won't be unstable due to that.
Byron added a commit that referenced this issue Apr 3, 2022
Byron added a commit that referenced this issue Apr 3, 2022
It's a combination of `shorten()` and `category()` for convenience.
@Byron
Copy link
Owner Author

Byron commented Mar 17, 2024

And it's done!

@Byron Byron closed this as completed Mar 17, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C-integrate-gitoxide "Oxidize" crates even more by replacing git2 with gitoxide
Projects
None yet
Development

No branches or pull requests

1 participant