This commit is contained in:
Joey Hess 2024-05-28 13:36:27 -04:00
parent 2ffe077cc2
commit d2efa141bb
No known key found for this signature in database
GPG key ID: DB12DB0FF05F8F38

View file

@ -14,7 +14,7 @@ GITBUNDLE--$UUID-$sha256 is a git bundle.
An ordered list of bundle keys, one per line. An ordered list of bundle keys, one per line.
Additionally, there may be bundle keys that are prefixed with "-". Additionally, there may be bundle keys that are prefixed with "-".
These keys are not part of the current content of the git remote These keys are not part of the current content of the git remote,
and are in the process of being deleted. and are in the process of being deleted.
(Lines end with unix `"\n"`, not `"\r\n"`.) (Lines end with unix `"\n"`, not `"\r\n"`.)
@ -43,12 +43,14 @@ stored in such a special remote, this procedure will work:
(Note that later bundles can update refs from the versions in previous (Note that later bundles can update refs from the versions in previous
bundles.) bundles.)
Note that, if a GITBUNDLE listed in the GITMANIFEST turns out not to exist, If any GITBUNDLE listed in the GITMANIFEST turns out not to exist,
a clone should treat this the same as if the GITMANIFEST were empty. a clone should treat this the same as if the GITMANIFEST were empty.
bundle objects are deleted when a push is made to the remote that Bundle objects are deleted only when a push is made to the remote that
deletes all refs from it, and in a race between such a push and another deletes all refs from it, and when there was a race between such a push
push of some refs, it is possible for the GITMANIFEST to refer to deleted and another push of some refs, it is possible for the GITMANIFEST to
bundles. refer to deleted bundles. In such a situation, the push that deleted all
refs wins. (This race condition is why old GITBUNDLE objects are listed in
the manifest rather than being immediately deleted.)
When the special remote is encrypted, both the names and content of When the special remote is encrypted, both the names and content of
the GITMANIFEST and GITBUNDLE will also be encrypted. To the GITMANIFEST and GITBUNDLE will also be encrypted. To