Enum gix_worktree::stack::State
source · pub enum State {
CreateDirectoryAndAttributesStack {
unlink_on_collision: bool,
attributes: Attributes,
},
AttributesAndIgnoreStack {
attributes: Attributes,
ignore: Ignore,
},
AttributesStack(Attributes),
IgnoreStack(Ignore),
}Variants§
CreateDirectoryAndAttributesStack
attributes only.Useful for checkout where directories need creation, but we need to access attributes as well.
Fields
unlink_on_collision: boolIf there is a symlink or a file in our path, try to unlink it before creating the directory.
attributes: AttributesState to handle attribute information
AttributesAndIgnoreStack
attributes only.Used when adding files, requiring access to both attributes and ignore information, for example during add operations.
Fields
attributes: AttributesState to handle attribute information
AttributesStack(Attributes)
attributes only.Used when only attributes are required, typically with fully virtual worktrees.
IgnoreStack(Ignore)
Used when providing worktree status information.
Implementations§
source§impl State
impl State
Initialization
sourcepub fn for_checkout(unlink_on_collision: bool, attributes: Attributes) -> Self
Available on crate feature attributes only.
pub fn for_checkout(unlink_on_collision: bool, attributes: Attributes) -> Self
attributes only.Configure a state to be suitable for checking out files, which only needs access to attribute files read from the index.
sourcepub fn for_add(attributes: Attributes, ignore: Ignore) -> Self
Available on crate feature attributes only.
pub fn for_add(attributes: Attributes, ignore: Ignore) -> Self
attributes only.Configure a state for adding files, with support for ignore files and attribute files.
source§impl State
impl State
Utilities
sourcepub fn id_mappings_from_index(
&self,
index: &State,
paths: &PathStorageRef,
case: Case
) -> Vec<(BString, ObjectId)>
pub fn id_mappings_from_index( &self, index: &State, paths: &PathStorageRef, case: Case ) -> Vec<(BString, ObjectId)>
Returns a vec of tuples of relative index paths along with the best usable blob OID for either ignore or attribute files or both. This allows files to be accessed directly from the object database without the need for a worktree checkout.
Note that this method…
- ignores entries which aren’t blobs.
- ignores ignore entries which are not skip-worktree.
- within merges, picks ‘our’ stage both for ignore and attribute files.
indexis where we look for suitable files by path in order to obtain their blob hash.pathsis the indices storage backend for paths.casedetermines if the search for files should be case-sensitive or not.