123456789101112131415161718192021222324252627 |
- // Copyright (c) 2025 TerraByte Inc.
- //
- // Defines a generic interface for any operation that can result in a merge
- // conflict, such as a pull or a stash apply. This allows the conflict
- // resolution UI to be agnostic to the source of the conflict.
- using Terra.Arbitrator.Promises;
- using System.Collections.Generic;
- namespace Terra.Arbitrator.Services
- {
- /// <summary>
- /// Provides a standardized way to handle different types of merge conflicts.
- /// </summary>
- public interface IConflictSource
- {
- public string MineLabel { get; }
- public string TheirsLabel { get; }
- /// <summary>
- /// Executes the logic to resolve the conflicts based on the user's choices.
- /// </summary>
- /// <param name="resolutions">The list of files and their chosen resolution.</param>
- /// <returns>A promise that resolves with a success message or rejects with an error.</returns>
- public IPromise<string> Resolve(List<GitChange> resolutions);
- }
- }
|