sim: add action repo sync command

This commit is contained in:
Joey Hess 2024-09-16 16:48:21 -04:00
parent 2cbd3fb26b
commit c420ec9364
No known key found for this signature in database
GPG key ID: DB12DB0FF05F8F38
3 changed files with 23 additions and 8 deletions

View 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)

View 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))

View 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