package com.atlassian.bitbucket.mesh.git.builder.commitgraph;

import com.atlassian.bitbucket.mesh.git.builder.GitProcessBuilderSupport;

import javax.annotation.Nonnull;

/**
 * The interface for a builder capable of building {@code git commit-graph write} commands
 */
public interface GitCommitGraphWriteBuilder extends GitProcessBuilderSupport<GitCommitGraphWriteBuilder> {

    /**
     * @param value {@code true} if we want to walk commits starting at all refs, otherwise {@code false}
     * @return the git commit-graph write builder
     */
    @Nonnull
    GitCommitGraphWriteBuilder reachable(boolean value);

    /**
     * @param value {@code true} if we want to write the commit graph as a chain of multiple commit graph files,
     *              otherwise {@code false} to not split the commit graph
     * @return the git commit-graph write builder
     */
    @Nonnull
    GitCommitGraphWriteBuilder split(boolean value);
}
