From c420ec9364370bb361b6c9f343d465f70cb5bd5a Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Mon, 16 Sep 2024 16:48:21 -0400 Subject: [PATCH] sim: add action repo sync command --- Annex/Sim.hs | 3 +++ Annex/Sim/File.hs | 5 +++++ doc/git-annex-sim.mdwn | 23 +++++++++++++++-------- 3 files changed, 23 insertions(+), 8 deletions(-) diff --git a/Annex/Sim.hs b/Annex/Sim.hs index cb3deb311c..c55b3a09c1 100644 --- a/Annex/Sim.hs +++ b/Annex/Sim.hs @@ -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) diff --git a/Annex/Sim/File.hs b/Annex/Sim/File.hs index 47776bf4fb..09d76623da 100644 --- a/Annex/Sim/File.hs +++ b/Annex/Sim/File.hs @@ -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)) diff --git a/doc/git-annex-sim.mdwn b/doc/git-annex-sim.mdwn index 6cec87add6..3da4112935 100644 --- a/doc/git-annex-sim.mdwn +++ b/doc/git-annex-sim.mdwn @@ -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 -- 2.30.2