avoid combining queued commands with different params
authorJoey Hess <joeyh@joeyh.name>
Mon, 4 Jan 2021 16:38:43 +0000 (12:38 -0400)
committerJoey Hess <joeyh@joeyh.name>
Mon, 4 Jan 2021 16:41:19 +0000 (12:41 -0400)
I don't think this affected git-annex currently, but if the same command
was queued twice with different params, one set of params was thrown
away, and the files going with those were run with the other set of
params.

Git/Queue.hs

index 90b7e2279f99d625dc9ae669e2d972cb4a9e05bf..50faa9f4d987e26f4bc60679717ad96139f2f493 100644 (file)
@@ -55,12 +55,15 @@ instance Eq (InternalActionRunner m) where
        InternalActionRunner s1 _ == InternalActionRunner s2 _ = s1 == s2
 
 {- A key that can uniquely represent an action in a Map. -}
-data ActionKey = UpdateIndexActionKey | CommandActionKey String | InternalActionKey String
+data ActionKey
+       = UpdateIndexActionKey
+       | CommandActionKey String [CommandParam]
+       | InternalActionKey String
        deriving (Eq, Ord)
 
 actionKey :: Action m -> ActionKey
 actionKey (UpdateIndexAction _) = UpdateIndexActionKey
-actionKey CommandAction { getSubcommand = s } = CommandActionKey s
+actionKey CommandAction { getSubcommand = s, getParams = p } = CommandActionKey s p
 actionKey InternalAction { getRunner = InternalActionRunner s _ } = InternalActionKey s
 
 {- A queue of actions to perform (in any order) on a git repository,