module Unison.Cli.MergeTypes
( MergeSource (..),
MergeTarget,
MergeSourceAndTarget (..),
MergeSourceOrTarget (..),
)
where
import U.Codebase.Sqlite.Project (Project)
import U.Codebase.Sqlite.ProjectBranch (ProjectBranch)
import Unison.Cli.Share.Projects.Types (RemoteProjectBranch)
import Unison.Codebase.Editor.RemoteRepo (ReadShareLooseCode)
import Unison.Project (ProjectAndBranch, ProjectBranchName, ProjectName)
data MergeSource
= MergeSource'LocalProjectBranch !(ProjectAndBranch Project ProjectBranch)
| MergeSource'RemoteProjectBranch !RemoteProjectBranch
| MergeSource'RemoteLooseCode !ReadShareLooseCode
type MergeTarget =
ProjectAndBranch ProjectName ProjectBranchName
data MergeSourceAndTarget = MergeSourceAndTarget
{ MergeSourceAndTarget -> MergeTarget
alice :: !MergeTarget,
MergeSourceAndTarget -> MergeSource
bob :: !MergeSource
}
data MergeSourceOrTarget
= MergeSourceOrTarget'Source !MergeSource
| MergeSourceOrTarget'Target !MergeTarget