max-git-bundles config for git-remote-annex

This commit is contained in:
Joey Hess 2024-05-14 14:23:40 -04:00
parent 8ad768fdba
commit 0bf72ef103
No known key found for this signature in database
GPG key ID: DB12DB0FF05F8F38
5 changed files with 29 additions and 20 deletions

View file

@ -1648,16 +1648,16 @@ Remotes are configured using these settings in `.git/config`.
remotes, and is set when using [[git-annex-initremote]](1) with the
`--private` option.
* `remote.<name>.max-bundles`, `annex.max-bundles`
* `remote.<name>.max-git-bundles`, `annex.max-git-bundles`
When using [[git-remote-annex]] to store a git repository in a special
remote, this configures how many separate git bundle objects to store
in the special remote before re-pushing a single git bundle that contains
in the special remote before re-uploading a single git bundle that contains
the entire git repository.
The default is 100, which aims to avoid often needing to often re-upload,
while preventing a new clone needing to download too many objects. Set to
0 to disable re-pushing.
0 to disable re-uploading.
* `remote.<name>.allow-encrypted-gitrepo`

View file

@ -20,12 +20,6 @@ For example, to clone from a directory special remote:
git clone annex::358ff77e-0bc3-11ef-bc49-872e6695c0e3?type=directory&encryption=none&directory=/mnt/foo/
When a special remote needs some additional credentials to be provided,
they are not included in the URL, and need to be provided when cloning from
the special remote. That is typically done by setting environment
variables. Some special remotes may also need environment variables to be
set when pulling or pushing.
When configuring the url of an existing special remote, a
shorter url of "annex::" is sufficient. For example:
@ -37,6 +31,12 @@ Configuring the url like that is automatically done when cloning from a
special remote, but not by [[git-annex-initremote]](1) and
[[git-annex-enableremote]](1).
When a special remote needs some additional credentials to be provided,
they are not included in the URL, and need to be provided when cloning from
the special remote. That is typically done by setting environment
variables. Some special remotes may also need environment variables to be
set when pulling or pushing.
The git repository is stored in the special remote using special annex objects
with names starting with "GITMANIFEST--" and "GITBUNDLE--". For details about
how the git repository is stored, see
@ -46,7 +46,7 @@ Pushes to a special remote are usually done incrementally. However,
sometimes the whole git repository (but not the annex) needs to be
re-uploaded. That is done when deleting a ref from the remote. It's also
done when too many git bundles accumulate in the special remote, as
configured by the `remote.<name>.max-bundles` git config.
configured by the `remote.<name>.max-git-bundles` git config.
Like any git repository, a git repository stored on a special remote can
have conflicting things pushed to it from different places. This mostly

View file

@ -19,8 +19,6 @@ This is implememented and working. Remaining todo list for it:
* Test incremental pushes that don't fast-forward.
* Support max-bundles config
* Cloning from an annex:: url with importtree=yes doesn't work
(with or without exporttree=yes). This is because the ContentIdentifier
db is not populated.