Skip to content

Add docs about Repository::index ownership. #922

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

Merged
merged 1 commit into from
Feb 14, 2023

Conversation

ehuss
Copy link
Contributor

@ehuss ehuss commented Jan 22, 2023

When doing something like let index = Repository::open("foo")?.index()?;, the resulting index can't do very much since many of its methods will fail (with errors like This operation is not allowed against bare repositories). This adds some documentation about this behavior.

There are some alternate solutions here, but I didn't find them very palatable:

  • Add a lifetime to Index. This might be a little awkward (use 'static for non-repo Indexes?).
  • Add a lifetime wrapper that only applies to Repository::index(). This I think would make the Index a little more awkward to use, and seems a little overkill.
  • Add checks in Index methods for a NULL git_index_owner() that need an owner, and provide a better error message.

There are a few other "owned" types, including git_odb, git_refdb, and git_config. However, those don't seem to have the same issues as git_index, since they are mostly revolved around caching.

I think adding a lifetime is still an option, but I figure this would be a good solution for now.

closes #897

@ehuss ehuss merged commit 59bb979 into rust-lang:master Feb 14, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

wrong lifetime for Repository Index
2 participants