Class StrategySimpleTwoWayInCore


  • public class StrategySimpleTwoWayInCore
    extends ThreeWayMergeStrategy
    Merges two commits together in-memory, ignoring any working directory.

    The strategy chooses a path from one of the two input trees if the path is unchanged in the other relative to their common merge base tree. This is a trivial 3-way merge (at the file path level only).

    Modifications of the same file path (content and/or file mode) by both input trees will cause a merge conflict, as this strategy does not attempt to merge file contents.

    • Constructor Detail

      • StrategySimpleTwoWayInCore

        protected StrategySimpleTwoWayInCore()
        Create a new instance of the strategy.
    • Method Detail

      • getName

        public String getName()
        Get default name of this strategy implementation.
        Specified by:
        getName in class MergeStrategy
        Returns:
        default name of this strategy implementation.
      • newMerger

        public ThreeWayMerger newMerger​(Repository db)
        Create a new merge instance.
        Specified by:
        newMerger in class ThreeWayMergeStrategy
        Parameters:
        db - repository database the merger will read from, and eventually write results back to.
        Returns:
        the new merge instance which implements this strategy.
      • newMerger

        public ThreeWayMerger newMerger​(Repository db,
                                        boolean inCore)
        Create a new merge instance.
        Specified by:
        newMerger in class ThreeWayMergeStrategy
        Parameters:
        db - repository database the merger will read from, and eventually write results back to.
        inCore - the merge will happen in memory, working folder will not be modified, in case of a non-trivial merge that requires manual resolution, the merger will fail.
        Returns:
        the new merge instance which implements this strategy.
      • newMerger

        public ThreeWayMerger newMerger​(ObjectInserter inserter,
                                        Config config)
        Create a new merge instance.

        The merge will happen in memory, working folder will not be modified, in case of a non-trivial merge that requires manual resolution, the merger will fail.

        Specified by:
        newMerger in class MergeStrategy
        Parameters:
        inserter - inserter to write results back to.
        config - repo config for reading diff algorithm settings.
        Returns:
        the new merge instance which implements this strategy.