Honor --force option when operating on a local git remote

Propagate Annex.force into the remote's Annex state.

Fixes this problem:

joey@darkstar:~/tmp/xxxx>git-annex copy mmm --to origin --force
copy mmm (to origin...)
  not enough free space, need 908.72 MB more (use --force to override this check or adjust annex.diskreserve)

  failed to send content to remote
failed

Does beg the question if anything else should be propagated.
Some things like Annex.forcenumcopies certianly not; using --numcopies
overrides the number of copies the current repo wants, not all of them.

Sponsored-by: Graham Spencer on Patreon
This commit is contained in:
Joey Hess 2023-04-19 12:53:58 -04:00
parent a3f433eac8
commit d11b3bc1af
No known key found for this signature in database
GPG key ID: DB12DB0FF05F8F38
2 changed files with 3 additions and 0 deletions

View file

@ -24,6 +24,7 @@ git-annex (10.20230408) UNRELEASED; urgency=medium
setting of a special remote.
* assistant --autostop: Avoid crashing when ~/.config/git-annex/autostart
lists a directory that it cannot chdir to.
* Honor --force option when operating on a local git remote.
-- Joey Hess <id@joeyh.name> Sat, 08 Apr 2023 13:57:18 -0400

View file

@ -637,9 +637,11 @@ newLocal repo = do
(st, rd) <- liftIO $ Annex.new repo
debugenabled <- Annex.getRead Annex.debugenabled
debugselector <- Annex.getRead Annex.debugselector
force <- Annex.getRead Annex.force
return (st, rd
{ Annex.debugenabled = debugenabled
, Annex.debugselector = debugselector
, Annex.force = force
})
onLocal' :: LocalRemoteAnnex -> Annex a -> Annex a