Struct git_topic_stage::Stager
source · pub struct Stager { /* private fields */ }
Expand description
A manager for an integration branch.
This stores the state of a staging branch and the representative topics.
Implementations§
source§impl Stager
impl Stager
sourcepub fn new(ctx: &GitContext, base: CommitId) -> Self
pub fn new(ctx: &GitContext, base: CommitId) -> Self
Create a new stage from the given commit.
sourcepub fn from_branch(
ctx: &GitContext,
base: CommitId,
stage: CommitId
) -> Result<Self, StagerError>
pub fn from_branch( ctx: &GitContext, base: CommitId, stage: CommitId ) -> Result<Self, StagerError>
Create a new stage, discovering topics which have been merged into an integration branch.
This constructor takes a base branch and the name of the stage branch. It queries the given Git context for the history of the stage branch from the base and constructs its state from its first parent history.
If the stage does not exist, it is created with the base commit as its start.
Fails if the stage branch history does not appear to be a proper stage branch. A proper stage branch’s first parent history from the base consists only of merge commits with exactly two parents with required information in its commit message.
sourcepub fn git_context(&self) -> &GitContext
pub fn git_context(&self) -> &GitContext
Returns the git context the stager uses for operations.
sourcepub fn topics(&self) -> &[StagedTopic]
pub fn topics(&self) -> &[StagedTopic]
The topics which have been merged into the stage.
sourcepub fn find_topic_by_id(&self, id: u64) -> Option<&StagedTopic>
pub fn find_topic_by_id(&self, id: u64) -> Option<&StagedTopic>
The a topic on the stage by its ID.
sourcepub fn find_topic(&self, topic: &Topic) -> Option<&StagedTopic>
pub fn find_topic(&self, topic: &Topic) -> Option<&StagedTopic>
Find where a topic has been merged into the integration branch.
sourcepub fn unstage(
&mut self,
topic: StagedTopic
) -> Result<StageResult, StagerError>
pub fn unstage( &mut self, topic: StagedTopic ) -> Result<StageResult, StagerError>
Remove a topic from the stage.
sourcepub fn stage(
&mut self,
topic: CandidateTopic
) -> Result<StageResult, StagerError>
pub fn stage( &mut self, topic: CandidateTopic ) -> Result<StageResult, StagerError>
Add a topic branch to the stage.
If the branch already existed on the staging branch, it is first removed from the stage and then any topics which were merged after it are merged again, in order. The updated topic is then merged as the last operation.
sourcepub fn clear(&mut self) -> Vec<StagedTopic>
pub fn clear(&mut self) -> Vec<StagedTopic>
Remove all staged topics from the staging branch.
Previously staged topics are returned.