Skip to content
This repository was archived by the owner on Sep 11, 2020. It is now read-only.
This repository was archived by the owner on Sep 11, 2020. It is now read-only.

Support dynamic object directories #818

@ZJvandeWeg

Description

@ZJvandeWeg

GIT_OBJECT_DIRECTORY and GIT_ALTERNATE_OBJECT_DIRECTORIES allow dynamic object directories for deduplication.

Alternates can be set in info/alternates, as is implemented in #663, however at times it would be nice to have a dynamic way of setting them, on a per Repository instance basis. For example, GitLab uses it for push rules.

The easiest way of achieving this would be an attribute on the Repository struct, downside will be that it would be in the a public interface. Code churn would probably be very limited however. Furthermore

The second option that can be pursued is, is extending the PlainOpenOptions. The advantage being that the change is nicely wrapped. Obviously, it can only be used with PlainOpenWithOptions.

Please note I'm unfamiliar with billy, so there might be an option I'm missing, all the more reason to open this issue first before I start building anything.

Edit: It seems like only adding it on one place, e.g. PlainOpen isn't an option, as it reroutes to the Open() constructor. So the Option struct doesn't seem like it's an option.. To not have an interface change, requiring a major version bump I would propose exposing it as a repository struct field.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions