sim: add action repo sync command
authorJoey Hess <joeyh@joeyh.name>
Mon, 16 Sep 2024 20:48:21 +0000 (16:48 -0400)
committerJoey Hess <joeyh@joeyh.name>
Mon, 16 Sep 2024 20:48:21 +0000 (16:48 -0400)
Annex/Sim.hs
Annex/Sim/File.hs
doc/git-annex-sim.mdwn

index cb3deb311c305b421f9bf5f44f0d0c5abc0c9fd8..c55b3a09c1ea79e2e177518021277e80979962d7 100644 (file)
@@ -221,6 +221,7 @@ data SimCommand
 data SimAction
        = ActionPull RemoteName
        | ActionPush RemoteName
+       | ActionSync RemoteName
        | ActionGetWanted RemoteName
        | ActionDropUnwanted (Maybe RemoteName)
        | ActionSendWanted RemoteName
@@ -413,6 +414,7 @@ applySimAction
        -> Either String (Either (Annex (SimState SimRepo)) (SimState SimRepo))
 applySimAction _r _u (ActionPull _remote) _st = undefined -- TODO
 applySimAction _r _u (ActionPush _remote) _st = undefined -- TODO
+applySimAction _r _u (ActionSync _remote) _st = undefined -- TODO
 applySimAction r u (ActionGetWanted remote) st =
        overFilesRemote r u remote S.member wanted go st
   where
@@ -593,6 +595,7 @@ randomAction u st = case M.lookup u (simConnections st) of
        mkactions =
                [ ActionPull
                , ActionPush
+               , ActionSync
                , ActionGetWanted
                , ActionDropUnwanted . Just
                , const (ActionDropUnwanted Nothing)
index 47776bf4fb801abb56fb5e3e0eceba8987c393d4..09d76623da5d4b63aab68f23768ca0439404cc1d 100644 (file)
@@ -55,6 +55,8 @@ generateSimFile = unlines . map unwords . go
                ["action", repo, "pull", remote] : go rest
        go (CommandAction (RepoName repo) (ActionPush (RemoteName remote)) : rest) =
                ["action", repo, "push", remote] : go rest
+       go (CommandAction (RepoName repo) (ActionSync (RemoteName remote)) : rest) =
+               ["action", repo, "sync", remote] : go rest
        go (CommandAction (RepoName repo) (ActionGetWanted (RemoteName remote)) : rest) =
                ["action", repo, "getwanted", remote] : go rest
        go (CommandAction (RepoName repo) (ActionDropUnwanted (Just (RemoteName remote))) : rest) =
@@ -130,6 +132,9 @@ parseSimCommand ("action":repo:"pull":remote:[]) =
 parseSimCommand ("action":repo:"push":remote:[]) =
        Right $ CommandAction (RepoName repo)
                (ActionPush (RemoteName remote))
+parseSimCommand ("action":repo:"sync":remote:[]) =
+       Right $ CommandAction (RepoName repo)
+               (ActionSync (RemoteName remote))
 parseSimCommand ("action":repo:"getwanted":remote:[]) =
        Right $ CommandAction (RepoName repo)
                (ActionGetWanted (RemoteName remote))
index 6cec87add65f99bc4ec62530f4647d4c5129584f..3da41129353b88fa65068bd8f0ec898c5f60ae44 100644 (file)
@@ -163,14 +163,6 @@ as passed to "git annex sim" while a simulation is running.
   On each step of the simulation, a simulated repository is selected
   at random, and a random action is performed in it.
 
-* `action repo pull remote`
-
-  Simulate the equivilant of [[git-annex-pull]](1).
-
-* `action repo push remote`
-  
-  Simulate the equivilant of [[git-annex-push]](1).
-
 * `action repo getwanted remote`
 
   Simulate the repository getting files it wants from the remote.
@@ -197,6 +189,21 @@ as passed to "git annex sim" while a simulation is running.
 
   Simulate the repository pulling the git-annex branch from the remote.
 
+* `action repo pull remote`
+
+  Simulate the equivilant of [[git-annex-pull]](1), by combining
+  the actions gitpull, getwanted, and dropunwanted.
+
+* `action repo push remote`
+
+  Simulate the equivilant of [[git-annex-push]](1) by combining
+  the actions sendwanted, dropunwanted, and gitpush.
+
+* `action repo sync remote`
+
+  Simulate the equivilant of [[git-annex-sync]](1) by combining
+  the actions gitpull, getwanted, sendwanted, dropunwanted, and gitpush.
+
 * `seed N`
 
   Sets the random seed to a given number. Using this should make the