From 60a08808b920e938418dead74f55ae48b2f0f9c2 Mon Sep 17 00:00:00 2001 From: Mirek Kratochvil Date: Sun, 13 Jul 2025 22:19:43 +0200 Subject: git merging works --- Opts.hs | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) (limited to 'Opts.hs') diff --git a/Opts.hs b/Opts.hs index 7b6f7d4..1901c53 100644 --- a/Opts.hs +++ b/Opts.hs @@ -143,9 +143,9 @@ data Command , d3old :: FilePath , d3your :: FilePath } - | CmdGitMergetool - { gmtFiles :: Maybe [FilePath] - , gmtDoAdd :: Bool + | CmdGitMerge + { gmFiles :: Maybe [FilePath] + , gmDoAdd :: Bool } deriving (Show) @@ -156,31 +156,33 @@ cmdDiff3 = do strArgument $ metavar "YOURFILE" <> help "version with other people's edits" pure CmdDiff3 {..} -cmdGitMergetool = do - gmtFiles <- +cmdGitMerge = do + gmFiles <- asum - [ fmap Just . many + [ fmap Just . some $ strArgument $ metavar "UNMERGED" - <> help "unmerged git file (can be specified repeatedly" + <> help "unmerged git file (can be specified repeatedly)" , flag' Nothing (long "unmerged" <> short 'u' <> help "process all files marked as unmerged by git") ] - gmtDoAdd <- + gmDoAdd <- asum [ flag' - False + True (long "add" <> short 'a' <> help "run `git add' for fully merged files") - , flag' True (long "no-add" <> help "prevent running `git add'") + , flag' False (long "no-add" <> help "prevent running `git add'") , pure False ] - pure CmdGitMergetool {..} + pure CmdGitMerge {..} +-- TODO have some option to output the (partially merged) my/old/your files so +-- that folks can continue with external program or so (such as meld) cmd = hsubparser $ mconcat @@ -188,7 +190,7 @@ cmd = $ info cmdDiff3 $ progDesc "diff3-style merge of changes" , command "git" - $ info cmdGitMergetool + $ info cmdGitMerge $ progDesc "try to merge unmerged git tree" ] -- cgit v1.2.3