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
Fields
unlink_on_collision: bool
If there is a symlink or a file in our path, try to unlink it before creating the directory.
attributes: Attributes
State to handle attribute information
attributes
only.Useful for checkout where directories need creation, but we need to access attributes as well.
AttributesAndIgnoreStack
Fields
attributes: Attributes
State to handle attribute information
attributes
only.Used when adding files, requiring access to both attributes and ignore information, for example during add operations.
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.
index
is where we look for suitable files by path in order to obtain their blob hash.paths
is the indices storage backend for paths.case
determines if the search for files should be case-sensitive or not.