diff options
Diffstat (limited to 'Documentation/gitformat-bundle.txt')
| -rw-r--r-- | Documentation/gitformat-bundle.txt | 111 |
1 files changed, 0 insertions, 111 deletions
diff --git a/Documentation/gitformat-bundle.txt b/Documentation/gitformat-bundle.txt deleted file mode 100644 index 1b75cf71ce..0000000000 --- a/Documentation/gitformat-bundle.txt +++ /dev/null @@ -1,111 +0,0 @@ -gitformat-bundle(5) -=================== - -NAME ----- -gitformat-bundle - The bundle file format - - -SYNOPSIS --------- -[verse] -*.bundle -*.bdl - -DESCRIPTION ------------ - -The Git bundle format is a format that represents both refs and Git -objects. A bundle is a header in a format similar to -linkgit:git-show-ref[1] followed by a pack in *.pack format. - -The format is created and read by the linkgit:git-bundle[1] command, -and supported by e.g. linkgit:git-fetch[1] and linkgit:git-clone[1]. - - -FORMAT ------- - -We will use ABNF notation to define the Git bundle format. See -linkgit:gitprotocol-common[5] for the details. - -A v2 bundle looks like this: - ----- -bundle = signature *prerequisite *reference LF pack -signature = "# v2 git bundle" LF - -prerequisite = "-" obj-id SP comment LF -comment = *CHAR -reference = obj-id SP refname LF - -pack = ... ; packfile ----- - -A v3 bundle looks like this: - ----- -bundle = signature *capability *prerequisite *reference LF pack -signature = "# v3 git bundle" LF - -capability = "@" key ["=" value] LF -prerequisite = "-" obj-id SP comment LF -comment = *CHAR -reference = obj-id SP refname LF -key = 1*(ALPHA / DIGIT / "-") -value = *(%01-09 / %0b-FF) - -pack = ... ; packfile ----- - - -SEMANTICS ---------- - -A Git bundle consists of several parts. - -* "Capabilities", which are only in the v3 format, indicate functionality that - the bundle requires to be read properly. - -* "Prerequisites" list the objects that are NOT included in the bundle and the - reader of the bundle MUST already have, in order to use the data in the - bundle. The objects stored in the bundle may refer to prerequisite objects and - anything reachable from them (e.g. a tree object in the bundle can reference - a blob that is reachable from a prerequisite) and/or expressed as a delta - against prerequisite objects. - -* "References" record the tips of the history graph, iow, what the reader of the - bundle CAN "git fetch" from it. - -* "Pack" is the pack data stream "git fetch" would send, if you fetch from a - repository that has the references recorded in the "References" above into a - repository that has references pointing at the objects listed in - "Prerequisites" above. - -In the bundle format, there can be a comment following a prerequisite obj-id. -This is a comment and it has no specific meaning. The writer of the bundle MAY -put any string here. The reader of the bundle MUST ignore the comment. - -Note on shallow clones and Git bundles -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Note that the prerequisites do not represent a shallow-clone boundary. The -semantics of the prerequisites and the shallow-clone boundaries are different, -and the Git bundle v2 format cannot represent a shallow clone repository. - -CAPABILITIES ------------- - -Because there is no opportunity for negotiation, unknown capabilities cause 'git -bundle' to abort. - -* `object-format` specifies the hash algorithm in use, and can take the same - values as the `extensions.objectFormat` configuration value. - -* `filter` specifies an object filter as in the `--filter` option in - linkgit:git-rev-list[1]. The resulting pack-file must be marked as a - `.promisor` pack-file after it is unbundled. - -GIT ---- -Part of the linkgit:git[1] suite |
