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 Details

    • StrategySimpleTwoWayInCore

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

    • 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.